第十章 神经网络参数的反向传播算法

课时72 代价函数

神经网络分类模型:
第十章 神经网络参数的反向传播算法_第1张图片
L代表层数,sl代表每层的单元数(不算bias unit)。多分类问题中,K可以代表最后一层的sl,也就是几元分类问题。二分类问题k=1,sl=1。
代价函数:
第十章 神经网络参数的反向传播算法_第2张图片
与逻辑回归相比,神经网络可以用很多输出变量,hθ(x)是一个维度为K的向量(i表示其中的第几个元素),所以加下标i表示第i个输出。
第一项要加上k个输出单元代价之和,所以x(i),y(i)也要加下标k表示是最后一层输出单元。
λ项即正则项,对所有的θji(l)项求和,同样不算偏差单元项。

课时73 反向传播算法back propagation algorithm可以求梯度

前向传播向量化: 假设只有一个输入(x,y)
第十章 神经网络参数的反向传播算法_第3张图片
用反向传播算法计算偏导数项(梯度):
第十章 神经网络参数的反向传播算法_第4张图片
δj(l)表示第l层第j个节点的误差值。δ的大写字母是三角形,三角形代表误差矩阵。上面老师写的结果是不做正则化处理的偏导结果。
注意:l表示第几层。
j表示当前层的激活单元下标,也就是下一层第j个输入变量的下标。
i表示下一层中误差单元的下标。
反向传播算法求出偏导数:
第十章 神经网络参数的反向传播算法_第5张图片
即首先用正向传播方法计算出每一层的激活单元,利用训练集的结果与神经网络预测的结果求出最后一层的误差,然后利用该误差运用反向传播计算出直至第二层的所有误差。

课时74 直观理解反向传播算法

为了更好地理解反向传播算法,我们先再看看正向传播算法:
第十章 神经网络参数的反向传播算法_第6张图片
z加上sigmoid函数就是a。正向传播算法是从左到右遍历神经网络,反向传播算法是从右到左。
再来看一下代价函数:第十章 神经网络参数的反向传播算法_第7张图片
这是只有一个输出的情况,如果是多元分类,会涉及到k了。先简单地把cost(i)考虑成某种方差函数,不考虑带log的sigmoid函数,delta项实际上是代价函数中建项的偏导数。
第十章 神经网络参数的反向传播算法_第8张图片
反向传播是反向计算δ:第十章 神经网络参数的反向传播算法_第9张图片
如何反向计算delta:
第十章 神经网络参数的反向传播算法_第10张图片

课时75 使用注意:展开参数unroll parameters

高级优化算法中要求初始参数theta的Theta1,Theta2,Theta3是向量而不是矩阵,gradient的D1,D2,D3也是向量,这里讲一下把矩阵转化成向量的方法:
第十章 神经网络参数的反向传播算法_第11张图片
reshape函数是还原列向量成矩阵。
第十章 神经网络参数的反向传播算法_第12张图片
过程:第十章 神经网络参数的反向传播算法_第13张图片

课时76 梯度检测gradient checking

当我们对一个较为复杂的模型,如神经网络,使用梯度下降的时候,可能会存在一些不易察觉的bug,即使代价在每次迭代中都在减小,但最终的结果可能并不是最优解。用gradient checking解决这个问题。
求一个点处的导数:第十章 神经网络参数的反向传播算法_第14张图片
上例中θ是实数,如果theta是n维向量,用偏导数检验:
第十章 神经网络参数的反向传播算法_第15张图片
Octave中实现:
第十章 神经网络参数的反向传播算法_第16张图片
梯度检测:第十章 神经网络参数的反向传播算法_第17张图片
注意:先用backprop反向传播计算DVec(展开的D(1)D(2)D(3)),再用梯度检测计算gradApprox看是否近似相等。然后一定要关闭梯度检测,再用反向传播计算进行训练,否则程序会很慢。

课时77 随机初始化random initialization

不可以再像逻辑回归一样把参数θ初始值全设为0了,就算不是0是别的相同的数,那样所有权重都一样,第二层所有激活单元的值也都相同了。
第十章 神经网络参数的反向传播算法_第18张图片

课时78 组合到一起

先选择网络构架architecture:输入单元数就是有几个特征。输出单元数就是有几个分类。隐藏层数一般来说是一层,当然越多层越好。每个隐藏层的单元数一般来说是一样的,而且和输入层单元数匹配,如多几倍。
训练神经网络:
1、随机地初始化权重,初始化为一些接近0的很小的值
2、用前向传播算法计算hθ(x(i))
3、编程计算J(θ)
4、用反向传播算法计算偏导在这里插入图片描述
在for循环中,执行前向传播反向传播就得到了所有的激励值a(l)和delta项δ(l)
5、梯度检测,证明上面求的偏导是正确的,然后关闭梯度检测代码
6、用梯度下降或者优化算法和反向传播来最小化J(θ)

课时80 无人驾驶

你可能感兴趣的:(第十章 神经网络参数的反向传播算法)