CS224d lecture 9札记
欢迎转载。转载注明出处:
http://blog.csdn.net/neighborhoodguo/article/details/47193885
近期几课的内容不是非常难。还有我的理解能力有所提高(自恋一下)。所以这几课完毕的都挺快。不知不觉lec9也完毕了。这一讲讲了还有一个RNN,当中R是Recursive不是之前的Recurrent。
课上老师使用Recursive NN来做NLP和CV的任务,我个人觉得做CV还是不错的。这个NLP怎么感觉有点不靠谱。无论怎么说这个model还是攻克了非常多实际问题的。并且性能也不错,如今就来记录记录喽。
首先来梳理一下这一课讲得内容吧。首先讲了怎样把一个sentence进行vector表示,再是怎样进行parsing,然后是构建object function的方法max-margin以及BPTS(Backpropagation Through Structure)。最后是Recursive NN的几个改良版还有这个model也能够进行computer vision的工作。
1.Semantic Vector Space for sentence
类似上一阶段的word vector space这次我们是将一整个sentence投影到semantic vector spaces中。
我们的模型是基于这样两个如果:一个句子的意思是基于1.这个句子所包括单词的意思;2.这个句子的构建方式。当中第二点还在争论中,我们这一讲讨论的模型能够同一时候完毕两个任务,第一能够学出来这个句子的tree模型,第二能够学出来这个句子在semantic vector space里的表示。
Parsing tree是什么呢?上图:

当中上面那个图就是在这一讲里所述的parsing tree。而上一讲的recurrent neural networks事实上类似以下的parsing tree它被视作是上一种parsing tree的特殊表示方式。
这两种表示方法究竟哪个正确如今还没有定论(still cognitively debatable)
如何学出来这个parsing tree呢?聪明的人类发明了一个方法叫beam search就是bottom-up的方法。从最低下開始,计算哪两个成为好基友的score最大,然后取出来最大的score的俩个node然后他俩就merge了(好邪恶)。最后一直到最上面所有都merge起来了就形成了一个parsing tree。
2.objection function?Max-margin framework
slide里的objection function我之后參阅了recommand reading里的object function发现不一样正负号是反的。
我推測是不是老师写得时候给写反了??

论文里给出的object function是这种。当中delta(yi, y_hat)是依据标记错误的node数量再乘以一个k得出的:

score有两个部分:

前半段的v是要通过我们的model学习出来的,后半段是log probability of the PCFG也就是这玩意发生的概率并转成log space下。
课上讲得max-margin不太具体。第二篇论文里面讲得挺好。这里摘抄出来:


最后得到max-margin的公式。我们的目的是使得c(w)最小
这样为什么就是最优的呢,我想了半天才想出来这里用通俗点的话记录一下:假设w不是最优的w那么max()里左边的score选出来的不是y_i,再加上L_i那么终于肯定是ri非常大,必定不是最小的。假设w是最优的呢?那肯定max()选出来的是yi。delta肯定为零。然后整体必定最小。这种w必定使得score(y_i)比其它全部的score(y)大,而且大出来一个L_i(y)的margin。
3.BPTS
BPTS论文里讲得比較少。slide里讲得还挺具体还有pset2的部分代码还是不错滴。
BPTS和之前的传统BP有三个差别:

第一点是说求w的gradient要sum全部node的;第二点我感觉是用来更新semantic vector space里的vector的。第三点还要加一个error message:Total error messages = error messages from parent + error message from own score
BPTS的parameters更新的改进方法能够调整learning rate或者使用subgradient(使用subgradient的方法论文里有讲,cs229里也有将一个smo方法比較类似)
4.Recursive NN的改良版
前半段讲得都是最简单的simple RNN。
最后讲了一个改良版的SU-RNN(syntactically-untied RNN)
也就是weight依据children的type的不同而进行不同的选择。
最后有一个CV的展示,就是说RNN对于NLP的操作和CV差点儿相同都是一步一步分解。
Website:
nlp.stanford.edu
http://repository.cmu.edu/robotics
www.socher.org
CS224d lecture 9札记的更多相关文章
- 【转载】 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1
版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址http://blog.csdn.net/longxinchen_ml/article/details/51567960 目录(?)[- ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- DL4NLP——词表示模型(二)基于神经网络的模型:NPLM;word2vec(CBOW/Skip-gram)
本文简述了以下内容: 神经概率语言模型NPLM,训练语言模型并同时得到词表示 word2vec:CBOW / Skip-gram,直接以得到词表示为目标的模型 (一)原始CBOW(Continuous ...
- TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- 神经网络训练tricks
神经网络构建好,训练不出好的效果怎么办?明明说好的拟合任意函数(一般连续)(为什么?可以参考http://neuralnetworksanddeeplearning.com/),说好的足够多的数据(h ...
- 机器学习算法实现解析——word2vec源代码解析
在阅读本文之前,建议首先阅读"简单易学的机器学习算法--word2vec的算法原理"(眼下还没公布).掌握例如以下的几个概念: 什么是统计语言模型 神经概率语言模型的网络结构 CB ...
- Awesome TensorFlow
Awesome TensorFlow A curated list of awesome TensorFlow experiments, libraries, and projects. Inspi ...
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- [C2P3] Andrew Ng - Machine Learning
##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...
随机推荐
- 用jquery给select加选中事件
select在前端开发过程中很常用,现在我们要实现一个效果,那就是选中select中的某一项,执行事件,本来自己没怎么接触过这些,最后网上找了一些资料,自己研究了一下,把方法分享给大家,大家如果有需要 ...
- Kali linux 2016.2(Rolling)里Metasploit的OpenVAS
不多说,直接上干货! 关于OpenAVS的概念,我这里不多赘述. 前提得,大家要先安装好OpenVAS!!! 我们都知道,BT5中已经预先安装好了OpenVAS网络漏洞扫描工具,我们只需进行一些配置即 ...
- 数据库表的连接(Left join , Right Join, Inner Join)用法详解
转自:http://blog.csdn.net/jetjetlinuxsystem/article/details/6663218 Left Join, Inner Join 的相关内容,非常实用,对 ...
- hiho149周 - 数据结构 trie树
题目链接 坑点:accept和deny的ip可能相同,需加个判断 #include <cstdio> #include <cstdlib> #include <vecto ...
- php数据类型及运算
数据类型: 标量类型: int(intege), float, string, bool 复合类型: array, object 特殊类型: null, resouce进制转换十进制转二进制decb ...
- NodeJS学习笔记 (17)集群-cluster(ok)
cluster模块概览 node实例是单线程作业的.在服务端编程中,通常会创建多个node实例来处理客户端的请求,以此提升系统的吞吐率.对这样多个node实例,我们称之为cluster(集群). 借助 ...
- 把qtdesigner中的ui文件生成py文件 anaconda
无奈,马上实习就要结束了,但是自己的长进才是在stm32方面,虽然对linux有了些接触 但本质上没有任何进展,不能不说这事我的悲哀,在研三的时候却要做别人大二时做的事情 如今又是精力太散,迷上了py ...
- bzoj1922 [SDOI2010]大陆争霸 分层图
问题描述 幻想历8012年5月12日深夜,斯普林·布拉泽降下神谕:“Trust me, earn eternal life.”克里斯军团士气大增.作为克里斯军团的主帅,你决定利用这一机会发动奇袭,一举 ...
- Systemd曝3漏洞,大部分Linux将受到攻击
Linux 系统与服务管理工具 Systemd 被曝存在 3 大漏洞,影响几乎所有 Linux 发行版. Systemd 是 Linux 系统的基本构建块,它提供了对系统和服务的管理功能,以 PID ...
- python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理
建议以下帖子: 教你在Windows上搭建Python+Selenium环境:https://blog.csdn.net/huilan_same/article/details/52888262 py ...