6.4-为何要深度学习

2023-10-30

一、模型对比

  • 在参数量相同的条件下,究竟是深度越深的模型越好,还是宽度越宽的模型越好?
  • 很显然,右图的实验数据告诉我们深度是更好的选择,但为什么会这样呢?答案是模块化

image-20220817174212186image-20220817174227644

二、模块化(Modularization)

  • 根据编程的模块化思想,我们很容易想到的一点是模块化能大大降低系统开发的复杂度,便于管理,并且代码可重用,提高开发效率等等。
  • 而对于深度学习来说也是如此,网络中的每一个神经元都可以视为一个模块,前面的模块将数据一步一步处理,最终得到预测结果,尽管每个模块都只做了很小的一件事,但他们集合起来就是一件十分复杂的事情。
  • 通过模块化的网络,我们只需要少量的数据就能训练到一个很好的模型。

image-20220817174620650image-20220817174630950

image-20220817174656638image-20220817174718091

image-20220817183425524image-20220817185220714

三、语音辨识

  • 人类的语言是一个多层次(hierarchical)的结构
  • Phoneme:音素 ,Tri-phone:3个音素 ,State:状态
  • 语音辨识的第一个阶段:
    • 每一时刻的声音都对应着一组声学特征(acoustic feature)向量,每一组向量对应着一个状态
    • 分类: 输入→声学特征,输出→状态
    • 确定每个声学特征所属的状态

image-20220818110831760image-20220818111031999

  • 每个状态的声学特征都有一个固定的分布
    • 下面是高斯混合模型(Gaussian Mixture Model ),也叫GMM
    • 平局状态(Tied-state):不同的状态共用同样的模型分布,就和写程序一样,不同的指针(pointer)指向同样的地址(Same Address)

image-20220818114644188image-20220818115008388

  • 在HMM-GMM中,所有的音素都是模拟独立的
    • 这不是模拟人类声音的有效方法
    • 元音的发音只受几个因素的控制:舌头的卷曲程度,在口腔中的位置,以及发声的嘴型
    • 右图中DNN的输出层大小等于状态的数量:输入为一个声学特征,输出为每个状态的概率

image-20220818120244761

  • 将DNN的隐层输出减少到二维,然后输出到图上
    • 较低的层检测发音的方式
    • 所有的音素共享来自同一套探测器的结果
    • 有效地使用参数
  • 普遍性定理(Universality Theorem)
    • 虽然任意连续函数 f 都可以通过一个只有一个隐藏层的网络实现(给定足够多的隐藏神经元)
    • 然而,使用深层结构是更有效率的

image-20220818120557902image-20220818121947057

3.1 类比(Analogy)

  • 逻辑电路(Logic circuits):
    • 逻辑电路由门(gate)组成,而神经网络由神经元组成
    • 两层逻辑门可以表示任何布尔函数,而只有一层隐层的网络可以表示任意连续函数
    • 使用多层逻辑门来构建一些函数要简单得多,而使用多层神经元来表示某些函数要简单得多
    • 对于逻辑电路设计来说就只需要更少的逻辑门,而对于神经网络而言也只需要更少的参数,从而就只需要更少的数据
  • 奇偶校验(parity check):
    • 对于具有d位的输入序列(sequence),两层电路需要O(2d)门。
    • 而对于多层,我们只需要O(d)门,门的数量减少了一半
  • 剪窗花:
    • 剪窗花时并不是将花的形状全部剪出来,只需要剪出一部分即可,这就反映了使用数据是更有效率的
    • 最后一图清楚的展示了多层网络同单层网络的不同数据量下的区别,突出了多层网络的优点

image-20220818122338048image-20220818122352509

image-20220818122406616image-20220818122424663

image-20220818124014213

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

  • 生产线:
    • 每个函数应该做的是自动学习,我们只给输入和输出,让模型自己去寻找每一层都是最好的函数
    • 右图是做传统的语音辨识方法,对于影像辨识也是一样
      • 每个盒子都是生产线上的一个简单功能
      • 绿色的盒子都是人工制作的,只有一个蓝色盒子是机器从数据中学习

image-20220818124447531image-20220818124508790

image-20220818125726580image-20220818125739901

  • 深度学习
    • 所有的函数都是从数据中学习的
    • 更少的工程劳动,但机器能学到更多
image-20220818125547357

四、复杂任务

  • 相同的输入,输出要不同
  • 不同的输入,输出要相同
  • 右图是在DNN中,不同的人说同样的话的声学特征分布,很显然只有一层隐藏层是无法区分的,而8层就可以明显区分了。
  • 手写数字辨识:下图minst数据集上的表现也说明了多层网络的优势

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

五、更多的原因

  • 深度学习:理论动机(Yoshua Bengio)
    • http://videolectures.net/deeplearning2015_bengio_theoretical_motivations/
  • 物理和深度学习之间的联系
    • https://www.youtube.com/watch?v=5MdSE-N0bxs
  • 深度学习为何有效:理论化学的视角
    • https://www.youtube.com/watch?v=kIbKHIPbxiU
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6.4-为何要深度学习 的相关文章

随机推荐

  • 深入探索C++类的const成员函数

    深入探索C 类的const成员函数 const 成员变量的用法和普通 const 变量的用法相似 只需要在声明时加上 const 关键字 初始化 const 成员变量只有一种方法 就是通过构造函数的初始化列表 const 成员函数可以使用类
  • 【Unity】创建一个自己的AR脸部特效安卓程序

    目录 1 创建一个换脸AR场景 2 下载官方提供的BasicFaceFilterAssets资源 3 设置AR面部追踪 4 配置AR Face Manager 5 配置AR Camera为前置摄像头 6 打包并测试 7 添加自己的材质 7
  • oracle 多值更新,oracle 同时更新(update)多个字段多个值

    创建表A B create table A a1 varchar2 33 a2 varchar2 33 a3 varchar2 33 create table B b1 varchar2 33 b2 varchar2 33 b3 varch
  • pytest常用代码示例详细

    test case py usr bin env python3 coding utf 8 File test case py Author sunyajun Creation Time 2023 7 31 9 41 Description
  • C++ 标准库值操作迭代器的常见函数

    迭代器是C 标准库中的重要组件 特别是在容器内部 没有迭代器 容器也就无所谓存在了 例如 vector容器简而言之就是3个迭代器 start finish 以及end of storage vector的任何操作都离不开这3个迭代器 接下来
  • 关于COCO数据集评价参数设置

    在进行DETR like模型的实验过程中 考虑到原模型都是基于COCO数据集上进行的实验 因此博主在实验时也是将其全部都转换为COCO数据集的格式 但这就引发了一个问题 那就是不同的数据集中目标的数目是不同的 而最终结果却有一个不容忽视的指
  • 怎么升级Android Studio版本,Android Studio更新的四种版本介绍

    Android Studio在更新版本时 会有让选择升级源 如下 默认情况下选择的是Stable Channel 这几个Channel的版本是有一些差异的 在Android Studio下载官网上 有如下介绍 Android Studio
  • scrollIntoView() 方法的使用

    在 JavaScript 中 scrollIntoView 方法是用于将指定元素滚动到可见区域内的方法 该方法可以接收一个 options 对象参数 提供了滚动时的一些控制选项 如平滑滚动的行为 下面我们来介绍一个应用 scrollInto
  • tradingview

    文档地址 https b aitrade ga books tradingview index html 初始化 数据对接后的展示图 TV的数据格式 getbars time单位是S 10位数 ms的请除以1000 历史数据回来 塞给get
  • 我的世界进服务器显示C1.8-1.11,我的世界坐标显示(Batty's Coordinates PLUS)Mod

    Batty s Coordinates PLUS最好用的坐标显示Mod是为了你在游戏中方便的显示坐标或者帧数 这样你就不需要频繁的去按F3 并且还内置的定时器的功能 用法 在模式0坐标是隐藏的 模式1 显示了X Y Z坐标 也表明你面对的方
  • C# 添加Windows服务,定时任务。

    源码下载地址 http files cnblogs com files lanyubaicl 20160830Windows E6 9C 8D E5 8A A1 zip 步骤 一 创建服务项目 步骤二 添加安装程序 步骤三 服务属性设置 s
  • MATLAB中均值、方差、标准差、协方差、相关性的计算

    公式 1 均值 2 方差 3 标准差 均方差 4 协方差 5 相关性 6 加权均值 7 加权方差 8 加权标准差 MATLAB代码 样本定义 x 1 2 3 3 2 1 y 1 2 3 3 1 2 z 3 2 y 1 均值 均值 xmean
  • 搭建spring-cloud-alibaba微服务项目:springBoot服务+nacos注册中心+nacos配置中心+feign服务交互+gateway网关

    项目说明 从0 1 搭建cloud alibaba微服务项目 包括各个springBoot服务 nacos注册中心 nacos配置中心 feign服务交互 gateway网关 首先统一微服务种alibaba相关组件的依赖版本问题 官方参考文
  • Android中LocalSocket使用

    http www cnblogs com bastard archive 2012 10 09 2717052 html 一 Socket Socket最初用在基于TCP IP网络间进程通信中 以客户端 服务器模式进行通信 实现异步操作 共
  • vue项目实现微信扫码登录

    要在Vue项目中实现微信扫码登录功能 你可以按照以下步骤进行操作 注册微信开放平台账号并创建应用 首先 在微信开放平台上注册一个账号 并创建一个应用 获取到应用的AppID和AppSecret 安装 Axios 在Vue项目中使用Axios
  • python setup.py install报错“error: can‘t create or remove files in install directory”

    运行python setup py install 报错 running install error can t create or remove files in install directory The following error
  • 叶面积指数(LAI)介绍以及遥感估算方法

    前言 叶面积指数精度是正确预测产量的重要参数之一 同时 还有那么多疑问 如何才能正确 以及如何使用最有效的方法计算叶面积指数 LAI 什么是最佳 LAI 哪些估算叶面积指数精度的方法比较好 本文为初学者做了简要介绍 并在文章末尾附了两种估算
  • 史上最全的正则表达式-匹配中英文、字母和数字

    1 匹配中文 u4e00 u9fa5 2 英文字母 a zA Z 3 数字 0 9 4 匹配中文 英文字母和数字及下划线 u4e00 u9fa5 a zA Z0 9 同时判断输入长度 u4e00 u9fa5 a zA Z0 9 4 10 5
  • vue3中将数据导出为excel表格

    目标 将vue3接口中得到的数据转换为数组 然后利用Export2Excel导出为excel表 1 开始之前要准备 1 Export2Excel js文件 在后面标题4附上 我是放在until目录下 2 npm i xlsx 安装失败后面加
  • 6.4-为何要深度学习

    文章目录 一 模型对比 二 模块化 Modularization 三 语音辨识 3 1 类比 Analogy 3 2 端到端学习 End to end Learning 四 复杂任务 五 更多的原因 一 模型对比 在参数量相同的条件下 究竟