在学习吴恩达老师的UFLDL教程(非常感谢无私的翻译人员)时,发现有的知识点需多看几遍才理解下来。于是将有的知识点进行了整理和记录。
UFLDL教程链接
两种激活函数:
sigmoid函数 和 双曲正切函数tanh(x)
tanh(z)函数是sigmoid函数的一种变体,它的取值范围为[−1,1],而不是sigmoid函数的[0,1]
如果选择f(z)=1/(1+exp(−z)),也就是sigmoid函数,那么它的导数就是f′(z)=f(z)(1−f(z))(如果选择tanh函数,那它的导数就是f′(z)=1−(f(z))2,你可以根据sigmoid(或tanh)函数的定义自行推导这个等式.
前馈神经网络模型
特点是: 没有闭环或回路
像这种从输入层,一层一层的向输出层传播数据,称为 : 前向传播 。
代价函数
注意 1. 代价函数
这里注意:
J(W,b;x,y)
和
J(W,b)
是不一样的。
文章上面明确指出,我们共有m个样本,
J(W,b;x,y)
表示的某一个样本i 造成的误差。
J(W,b)
表示的m个样本造成误差的平均和。
即
J(W,b)
是所有样本
J(W,b;x,y)
的平均和(当然,
J(W,b)
还加了一项正规化)
注意 2. 回归与分类
也就是在回归问题,要对输出值域规范化。
原因还没想清楚。
注意 3. 关于参数的初始化
能力尚浅,原因还没想清楚。
梯度下降法 最小化代价函数
在《机器学习基石》这门课程当中,讨论了梯度下降法。
其实就是迭代优化的思想。
wt+1=wt+ην
。其中
η和ν
一个表示方向,一个表示步长。他们怎么取值,见我的《机器学习基石》系列的 其中一节 (logisitic 回归 +极大似然法 + 梯度下降法 (迭代优化))
其中关键步骤是计算偏导数。我们现在来讲一下反向传播算法,它是计算偏导数的一种有效方法
反向传播算法(用于计算偏导数)
具体见教程,这里只说明
的推导过程。