深度神经网络是如何训练的?
Coursera的Ng机器学习,UFLDL都看过。没记错的话Ng的机器学习里是直接给出公式了,虽然你可能知道如何求解,但是即使不知道完成作业也不是问题,只要照着公式写就行。
反正我当时看的时候心里并没能比较清楚的明白。我觉得想了解深度学习UFLDL教程 - Ufldl是不错的。有习题,做完的话确实会对深度学习有更加深刻的理解,但是总还不是很清晰。
后来看了Li FeiFei的Stanford University CS231n: Convolutional Neural Networks for Visual Recognition,我的感觉是对CNN的理解有了很大的提升。
沉下心来推推公式,多思考,明白了反向传播本质上是链式法则(虽然之前也知道,但是当时还是理解的迷迷糊糊的)。所有的梯度其实都是对最终的loss进行求导得到的,也就是标量对矩阵or向量的求导。
当然同时也学到了许多其他的关于cnn的。并且建议你不仅要完成练习,最好能自己也写一个cnn,这个过程可能会让你学习到许多更加细节和可能忽略的东西。
这样的网络可以使用中间层构建出多层的抽象,正如我们在布尔线路中做的那样。
例如,如果我们在进行视觉模式识别,那么在第一层的神经元可能学会识别边,在第二层的神经元可以在边的基础上学会识别出更加复杂的形状,例如三角形或者矩形。第三层将能够识别更加复杂的形状。依此类推。
这些多层的抽象看起来能够赋予深度网络一种学习解决复杂模式识别问题的能力。然后,正如线路的示例中看到的那样,存在着理论上的研究结果告诉我们深度网络在本质上比浅层网络更加强大。
谷歌人工智能写作项目:神经网络伪原创
如何更好的理解分析深度卷积神经网络
作者:杨延生链接:来源:知乎著作权归作者所有,转载请联系作者获得授权文案狗。"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的 新的结构和新的方法。
新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。
关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。
新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。
这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。
---------------------- 下面是原答案 ------------------------从广义上说深度学习的网络结构也是多层神经网络的一种。
传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。
而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。
具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。
输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- ..