机器学习笔记-第四章 神经网络

来源:互联网 发布:吉他谱有什么软件 编辑:程序博客网 时间:2024/06/06 03:38

本文为斯坦福大学吴恩达教授的《机器学习》视频课程第四章主要知识点,参考书籍《Python数据分析与挖掘实战》、《机器学习》


前面的章节学习了线性回归和逻辑算法,实际上很多复杂的非线性分类器都依赖于神经网络算法。

当特征值的个数过多时,多元回归方程的高阶多项式的个数将以几何倍数增加,特征空间将会很大。而对于很多机器学习的例子,特征值的个数是很大的,例如图像识别,一副图片中的像素个数就代表了特征值的数量,如果再用二次项来拟合的话,就会甚至有百万数量级的特征值,计算成本将会变得特别高,所以多元回归方程计算就不是一个很好的方法。

所以很多复杂的非线性分类问题会使用神经网络方法实现。

生物神经网络的作用过程:

每个神经元会与其它的神经元相连,当它“兴奋”的时候,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位,如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其它神经元发送化学物质。


神经网络模型:


在模型中,神经元接收来自n个其它神经元传递过来的输入信号,这些输入信号通过带权重(weight)的链接进行传递,神经元接收到的总输入值与神经元的的阈值(bias)进行比较,然后通过“激活函数”(activation function)处理,产出神经元的输出。用一句话概括就是:神经元处理接收到的信息并传递给其它神经元。


如何向量化表示前向传播的过程运算:

前向传播(FP):从输入层的激励开始,向前计算隐藏层的激励,最终计算输出层的激励。

当只有一层隐藏层(hidden layer,非输入层也非输出层)时,神经网络模型长这样:


表示第j层第i个激励,表示控制着神经网络从j层到j+1层变化的权重矩阵,如下图:


在第j层有Sj个单元,在第j+1层有Sj+1个单元,那么的维度是Sj+1*Sj。

为了将以上神经网络的计算过程向量化表示,我们引入新的变量,用来压缩参数与激励之间的复杂计算,如:


举个栗子,在第二层,

假设,则

就是最终的表示。



图片识别分类问题的神经网络模型如下:



我们希望将输入的图片进行识别分类,输出显示为上述四种的之一


神经网络的结构可简化为:


即,输出的种类有4个分类,每个分类对应不同的物体:


整体的神经网络计算过程表示为:




代价函数:

逻辑回归方程的代价函数如下:


神经网络的输出如果有K类,那么代价函数就是K个逻辑函数之和:


后一半部分表示将所有的加和(偏差单元bias不考虑)


反向传播(BP)算法:

BP算法的学习过程由信号的正向传播与误差的反向传播两个过程组成。

误差反向传播是让代价函数最小化的算法,是利用输出后的误差来估计前一层的误差,再利用这个误差估计更前一层的误差,如此一层一层的反向传播下去,就获得了所有其他各层的误差。这样就形成了将输出层表现出的误差沿着与输入层传送相反的反向逐级向网络的输入层传递的过程。

每一层的计算误差:


前一层某个单元的误差值是由后一层每个单元误差值与权重值的乘积之和组成的:


BP算法的训练过程为:
正向传播时,输入的信号经过隐藏层的处理后,传给输出层,若输出层未能得到期望的输出,则进入误差的反向传播阶段,将输出误差通过隐藏层向输入层方向传递,隐藏层的各个节点根据获得的误差修改各自权重(weight)和偏差(bias),正向传播与误差的反向传播过程是周而复始进行的,权重和偏差不断修正,直到输出误差减少到可接受的程度或达到设定的学习次数为止。







原创粉丝点击