Deep Learning for Nature Language Processing --- 第五讲

Class Project

占40%的成绩比重

尽早规划好任务和数据集

project类别:

1. 用已存的神经网络应用在一个新的任务task上

2.开发出一个新的神经网络结构

Class Project: Apply Existing NNets to Tasks

1.构建任务,如:生成摘要

2.准备数据及:

1).已经有基准线的学术上的数据集,如:Document Understanding Conference (DUC)

2).构建你自己的数据集,可以是TwiMer,Blogs,News等

3.定义好任务task的衡量标准

4.划分好数据集,train/cv/test.学术上常用的数据集一般已经划分好了

5.建立基准线:首先完成一个简单的模型(如一元或者二元的逻辑回归),然后再train/cv dataset上计算错误率,分析错误原因。如何没有错误,重新来过:)

6.在已经存在的神经网络模型上实现:计算train/cv dataset的错误率并分析

7.可视化数据集,收集摘要统计信息,分析错误,分析不同的参数对运行结果的影响。

8.尝试更多不同种类的模型

Class Project:A New Model -­‐-­‐ Advanced Option

这里写图片描述

Project Ideas

这里写图片描述

Summary:Feed-­‐forward Computation

http://nlp.stanford.edu/sentiment/">电影评论情感分析参考:http://nlp.stanford.edu/sentiment/

假设:1.s=score(museums in Paris are amazing) 2.sc=score(Not all museums in Paris)

训练目标函数的一些思想idea:最大化true window的sore,最小化correct window的score,也就是最小化下面的函数(因为是连续的,所以可以采用SGD,下面的函数针对单个window):

这里写图片描述

就例子s而言,对于一个中心词是一个location的window,会比中心词不是location的window得到的分数高score+1

整体的,针对整个数据集的目标方程就是讲每个单独window对应的目标方程相加。

Training with Backpropagation

这里写图片描述
带下标c的一般表示负样本

假设J>0,求s和sc关于U,W,b,x的导数。示例:

这里写图片描述

先考虑s对单个权重Wij的导数,参考下面的函数变形,所以Wij只影响ai

这里写图片描述

以W23为例,W23只能用来计算a2

这里写图片描述

所以将s对Wij 求导:

这里写图片描述
这里写图片描述

求出了对Wij单个元素的导数,那么如何求s对整个W矩阵的导数呢?答案($\delta$ 表示的是每个activation的错误信息,其维数与相对应的hidden layer的维数相等):

这里写图片描述

而对于偏置b:

这里写图片描述

接下来我们对word vector(x)进行求导:

这里写图片描述

对U进行求导:

这里写图片描述

Two layer neural nets and full backprop

x,score function的定义与前面一样

这里写图片描述

求导过程请参考原讲义 lecture,这里给出结论:一般来讲,对于所有的普通的多层神经网络,在该神经网络内的hidden层权重矩阵W(l) 和regularization后的错误流ER(就是目标函数J),可以总结为以下两个式子(对于多层神经网络的顶层和底层,有更加简单的$\delta$ 表达式):

这里写图片描述
注意$\delta$ 中有个element-­‐wise product

而对于神经网络的输出层的$\delta$ (就是对输出层的,非线性变化之前的Wa+b进行求导)


这里写图片描述

Back-­‐Prop

介绍了一些求导方法和技巧,请参考原文

下一讲

策略和技巧

RNN