美文网首页
ML学习笔记:Why Deep Learning?

ML学习笔记:Why Deep Learning?

作者: answerLDA | 来源:发表于2019-10-31 11:42 被阅读0次

    Deeper is better?

    毫无疑问,参越多,效果越好。



    但是在比较两种不同的架构时,却不一样。



    为什么参数增加了效果反而差?

    Modularization

    因为架构越深,相当于模块化越多。



    考虑一个问题,笼统的解决方法:



    但是把问题慢慢细分,解决效果会更好。
    image.png

    训练的时候共用一个Model,可以在少量数据得到好的结果。



    层次性的模块化:使用前一层的输出作为本层的输入的模块来建立本层的分类器。因为我们的数据比较少,需要在每一层中好好利用上一层的数据,这样才能在少量数据的情况下得到好的结果。

    模块化用于图像方面。

    Modularization - Speech

    每个人发音方式不同,所以要用不同的model去模拟不同的phoneme,又称tri-phone。



    如何做语音辨识?
    第一步:每隔一个时间点取一个window,获取其特征,判断它属于哪个state。然后用state转成phoneme.......


    first step
    如何判断window内容属于哪个state?传统方法是使用GMM来判断分类。

    由于state过多,后面会导致tri-phone过多。所以某些state公用一个distribution,又称Tied-state。



    这样做的效率是很低的。下图显示人类发音时的所有母音。母音只受三种因素影响:舌头前后位置,舌头上下位置,嘴型。例如,从a-e-i-u-o的发音顺序,嘴型是从low-high-front-back的改变。所以不同的phoneme之间是有关系的。

    DeepLearning的做法:
    所有的state都公用一个DNN,这样比较有效率。
    image.png
    为什么可以用DeepLearning效率比较高?下图可以看到降维显示输出,相同的发音是聚合在一起的,跟图示的位置大致一致。

    在以前的理论中:任何模块都可以只用一层hidden layer,只要你的hidden layer够宽。但是可行性≠有效性。

    Analogy

    只要两层的逻辑电路,就可以表示任何的布尔函数。但是使用多层的电路会更加有效率,而且使用的参数更少。



    例子:一个判断1的个数为奇数或者偶数的电路。使用多层结构,只需要三个逻辑门就可以解决。


    More Analogy


    More Analogy - Experiment

    下面例子显示,更深的层,使用更少的数据时,效果相对更好。


    End-to-end Learning

    端对端学习,只说明输入和输出,不要求中间的做法。



    传统的语音识别的方法:



    使用DeepLearning的语音识别方法:

    End-to-end Learning - Image Recognition


    Complex Task …

    很多东西看起来很像但是不一样;有的看起来很不一样但是他们是一样。这就是DeepLearning能解决的。



    MFCC在分析语音识别时,不同的人说同一句话是很不一样的;但是在DNN里面,经过多层的训练,不同的人说同一句话可以很相似。




    MNIST

    To learn more …

    http://research.microsoft.com/apps/video/default.aspx?id=
    232373&r=1

    胶片来自于台湾大学李宏毅教授的《机器学习课程》,侵删!

    相关文章

      网友评论

          本文标题:ML学习笔记:Why Deep Learning?

          本文链接:https://www.haomeiwen.com/subject/ivvzvctx.html