原文作者:Rohit Mundra, Richard Socher
原文翻译:@熊杰(jie.xiong.cs@gmail.com) && @王昱森(ethanwang92@outlook.com) && @范筑军老师( fanzhj@mail.sysu.edu.cn) && @OWEN(owenj1989@126.com)
内容校正:寒小阳 && 龙心尘
时间:2016年6月
出处:
http://blog.csdn.net/han_xiaoyang/article/details/51711134
http://blog.csdn.net/longxinchen_ml/article/details/51711172
说明:本文为斯坦福大学CS224d课程的中文版内容笔记,已得到斯坦福大学课程@Richard Socher教授的授权翻译与发表
课堂笔记:第3课
关键词:神经网络,正向计算,反向传播,神经元,最大化间隔损失,梯度检验, 参数的哈维初始化, 学习速率, ADAGRAD(自适应梯度法)
这是斯坦福CS224d深度学习与自然语言处理的第3课,这节课先会介绍单层和多层神经网络和它们在机器学习分类任务中的应用, 接着介绍如何利用反向传播算法来训练这些神经网络模型(在这个方法中,我们将利用偏导数的链式法则来层层更新神经元参数)。在给出神经网络以及这些算法严谨的数学定义后,介绍了训练神经网络的一些实用的技巧和窍门,比如,神经元(非线性激励),梯度检验,参数的Xavier初始化方法,学习速率,ADAGRAD(自适应梯度法)等。最后,我们在神经网络模型的基础上来建立语言模型
我们发现notes最后语言模型这个部分被略去了,回头ppt里面扒出来补充给大家
1 神经网络:基础
我们在前面的课程中提到,由于大部分数据并非线性可分,线性分类模型在这些数据上的分类效果略显尴尬,而非线性的分类模型通常能取得更好的效果。 如下图1所示,神经网络模型就是这样一类具备非线性决策边界的分类器。 从图上我们可以看到神经网络生成了非线性判定边界,来对2类样本做分类,那咱们一起来看看,它是怎么做到的呢。
图 1 ︰ 在图上可以看到神经网络产生的非线性判定边界,更好地把2类样本点分隔开了。这就是神经网络的强大之处(不纠结原始样本的分布状况)。
一点小历史 ︰ 神经网络是受生物学启发的分类器,因此它也常被称为人工神经网络(ANN),以区别于生物学上的神经网络。事实上,人类的神经网络复杂性高很多,也比ANN具有更强大的能力,所以即使名字很接近,两者之间倒没有那么多的相似之处。
1.1 神经元
简单说来,神经元其实就是一个取 n 个输入,并产生单一输出的通用计算单元。每层神经元通过不同的参数(也称权重)产生不同的输出结果(通常情况下同一层神经元的输入值是相同的,只是权重不同)。比较常见的神经元(激励函数)是”Sigmoid函数”,也叫作”二项逻辑回归”单元。这种神经元,对于输入的
其中 w 是权重,
为了运算的一致性和精简性,我们也可以把权重向量和偏差变量写到一个
你们看出来了,就是把偏移量放作权重的一部分
下图2是这种神经元的一个直观一点的解释:
图 2 ︰ 这就是所谓的”二元逻辑回归”神经元,输入向量 x 的各个元素被 w 中对应的权重缩放后求和,加上偏移量 b (数学上可以看做对对输入x做线性的变换)之后放进”Sigmond函数”。
一点小总结:神经元呢,可以看做神经网络的基本组成功能单元,有多种多样功能(就是对输入做不同非线性变换)的神经元,它们共同去帮助整个神经网络形成非线性切分的能力。
1.2 单层神经元
刚才看完1个神经元的情况了,也知道它在做的非线性变换(输入到输出的运算)是什么,现在咱们拓展一下,看看对于一组输入
图 3 ︰ 传说中神经网络的一层(多个”二元逻辑回归”神经元),它们的输入是一致的,都是x。
我们分别用 { w(1),⋯,w(m)} , { b1⋯,bm} 和 { a1⋯,am} 来表示 m 个神经元的权重向量,偏移量以及激励输出,则有一下的结果:
式子多了看着有点乱,咱们设定一下以下的数学标记,简化简化在神经网络中的公式:
其中,
这样咱们的二元逻辑回归的激励输出就可以写成: