查看原文
其他

春节充电系列:李宏毅2017机器学习课程学习笔记16之无监督学习:自编码器(autoencoder)

2018-03-02 专知内容组 专知

【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的Unsupervised learning- neighbor embedding,这一节将主要针对讨论Unsupervised learning-Autoencoder。本文内容涉及机器学习中半监督学习auto-encoder的若干主要问题:Auto-encoder原理,deep auto-encoder,text retrieval,similar image search,auto-encoder for CNN以及Pre-train DNN。话不多说,让我们一起学习这些内容吧


春节充电系列:李宏毅2017机器学习课程学习笔记01之简介

春节充电系列:李宏毅2017机器学习课程学习笔记02之Regression

春节充电系列:李宏毅2017机器学习课程学习笔记03之梯度下降

春节充电系列:李宏毅2017机器学习课程学习笔记04分类(Classification)

春节充电系列:李宏毅2017机器学习课程学习笔记05之Logistic 回归

春节充电系列:李宏毅2017机器学习课程学习笔记06之深度学习入门

春节充电系列:李宏毅2017机器学习课程学习笔记07之反向传播(Back Propagation)

春节充电系列:李宏毅2017机器学习课程学习笔记08之“Hello World” of Deep Learning

春节充电系列:李宏毅2017机器学习课程学习笔记09之Tip for training DNN

春节充电系列:李宏毅2017机器学习课程学习笔记10之卷积神经网络

春节充电系列:李宏毅2017机器学习课程学习笔记11之Why Deep Learning?

春节充电系列:李宏毅2017机器学习课程学习笔记12之半监督学习(Semi-supervised Learning)

春节充电系列:李宏毅2017机器学习课程学习笔记13之无监督学习:主成分分析(PCA)

春节充电系列:李宏毅2017机器学习课程学习笔记14之无监督学习:词嵌入表示(Word Embedding)

春节充电系列:李宏毅2017机器学习课程学习笔记15之无监督学习:Neighbor Embedding


课件网址:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html

http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html


视频网址:

https://www.bilibili.com/video/av15889450/index_1.html



李宏毅机器学习笔记16 Unsupervised Learning : Autoencoder


1.Auto-encoder原理




在以前的PCA里面我们已经得出类似auto-encoder的结构,auto-encoder指的是压缩输入物体的表示得到code,然后可以用这个code重构原来的物体


依据PCA的结构我们可以把它分为输入层,隐藏层,输出层


2.Deep Auto-encoder




当这个结构变得很深,就变成了deep auto-encoder,encoder和decoder的系数不一定是对称的


用PCA和deep auto-encoder结果作比较,貌似deep auto-encoder的结果更好


从下图也可以看出自编码器越深,分类效果越好


为了让auto-encoder学的更好,我们可以在输入加入噪音


先用PCA把维度降到32维,再做t-SNE


3.text retrieval




Auto-encoder可以应用在text retrieve中,把每个document统统用一个vector来描述它,计算query和每个document的cos角度


实验结果很好,将实验结果和另一个方法LSA作比较,LSA是一种线性分类的方法,不过实验结果比较差


4.similar image search




Auto-encoder还可以应用在相似图像检索中


相比单纯的像素距离比较的方法,auto-encoder可以得到较好的结果


5.auto-encoder for CNN




Auto-encoder还可以应用在CNN中


需要增加的隐藏层有deconvolution和unpooling

对于unpooling,我们只需要在maxpooling过程中把要把max locations记录下来,然后unpooling时候还原其位置,其他全为0


而deconvolution实质上就是convolution


6.Pre-train DNN



 

Auto-encoder还可以Pre-train DNN,第一步可以得到w1


第二步可以得到w2,依次类推


把w1,w2,w3当做初始的参数,把最后output接上去,再用backpropagation更新所有参数


如果你想了解更多,下面是关于restricted Boltzmann machine的资料


下面是关于deep belief network的资料


Decoder还可以生成我们想要的东西,比如图像


请关注专知公众号(扫一扫最下面专知二维码,或者点击上方蓝色专知),

  • 后台回复“LHY2017” 就可以获取 2017年李宏毅中文机器学习课程下载链接~

-END-

专 · 知

人工智能领域主题知识资料查看获取【专知荟萃】人工智能领域26个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)

同时欢迎各位用户进行专知投稿,详情请点击

诚邀】专知诚挚邀请各位专业者加入AI创作者计划了解使用专知!

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料

请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!

请加专知小助手微信(Rancho_Fang),加入专知主题人工智能群交流!

点击“阅读原文”,使用专知

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存