前言:本文课件均来自Andrew Ng老师的machine learning公开课课程。
一、神经网络基础
如下图,Layer1为输入层,Layer2,Layer3为中间层,Layer4为输出层,L代表神经网络一共有几层,代表第l层包含的单元数(不包括偏差单元)。
神经网络二分类则输出层只有一个节点,若为k分类(k>=3),则输出层为k个节点,如下图。
二、 损失函数
神经网络的损失函数是逻辑回归损失函数的一般形式,损失函数如下图,逻辑回归损失函数和神经网络损失函数的正则化项都不包括偏差单元。
三、反向传播算法
反向传播算法来最小化神经网络的损失函数,目标函数如下图:
先来介绍正向传播和反向传播算法,正向传播算法下图:
反向传播算法:
损失函数偏导数表达式:
训练集的反向传播算法:
在计算误差时,输入层单元的误差项 不予考虑。
损失函数的偏微分方程如下:
四、梯度检验
梯度检验(Gradient Checking)的目的是检验自己的梯度算法是否准确,梯度检验算法比较简单,应用导数的定义来对比梯度算法的结果,若相等或相近则梯度算法准确
代码表示:
五、 随机初始化
当运行梯度下降法时,需要给变量参数幅值一个初始值。(1)初始化参数为零,但是会产生各权重相等、损失函数偏导数相等、以及单元误差相等的情况,导致的结果是只能产生一种特征。
(2)随机初始化(打破权重对称)
六、总结
算法流程: