您的位置:首页 > 其它

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

2015-07-05 11:21 246 查看

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/

假设: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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: