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

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

 


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



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


对于每一行特征,我们都会给出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 的

参数矩阵


训练一个神经网络


训练神经网络的步骤如下




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值