zoukankan      html  css  js  c++  java
  • 李宏毅机器学习课程笔记-5.2神经网络为什么要是深度的

    为什么是“深度”神经网络?

    问题与答案

    • 矮胖的神经网络和高瘦的神经网络,假设它们参数量相同,哪一个更好呢?

      2011年有一个实验,证明在参数量相当的情况下,高瘦的神经网络(即深度神经网络)的准确度更高,因为深度可以实现模块化。

    • 只用一个神经元足够多的隐藏层,这个模型就包括了任意函数,那为什么不这么做呢?

      这样确实可以包括任意函数,但实现的效率不高。

      相关网址http://neuralnetworksanddeeplearning.com/chap4.html,也可以通过谷歌等找找其它答案。

    “深度”的好处

    • 模块化(Modularization)

      • 就像写程序一样,我们不能把所有代码写在main函数里,而需要通过定义函数等方式将程序模块化。

        如下图所示,假如要做一个图片的四分类,两个维度分别是头发长短和性别,如果使用矮胖的神经网络会遇到一个问题,就是短头发的女生样本和长头发的男生样本会比较少,那这两个类别的分类器就会比较差。

        WhyDeepModularization1

        如下图所示,我们可以先定义各属性的分类器(Classifiers for the attributes),即先定义性别和头发长短的分类器,然后再做四分类。这样第一层分类器就不会遇到样本少的问题,第二层的分类器也容易训练,整体上也需要更少的训练集。

        WhyDeepModularization2
      • 在深度神经网络中,每层网络都可以作为下一层网络使用的一个模块,并且这个模块化是通过机器学习自动得到的。

        常有“人工智能=机器学习+大数据”的说法,但实际上“深度”使得需要的数据更少,如果数据集无限大,根本就不需要机器学习,只要去数据库里拿就好了。深度学习也并不是通过大量参数暴力拟合出一个模型,反而是在通过模块化有效利用数据。

        这里只是一个图像分类的例子,“深度”产生的模块化在语音识别任务中也有体现,与逻辑电路也有相似的问题和结论,具体可以看李宏毅视频

    • 端到端学习(End-to-end Learning)

      深度神经网络模型就像是把一个个函数串接在一起,每个函数负责某个功能,每个函数负责什么功能是通过机器学习根据数据自动确定的。李宏毅视频中有讲这一点在语音识别、CV任务中的体现。

    • 处理复杂任务

      有时类似的输入要输出差别很大的结果,比如白色的狗和北极熊看起来差不多,但分类结果非常不同;有时差别很大的输入要输出相同的结果,比如火车正面和侧面的图片都应该被分类成火车。

      只有一个隐藏层的网络是无法处理这种任务的。李宏毅视频中有讲这一点在语音识别、CV任务中的体现。

    • 其它

      Do deep nets really need to be deep?

      李宏毅视频里也还有很多关于“深度”的探讨。


    Github(github.com):@chouxianyu

    Github Pages(github.io):@臭咸鱼

    知乎(zhihu.com):@臭咸鱼

    博客园(cnblogs.com):@臭咸鱼

    B站(bilibili.com):@绝版臭咸鱼

    微信公众号:@臭咸鱼的快乐生活

    转载请注明出处,欢迎讨论和交流!


  • 相关阅读:
    Vue异步数据交互 promise axios async fetch
    JS数组或对象转为JSON字符换 JavaScript JSON.stringify()
    JS返回数组的最大值与最小值
    Error: Cannot find module './application'
    Express框架
    NodeJS项目制作流程
    模板引擎art-template
    基于NodeJS的网络响应原理与HTTP协议
    leetcode 953. 验证外星语词典 做题笔记
    leetcode 771. 宝石与石头 做题笔记
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/14344483.html
Copyright © 2011-2022 走看看