斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

分类

直觉上的分类 在机器学习上 一般认为分类是逻辑回归问题,输入的x是固定的,只训练参数W也就是softmax的权值,然后给定输入x时输出y的概率

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 softmax详解

给定输入x时的输出为y的概率计算分成两步

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 使用第y行的w乘以向量x Wy.x代表了取出了矩阵w的第y行与x相乘

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 将这个向量输入到softmax中计算得到一个概率分布所有概率之和为1

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 背景:为什么使用 Cross entropy 尽可能最小化两个分布之间的KL分布 而参数正是softmax的值 

(有关KL分布,请参考邱锡鹏的深度学习)

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 所以使用cross entropy 的loss function为

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 一般情况下会加上正则化,防止overfitting

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

一般机器学习的模型中,维数一般都比较小但是在深度学习中既要学习softmax也需要学习word vector 数据集很大 很可能导致overfitting

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 在学习优化之前,了解一下word vector 的更新内容 举例:当我们使用一个较小的数据集去测试,很容易发生overfitting 所以当只有很小的训练集时,不要训练word vector 相反如果有很大的数据集,训练word vector 的效果可能会更好

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 词窗口分类:单个词进行分类是很少的,大多数是理解其在上下文中的意思

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

实际的细节 对于词窗口分类 举例分为4个标签 人名 地名 组织 其他 假设窗口大小为2 拼接组成一个x窗口,这里的vector 为列向量 column vector 数学上使用 column vector比较方便

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 输入到softmax中 但是我们怎么更新word vector

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 就是进行求导 第一步仔细定义你的变量 定义变量的维度等等 第二步链式法则

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 tip 4 and tip 5 向反向传播迈向一步

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 tip 6 tip 7 tip 8

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

上几张ppt讲的就是有关loss function求导的问题

步骤合起来就是:

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

于是就可以更新词向量了:

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 另一方面,对W求偏导数,将所有参数的偏导数写到一起有:

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 对于矩阵运算 使用for循环更好点 速度上会更快些

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 softmax的作用很有限 只能给出边界 但是神经网络却可以做到更好

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 神经网络

一个神经元本质是一个二分类回归单元

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 一个神经网络=同时运行几个线性回归

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 矩阵运算对于一个神经网络层 W的行数是神经元的数量 列数为输入x的维度

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 非线性 f函数为什么他们需要

因为线性系统所有层等效于一层:

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 神经网络在词窗口分类更加有效 一个单层的神经网络 这里选择另一个更简单的分类器函数

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 在此之前 先了解一下前馈过程:最终使用测试在你求导之前先训练每个元素先前馈 然后后向进行求导

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 额外的层数 可以找到词与词之间的非线性关系

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

最大间距loss function 为了让正确的得分更高 错误的得分更低 并且是连续的 可以使用SGD

最大间距loss function原理 尽可能使得最近点之间的距离最大化

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 这实际上是将函数间隔转换为几何间隔,参考SVM:http://www.hankcs.com/ml/support-vector-machine.html#h3-3

如何进行优化:梯度下降加上链式法则

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 如何获取梯度 W的梯度和b的梯度

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 反向传播就是不断求导和使用链式法则

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

再次把上面的例子拿出来:

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 整个梯度为:

斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 斯坦福CS224n NLP课程【四】——Word Window分类与神经网络

 最后的两个公式其实是一样的