Andrew ng今天来清华作报告,我就几点重要的内容,谈谈理解和想法。
1)特征表示的粒度
学习算法在一个什么粒度上的特征表示,才有能发挥作用?就一个图片来说,像素级的特征根本没有价值,无法进行摩托车正例和负例的区分,而如果特征是一个具有结构性(或者说有含义)的时候,比如是否具有handlebars,是否具有wheel,就很容易把正例和负例区分,学习算法才能发挥作用。
2)初级(浅层)特征表示
既然像素级的特征表示方法,没有作用,什么有作用呢?
ng报告中说sparse coding的方法,也就是复杂图形,往往由有些基本结构组成,比如色彩可以由三原色按照一定的配比调成。ng给了一个图用64种正交的edges(可以理解成正交的基本结构)线性的表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0
当然,如何发现这64个正交的结构,没有进一步阐明,同时后面还提出了某论文从未标注的声音中发现了20种基本的声音结构,其余的声音可以由这20种基本结构合成。
3)结构性特征表示
小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如V2,V3。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,就好像高中生看初中生naive,大学生看高中生naive一样。
4)需要有多少个特征?
我们知道需要层次的特征构建,有浅入深,但每一层该有多少个特征呢?
ng表示,任何一种方法,只要特征足够多,效果总能提高,但特征多意味着计算复杂,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不一定特征越多越好。
从文本来说,文本这个概念或者说一句话,一个doc表示什么意思这件事情,用什么来表示比较合适?用一个一个字嘛,我看不是,字就是像素级别了,起码应该是term,换句话说每个doc都由term构成,但这样表示概念的能力就够了嘛,可能也不够,需要再上一步,达到topic级,有了topic,再到doc就合理。但每个层次的数量差距很大,比如doc表示的概念->topic(千-万量级)->term(10万量级)->word(百万量级)。
一个人在看一个doc的时候,眼睛看到的是word,由这些word在大脑里自动切词形成term,在按照概念组织的方式,先验的学习,得到topic,然后再进行高层次的learning。
从报告还可以看出,谷歌公司在图像,声音方面投入了巨大的力量,而且机器学习,deep learning应该在图像和声音上,有巨大的机会。
另外deep的含义就是多层神经元网络,每一层代表一种层次的概念,越往下概念的正交性越好,越往上概念的正交性越差,越具有相似度。因为高层概念彼此可能互相包含了相同的基本结构。
高层概念分离出基本结构的方法也很容易理解,就是打散了聚类,比如doc可以通过LDA的方法搞出topic,有限个topic就可以描述一个doc,topic内部还可以通过类似的方法,再打散了聚类,得到更浅层的topic,这个可以试验试验,ng没有细说,我感觉是这样。
ng的报告ppt没有流出,找了个比较接近的,供大家系统学习:http://www.ipam.ucla.edu/publications/gss2012/gss2012_10595.pdf
2014年7月Andrew Ng 于自动化所再做报告,我又写了篇听后感,供大家参考:http://blog.sina.com.cn/s/blog_593af2a70102uwhl.html