3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /
http://www.Sina.com/http://www.Sina.com /
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /
http://www.Sina.com/http://www.Sina.com /
3358 www.Sina.com/http://www.Sina.com /是深度神经网络(Deep Neural Networks,DNN )的基础算法,因此DNN也可以指多层感知机
我们在感知机和线性判别分析的文章中简要提到了感知机的思想—— 1.。 为了介绍多层感知机,首先回顾一下感知机的算法。
感知机
感知机的损耗函数是
注:这里的I表示第I个样本
坡度如下
用随机梯度下降法求解,如果一次只采用一个错误样本,梯度迭代公式如下
这样得到了感知机的算法流程:
展开
面试的时候,你可能会遇到面试官问多层感知机(MLP),在这里做一个简单的展开。
其实,无论是SVM还是感知机,都是优化目标函数:
超平面乘以常数不会在是中改变超平面,但在http://www.Sina.com/http://www.Sina.com /中与稍后的优化算法有关。
引出神经网络
为了更好地介绍神经网络。 我们调整符号。深度神经网络(DNN)
下标表示第几个维,上标表示第几个样本。
感知机型号为的基础算法,有时候提起DNN就是指MLP
学习输入和输出之间的线性关系,回顾广义线性模型,得到中间输出结果。
然后引入激活函数(神经元) :
这样可以得到分类标签1或-1
神经网络是用感知机扩展的:
2.感知机跟SVM优化的目标一致,损失函数不同(前者分母限制为1,后者分子限制为1)),提高模特表现力
3.神经网络由
神经网络层可分为输入层(第一层)、隐藏层(中间层)和输出层(最后一层)三层。 一般来说
g>第一层是输入层,最后一层是输出层,而中间的都是隐藏层,且层与层之间是全连接的:从每一个局部来看,都是一个线性模型加上一个激活函数。
接下来看看在神经网络里面,变量系数w和偏倚项b是如何定义的。先给结论:
比如对于下图三层的DNN:
可以知道,上标代表所在的层数,下标的第一个数字代表所在层数的索引,下标第二个数字代表所在上一层的索引;偏倚项只在该层起作用,所以下标就代表该层的索引。
另外,我们用z代表每一层的线性表示,用a代表每一层的输出(加上激活函数),他们的上下标命名原则与变量系数一致。由DNN结构可以知道,下一层的输入就是上一层的输出。
最后提一点,输入层是没有偏倚项的
前向传播
DNN是层层输出的,显然我们想利用上一层的输出计算下一层的输出,假设激活函数为σ(z),对于下图的神经网络
对于第二层,它的输入是第一层初始变量x,所以输出为:
对于第三层,它的输入是第二层的输出,所以第三层的输出为:
由上面的例子我们很自然的就想到用矩阵的方式表达输入与输出的关系。
由此我们可以得到多层感知机的前向传播算法:
反向传播
数学模型最终是希望预测的结果与真实接近,在MLP中,我们希望
引入损失函数来衡量模型好坏,此处采取均方误差为损失函数:
对于第L层,我们有
代入损失函数,有:
采取梯度下降法迭代,为了表示方便,我们引入Hadamard积:
J关于W,b的梯度为:
它们有公共部分,把公共部分表示出来:
于是第L层的W,b梯度可以表示为:
对于任意的第l层呢,幸运的是,它们的结果类似:
又因为
所以考虑递推法得到所有层的δ,根据
得到l层与l+1层的递推公式:
综合以上,我们可以得到多层感知机的反向传播算法(BP):
参考资料:
https://www.cnblogs.com/pinard/p/6418668.html