课程目标
- 课程信息更新
- 分类的复习
- 神经网络介绍
- 命名体识别
- Binary true vs. corrupted word window classification(不懂什么意思)
- 矩阵微积分介绍
二、分类的介绍和概念
有训练集:
{xi,yi}Ni=1
简单的例子:使用逻辑回归对二维向量进行分类
传统的方法:假设xi是固定的,训练逻辑回归权重W来确定一个边界
目标函数:
逻辑回归细节:
1、取W的第y行并将其与x相乘,似乎是因为本质上只有W的第y行和x相乘有意义
2、应用softmax得到归一化概率
训练softmax和交叉熵损失
训练:
最大化P,等价于最小化:
反向传播:什么是交叉熵损失?
真正的可能分布为p,我们计算出来的分布为q,交叉熵损失是:
假设真正的分布是只有在真的类别的位置上是1,其他是0:p=[0,0,0,0,1,0,0,0...],把p带入,得到的等式是只有真正类别的负的对数概率,交叉熵损失变为:(p(c)=1,q(c)=log...)
用上面计算的带入
传统的ML的优化
参数θ为:
所以我们更新的是:
但是这个线性分类能力有限,不能处理复杂的分类。因为它只能在空间上画一条直线。
神经网络可以处理复杂的数据分布。
分类和词向量的不同点:
一般在深度学习中:
我们都学习权重W和词向量x
都学习常规参数和表示
单词向量重新表示一个独热向量——在中间层向量空间中移动它们——以便使用(线性)softmax分类器通过x = Le层进行分类
三、神经网络
采用的是非线性激活函数
一个神经网络=同时运行多个逻辑回归
如果我们喂给它一个向量作为输入,经过多个逻辑回归函数,输出的也是一个向量
为什么非线性f是需要的。如果没有f,又变成线性的了。
四、命名体识别(NER)
可能的目标:
跟踪文档中提到的特定实体
对于问题回答,答案通常是命名实体
许多需要的信息实际上是命名实体之间的关联
同样的技术也可以扩展到其他槽填充分类
为什么命名体识别如此困难呢?
1、很难知道是否某样东西是一个实体
2、很难识别出不知道的实体
3、上下文的不同导致某些词的意义不一样
五、Binary word window classification
一般情况下,分类单个单词是很困难的,因为会有一词多义
窗口分类
在相邻单词的上下文窗口中对单词进行分类。
-
在上下文中对单词进行分类的一种简单方法可能是对窗口中的单词向量进行平均,并对平均向量进行分类
-
但是会损失位置信息
训练softmax分类器对中心词进行分类,方法是在一个窗口中将中心词周围的词向量串联起来。
可以和之前一样用相同的损失函数
非标准化分数的二分类
假设我们想要判断一个中心词是否是一个位置词,和word2vec类似,我们遍历所有的语料库中的位置。但是,在这里,这个一个监督的过程,只有一些位置信息应该得到高分。
例子:
-
Not all museums in Paris are amazing
只有中心词是Paris的窗口是对的窗口,其他窗口(corrupt窗口)没有位置信息作为中心词。corrupt窗口很容易找到。任何中心词没有被标记为ner的窗口。
神经网络前向传播计算
我们计算一个窗口的分数通过三层神经网络
最大边界损失
训练目标:
确保对的窗口的分数最大,corrupt窗口分数最小,比如:
-
s = score(museums in Paris are amazing)
-
sc = score(Not all museums in Paris)
-
可以采用随机梯度下降SGD
目标函数变为: