Note:Unrollittogether(组合到一起-如何训练一个神经网络)

Neural Networks:Learning内容很多,所以分为两篇。

一、内容总结

实践中的反向传播

二、关键点和难点1. 实践中的反向传播1) 实现注意:展开参数

本节主要讲一个使用octave实现神经网络算法的小技巧:将多个参数矩阵展开成一个向量。详情请参考课程视频,此处省略。

2) 梯度检查

神经网络算法是一个非常复杂的算法,所以我们很难直观的观察结果是否正确,所以在实现的时候需要做一些检查。本节给出了一种检查梯度的数值方法。

首先,我们可以将损失函数的梯度近似为

推广到一般形式是:

一般来说

更近

最后我们的主要目标是检查这个梯度的近似向量是否近似等于反向传播算法得到的梯度向量。实施注意事项:

特别重要的是:

3) 随机初始化

如何学习一个神经网络的细节到此为止基本都做完了,但是还有一点需要注意,那就是如何初始化参数向量或者矩阵。通常,我们将所有参数初始化为0,这对于很多问题来说已经足够了,但是对于神经网络算法,会出现一些问题神经网络 参数初始化,下面会详细介绍。

对于梯度下降和其他优化算法,参数向量的初始化是必不可少的。是否可以将所有初始化参数设置为0?

在神经网络中,如果所有参数都初始化为0,就会出现问题。例如,对于上面的神经网络示例,如果所有参数都初始化为 0,则在每一轮参数更新中,与输入单元关联的两个隐藏单元都被隐藏。单位的结果将是相同的,两者:

这个问题也称为对称权重问题,所以我们需要打破这个对称性。这是一种随机初始化参数向量的方法:初始化

是一个落在区间[-ε,ε]内的随机数,可以非常小,但与上述Gradient Checking中的ε无关。

4)放在一起(组合在一起——如何训练一个神经网络) 老师说后面会更详细的介绍。

我们已经谈了很多关于神经网络训练的内容神经网络 参数初始化,现在是时候把它们放在一起了。那么,如何训练神经网络呢?

在确定了神经网络的结构后,我们训练神经网络如下:

神经网络的应用

主要介绍老师的大朋友使用神经网络设计的自动驾驶汽车的视频。如果你有兴趣,你可以观看它。自动驾驶汽车

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论