神经网络(根据斯坦福大学网上机器学习公开课)

神经网络应该分了很多类别吧,之前学过卷积神经网络,这里还是从比较原始的神经网络说。
这里写图片描述
上面是一个三层的神经网络,+1那个小圆指的是偏移,a(i)表示的是第i层的输出,z(i)表示第i层的输入,当然小圆里面进行的操作就是g()了,这里其实说的不是很严密,当然其实也比较好理解。

首先还是从cost function来说:
这里写图片描述
其实和logistic regression差不多,只是因为这里不再是二元分类问题,可以是多元分类问题,因此y就需要变成y(k)。
当然也有加入了正规化的cost function
这里写图片描述
后面给出了具体的数,实际中还是代入其具体的值,其实就是把这个网络中除了与+1连接的那些theta之外的所有theta取平均和。

有了这个cost function就可以计算在给定输入与网络参数下的cost function值了,这相当于是一个从输入到输出的计算,feedforward

下面开始定义梯度:
这里提出的是后向算法(Backpropagation)
这里写图片描述

当然我们一开始会疑问,我们不是应该对cost function求各个theta的偏导然后计算吗,但是因为这是好几层,直接求一定麻烦,于是用了后向算法来一层一层的求,当然很好理解就是这个算法一定是从输出往输入算的,好了,假设有三层:第一层输入层,第二层隐藏层,第三层输出层。

这里我们还是跳过了具体证明,因为我之前也具体算过,当然人家说的算法不会有错误,你算一遍如果不再往深入研究也没有什么效果,还不如直接理清逻辑后直接来用。

我们的目标是计算:这里写图片描述

为此我们引入中间量:误差变量,也就是先算误差值,再通过误差值计算目标值。

从后往前:
输出层误差值:这里写图片描述也就是输出的激励值减去理想值
隐藏层误差值:
列表内容
注意第一层也就是输入层没有定义误差项,后面还有一些计算这里就不列举了,真正在编程的时候其实只要再去看一下公式,然后注意一下在计算前面一项detla的时候不要算上后面一层中+1那个偏置的detla就好。

这一次讲的十分简单,因为确实还有地方需要补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值