公众号关注 “DL_NLP”
设为 “星标”,重磅干货,第一时间送达!
◎ 原创 | 深度学习算法与自然语言处理
◎ 作者 | Dedsecr
“深层”神经网络即隐藏层较多。
1. 深层网络中的前向和反向传播
1.1 前向传播
输入:
输出:,cache()
公式:
1.2 反向传播
输入:
输出:,,
公式:
1.3 搭建深层神经网络块
神经网络的一步训练(一个梯度下降循环),包含了从 (即 )经过一系列正向传播计算得到 (即 )。然后再计算 ,开始实现反向传播,用链式法则得到所有的导数项, 和 也会在每一层被更新。
将正向传播过程中计算出来的 值缓存下来,待到反向传播计算时使用。
2. 核对矩阵的维数
对于 ,向量化之前有:
而在向量化之后,则有:
在计算反向传播时, 的维度和 是一样的。
3. 使用深层表示的原因
3.1 理论一
对于人脸识别,神经网络的第一层从原始图片中提取人脸的轮廓和边缘,每个神经元学习到不同边缘的信息;网络的第二层将第一层学得的边缘信息组合起来,形成人脸的一些局部的特征,例如眼睛、嘴巴等;后面的几层逐步将上一层的特征组合起来,形成人脸的模样。随着神经网络层数的增加,特征也从原来的边缘逐步扩展为人脸的整体,由整体到局部,由简单到复杂。层数越多,那么模型学习的效果也就越精确。
同样的,对于语音识别,第一层神经网络可以学习到语言发音的一些音调,后面更深层次的网络可以检测到基本的音素,再到单词信息,逐渐加深可以学到短语、句子。
3.2 理论二
深层的网络隐藏单元数量相对较少,隐藏层数目较多,如果浅层的网络想要达到同样的计算结果则需要指数级增长的单元数量才能达到。
另外一个,关于神经网络为何有效的理论,来源于电路理论,它和你能够用电路元件计算哪些函数有着分不开的联系。根据不同的基本逻辑门,譬如与门、或门、非门。在非正式的情况下,这些函数都可以用相对较小,但很深的神经网络来计算,小在这里的意思是隐藏单元的数量相对比较小,但是如果你用浅一些的神经网络计算同样的函数,也就是说在我们不能用很多隐藏层时,你会需要成指数增长的单元数量才能达到同样的计算结果。
4. 参数和超参数
参数(parameters)即是我们在过程中想要模型学习到的信息(模型自己能计算出来的),例如 ,。而超参数(hyper parameters)即为控制参数的输出值的一些网络信息(需要人经验判断),例如算法中的learning rate (学习率)、iterations(梯度下降法循环的数量)、(隐藏层数目)、(隐藏层单元数目)、choice of activation function(激活函数的选择),超参数的改变会导致最终得到的参数 , 的改变。
当开发新应用时,预先很难准确知道超参数的最优值应该是什么。因此,通常需要尝试很多不同的值。应用深度学习领域是一个很大程度基于经验的过程。
推荐阅读:
深度学习概论——吴恩达DeepLearning.ai深度学习笔记之神经网络和深度学习(一)
神经网络基础——吴恩达DeepLearning.ai深度学习笔记之神经网络和深度学习(二)
浅层神经网络——吴恩达DeepLearning.ai深度学习笔记之神经网络和深度学习(三)