您的位置:首页 > 理论基础 > 计算机网络

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

2017-09-03 20:43 190 查看
神经网络应该分了很多类别吧,之前学过卷积神经网络,这里还是从比较原始的神经网络说。



上面是一个三层的神经网络,+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就好。

这一次讲的十分简单,因为确实还有地方需要补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习
相关文章推荐