标签:问题 pop 怎么办 back 不同的应用 lex style idt 优劣
欢迎转载。转载注明出处:
http://blog.csdn.net/neighborhoodguo/article/details/47387229
不知不觉到了第三部分了。整个课程也快结束了,尽管不是第一次整个推完公开课。可是还是有些兴奋呢!
废话不多说,開始总结啦!
这节课就介绍了一个模型,就是在Computer Vision里十分popular的CNN(Convolutional Neural Networks)。
只是这里介绍它在NLP的应用,可见model事实上是能够有不同的应用的哦,没准我们的大脑就是这么运转的,哈哈扯远了。
RNN是先整出来一个parsing tree然后一步一步的向上爬(蜗牛吗?- -),CNN不用整出来一个parsing tree。用论文里的话说就是Induced Feature Graph,能够自己生成拓扑结构。看似挺不错的。
RNN是使用过的vector在同一layer里不会再使用第二次,CNN是用过的vector在同一layer里还能够用,从不计较。
CNN非常像卷积的。选一个window,然后从左向右的一步一步的移动。然后生成上一层的layer。
第一部分介绍了一个最最简单的CNN。就是一个金字塔的结构:
然后使用和RNN里一样的计算步骤。一步一步的recursive
这样的模型简单是简单,可是效果不好
于是就想出来一个好办法,第一步和之前的金字塔结构一样,就是生成金字塔的最以下两层:
然后生成了一个c的vector,接下来就pooling的过程,c_hat = max{C}
可是这样提取出来的仅仅有一个啊,怎么办呢?多建几个金字塔不久好了,不正确多建几个金字塔的底座,专业点说就是用不同宽度的window提取出feature map。然后再pooling。这样提取出来的features就多了。
有一个trick据说能够提高精度
在training阶段的最后一步,在z之前element-wise乘一个r,r是Bernoulli random variables。
这样能够有意的提高overfitting的可能性,继而能够训练尽可能多的features
在使用的时候当然不用再乘r了,可是weight会非常大。所以:
使其缩小。再计算最后结果
另一个trick是为了避免overfitting的:
另一个trick - -
因为我们的模型非常复杂,dataset也非常大,训练时间非常长。可是终于的训练结果可能不是最优的,所以就每隔一段时间,记录下来对应的weight和accuracy,在最后训练完毕的时候使用accuracy最高的weight。
在课程的最后讲了一个最复杂也是最牛掰的CNN,在看完paper之后算是弄明确了
第一层使用的是Wide Convolution
左边的是narrow右边的是wide
详细要怎么convolution呢?首先选一个m作为weight matrix
然后生成M
最后往上 计算一层:
这个model里使用的k-max pooling和之前的不一样,这里一次提取出来前k个最大的,不像之前模型仅仅提取出最大的
首先是k的计算方法:
当中L是总层数,l是对应的层,s是句子里的单词数。k_top这个就自己优化了。
计算方法和这个类似,区别就是取出前k个最大的
这个最简单,就是把每两行相加起来,加之前是d行,加之后是d / 2行
得到了想要的features最后就用Fully connected layer做预測了!
先无论用之前讲得哪种CNN生成最顶上的那个feature,然后用RNN生成相应的target language
Bag of vectors对于简单的分类问题非常好
Window Model对于单词的分类非常好,长段的分类不行
CNNs直接被吹得万金油了
Recursive NN语义学上貌似可信,可是得生成一个parsing tree(我怎么感觉这个不靠谱)
Recurrent NN认知学上貌似可信,可是如今性能不是最优的
标签:问题 pop 怎么办 back 不同的应用 lex style idt 优劣
原文地址:http://www.cnblogs.com/ljbguanli/p/6940374.html