机器学习 第五周 总结 知识点

主要讲反向传播算法及其实现过程,其实最好的方法就是多看几次视频,视频内容本身很棒,理解透彻就好。

 


神经网络的分类以及一些定义如下图


机器学习 第五周 总结 知识点

神经网络的代价函数如下图

机器学习 第五周 总结 知识点

对于每一行特征,我们都会给出K 个预测,基本上我们可以利用循环,对每一行特征都预测 K 个不同结果,然后在利用循环在 K 个预测中选择可能性最高的一个,将其与 y 中的实际数据进行比较。归一化的那一项只是排除了每一层θ0 后,每一层的Θ 矩阵的和。最里层的循环 j循环所有的行(由 sl +1 层的**单元数决定),循环 i 则循环所有的列,由该层(sl 层)的**单元数所决定。即:hθ(x)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行regularization 的 bias 项处理所有参数的平方和。 

机器学习 第五周 总结 知识点

以前的向前传播算法

机器学习 第五周 总结 知识点机器学习 第五周 总结 知识点

可以数学证明其中 g'(z(3))是 S 形函数的导数,g'(z(3))=a(3).*(1-a(3))。而(Θ(3))Tδ(4)则是权重导致的误差的和。

机器学习 第五周 总结 知识点 

l 代表目前所计算的是第几层

j 代表目前计算层中的**单元的下标,也将是下一层的第 j 个输入变量的下标。

i 代表下一层中误差单元的下标,是受到权重矩阵中第 i 行影响的下一层中的误差单元

的下标。

Backpropagation algorithm的实现过程粗略来讲就是先用向前传播算法计算,然后再从输出层起向前进行计算,知道输入层(注:输入层不进行计算)


机器学习 第五周 总结 知识点机器学习 第五周 总结 知识点

函数的实现过程如下图,需要将变量转化成长的向量再进行计算

机器学习 第五周 总结 知识点机器学习 第五周 总结 知识点

最后再将向量转化成变量,进行输出

机器学习 第五周 总结 知识点

估计梯度(求导数)的实现过程

机器学习 第五周 总结 知识点

需要将参数向量化(向量化是一个处理问题很好的方法)

机器学习 第五周 总结 知识点

机器学习 第五周 总结 知识点

特别需要注意的一点就是在运行程序的时候,一定要将检查梯度是否正常工作的代码注释掉(使其不能正常工作),否则程序运行会十分缓慢。

机器学习 第五周 总结 知识点

随机初始化 

在神经网络中,我们是不随机初始化的,如果我们令所有的初始参数都为 0,这将意味着我们第二层的所有**单元都会有相同的值。同理,如果我们初始所有的参数都为一个非 0 的数,结果也是一样的。

机器学习 第五周 总结 知识点

我们通常初始参数为正负ε 之间的随机值,假设我们要随机初始一个尺寸为 10×11 的

参数矩阵

机器学习 第五周 总结 知识点

训练一个神经网络

机器学习 第五周 总结 知识点

训练神经网络的步骤如下

机器学习 第五周 总结 知识点机器学习 第五周 总结 知识点