深度学习及其基本原理

  • 深度学习的 Ups and Downs
  • 概念区分
  • 神经网络的构成
  • 深度学习基本原理
  • 深度学习的普遍近似定理
  • 扩展:反卷积网络——可视化每一层提取的特征

深度学习的 Ups and Downs

  • 1958:感知机(线性模型)
  • 1969:感知机有局限性
  • 1980s:多层感知机
    和今天的深度神经网络没有显著区别
  • 1986:反向传播
    通常超过 3 层的隐藏层没有帮助
  • 1989:1 层隐藏层就“足够好”,为什么要深层?
  • 2006:RBM 初始化
  • 2009:GPU
  • 2011:开始在语音识别领域流行
  • 2012:赢得 ILSVRC 图像竞赛
  • 2015.2:图像识别超越人类水平
  • 2016.3:Alpha GO 击败李世石
  • 2016.10:语音识别系统达到人类水平

概念区分

深度学习属于机器学习,深度学习 本质上是一个三层或更多层的神经网络。这些神经网络试图模拟人脑(尽管远未达到其功能),支持从大量数据中进行"学习"。

神经网络是一种模仿生物神经系统的计算模型,它由多个神经元组成,每个神经元都可以接收、处理和传递信息。它模仿人脑的机制来解释数据,例如图像,声音和文本。神经网络可以有不同的结构和类型,例如 卷积神经网络、循环神经网络、生成对抗网络等。

深度学习是利用深层的神经网络来实现机器学习的目标,例如图像识别、自然语言处理、语音识别等。将模型处理得更为复杂,从而使模型对数据的理解更加深入。

神经网络的构成

典型的神经网络如下图所示:

在这里插入图片描述

可以看到,典型的神经网络由

  • 输入层
  • 中间层/隐层
  • 输出层

共三层所构成。

  • 神经元:表示输入、中间数值、输出数值点。例如:在图中的一个个小圆圈,分别表示不同的神经元。
  • 权重:神经元传导时,要乘以一个系数,这个系数叫做权重值。例如:从上图中输入层的神经元要传导到隐层的神经元,输入层的神经元要乘以一个系数后到达隐层,即:隐层=输入层*权重

在这里插入图片描述

深度学习基本原理

深度学习,是通过 一层又一层的隐层 实现了复杂的功能。

以图像识别为例,假设我们要识别一幅图像内的 语义信息。实现起来,具体为:

  • 第 1 层:提取图像的 最基础的底层特征,包括 纹理、边缘、色彩等
  • 第 2 层:将第 1 层的特征排列组合,并找到有用的组合信息。此时会找到 曲线、轮廓等特征
  • 第 3 层:对第 2 层的特征排列组合,并找到有用的组合信息。此时,会找到 高级特征,例如 眼睛、鼻子、嘴等等
  • 第 4 层:对第 3 层的特征进行排列组合,并找到有用的组合信息。此时,会找到有用的 语义信息,例如 打电话、奔跑等语义信息

该过程的简单示意如下图所示:

在这里插入图片描述

所以,深度学习的处理逻辑 就是:首先提取低级特征,然后对低级特征不断地在更高的级别上进行排列组合,并寻找组合后的有用信息。

深度学习的普遍近似定理

深度学习的普遍近似定理(Universal Approximation Theorem)表明,具有足够参数的深度神经网络(即深度学习模型)在理论上能够以任意精度逼近(拟合)任何连续函数

这个定理的内容并非深度学习可以逼近任何函数,而是对于任何 连续函数,存在一个深度神经网络可以以足够精度近似它。

  • 可以把深度学习看作是一种 函数的组合,每一层都是一个函数,它的输入是上一层的输出,它的输出是下一层的输入。
  • 每一层的函数都有一些参数,比如权重(weight)和偏置(bias),它们可以通过训练来调整,使得整个网络的输出更接近目标函数的值。
  • 每一层的函数还有一个特殊的成分,叫做 激活函数(activation function),它是一个非线性的函数,比如 sigmoid、tanh、ReLU 等,它的作用是 给网络增加非线性的能力,使得网络可以拟合更复杂的函数。
  • 如果没有激活函数,那么无论网络有多少层,它都只能拟合线性的函数,因为线性函数的组合还是线性函数。
  • 有了激活函数,网络就可以拟合非线性的函数,而且层数越多,拟合的能力越强,因为网络可以提取更高层次的特征,更好地适应数据的分布。

具体来说,Universal Approximation Theorem 的形式有点技术性,但大致的理解是:

在足够深、足够宽(指神经网络中有足够多的神经元)的情况下,深度神经网络具有足够的表达能力,可以逼近连续函数的任何形状。

这是 因为深度神经网络的层次结构允许它学习复杂的特征和表示

扩展:反卷积网络——可视化每一层提取的特征

论文《Visualizing and Understanding Convolutional Networks》提供了一种有效的方法,来 可视化和理解卷积网络的内部工作机制,从而帮助我们设计和改进网络模型。

其中介绍的一种用于可视化和理解卷积网络的技术,叫做 反卷积网络(Deconvnet)。反卷积网络是一种与卷积网络相反的结构,它可以 将卷积网络的中间层的特征图映射回像素空间从而展示出每一层所提取的特征和激活的模式

通过反卷积网络,我们可以观察到 卷积网络的每一层都学习到了什么有用的知识,例如:

  • 第一层:学习到了一些 简单的边缘和颜色 的检测器,类似于 传统的滤波器
  • 第二层:学习到了一些 由边缘和颜色组成的更复杂的形状和纹理 的检测器,例如 圆角、条纹、斑点等
  • 第三层:学习到了一些 由形状和纹理组成的更高级的特征 的检测器,例如 眼睛、鼻子、轮胎等
  • 第四层:学习到了一些 由高级特征组成的更具体的物体 的检测器,例如 狗、猫、人脸等
  • 第五层:学习到了一些 由具体物体组成的更抽象的类别 的检测器,例如 动物、汽车、飞机等

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/194504.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Chrome网页前端组件调试模式,获取核心业务逻辑

进入网页,点击F12,弹出开发者工具对话框,如下图 定位目标组件,如按钮,修改html,插入οnclick"debugger"代码 在网页点击该按钮,触发调试模式 不停按F11,逐个检索文件…

shell编程系列- bash和sh的区别

文章目录 引言bash和sh的区别CentOS下的区别Ubuntu下的区别 最佳实践 引言 我们在编写shell脚本时,通常第一行都要声明当前脚本的执行程序,也就是常见的 #!/bin/sh 或者是 #!/bin/bash ,我们无论用哪一个脚本似乎都可以正常的执行&#xff0…

★数据库建表优化

1、冷热分离: 一个表里最好不要存在即有常修改的数据又有不常修改的数据,一个好的做法是,把常修改更新的字段当做热表单独建表,同理不经常修改更新的字段当做冷表单独建表。 2、控制B树的高度: 也就是控制一个表存储的…

每天五分钟计算机视觉:LeNet是最早用于数字识别的卷积神经网络

LeNet 假设你有一张 32321 的图片,然后使用 6 个 55的过滤器,步幅为 1,padding 为 0,输出结果为 28286。图像尺寸从 3232 缩小到 2828。 然后进行池化操作,使用平均池化,过滤器的宽度为 2,步幅为 2,图像的尺寸,高度和宽度都缩小了 2 倍,输出结果是一个14146 的图像。…

P23 C++字符串

目录 前言 01 什么是字符串 02 字符串是怎么工作的呢? 2.1 字符 2.2 字符串 2.3 如何知道指向hello world的这个指针多大 03 使用字符串 04 字符串传参 前言 本期我们将讨论 C 中的字符串。 首先,什么是字符串? 01 什么是字符串 字…

Batch Norm简明图解【批归一化】

Batch Norm(批归一化) 是现代深度学习实践者工具包的重要组成部分。 在批归一化论文中引入它后不久,它就被认为在创建可以更快训练的更深层次神经网络方面具有变革性。 Batch Norm 是一种神经网络层,现在在许多架构中普遍使用。 …

Electronica慕尼黑电子展 Samtec团队与21ic分享虎家产品与方案

【摘要/前言】 “希望但凡是能够使用到连接器的场合都有Samtec的身影” 在慕尼黑上海电子展现场,Samtec华东区销售经理章桢彦先生在与21ic副主编刘岩轩老师的采访中,如是说道。这是一种愿景,更是Samtec的努力方向。短短一句话,…

WebSocket协议在java中的使用

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

aspera传输方案怎么样,需要选择aspera替代方案吗

Aspera传输方案是一种高速、可靠的文件传输解决方案,适用于需要大规模传输大文件或数据集的企业和组织。Aspera采用UDP协议及自己开发的FASP协议进行加速传输,能够在高延迟、高丢包网络环境下实现稳定快速的传输。 Aspera传输方案具有以下优点&#xff1…

ArcGIS10.x系列 Python工具箱教程

ArcGIS10.x系列 Python工具箱教程 目录 1.前提 2.需要了解的资料 3.Python工具箱制作教程 4. Python工具箱具体样例代码(DEM流域分析-河网等级矢量化) 1.前提 如果你想自己写Python工具箱,那么假定你已经会ArcPy,如果只是自己…

ESP32-Web-Server编程- JS 基础5

ESP32-Web-Server编程- JS 基础5 概述 JS 编程内容颇多,我们提供一些简单的示例,先玩再学,边玩边学。 示例1-演示通过 JS 进行温度转换 资源链接 对应示例的 code 链接 (点击直达代码仓库) 示例2-增加网页弹窗 演…

Maven回顾

Maven 下载(前提要有jdk) Maven 下载地址:Maven – Download Apache Maven 设置 Maven 环境变量 添加环境变量 MAVEN_HOME: 右键 "计算机",选择 "属性",之后点击 "高级系统设置…

【libGDX】加载G3DJ模型

1 前言 libGDX 提供了自己的 3D 格式模型文件,称为 G3D,包含 g3dj(Json 格式)和 g3db(Binary 格式)文件,官方介绍见 → importing-blender-models-in-libgdx。 对于 fbx 文件,libGDX…

day65

今日回顾内容 web应用 HTTP协议 web应用 一、什么是web应用程序 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 对于传统的应用软件来说,…

zi定义指令

hello,我是小索奇,精心制作的Vue系列持续发放,涵盖大量的经验和示例,如果对您有用,可以点赞收藏哈~ 自定义指令 自定义指令就是自己定义的指令,是对 DOM 元素进行底层操作封装 ,程序化地控制 DOM&#xff…

前端实现埋点

前端实现埋点 如何去了解用户呢?最直接有效的方式就是了解用户的行为,了解用户在网站中做了什么,呆了多久。而如何去实现这一操作,这就涉及到我们前端的埋点了。 埋点方式 什么是埋点? 所谓埋点是数据采集领域&…

leetcode:414. 第三大的数

一、题目 函数原型:int thirdMax(int* nums, int numsSize) 二、思路 将数组降序排序。 如果数组元素个数小于3,直接返回第一个元素; 如果数组元素个数大于等于3,且不同元素个数小于3,直接返回第一个元素; …

AIGC系列之:Variational Auto Encoder-VAE模块

目录 1.VAE 概述 2.概率分布 3.损失函数 4.重参数技巧 5.维度对 VAE 的影响 6.损失函数对VAE的影响 7.总结 VAE原始https://arxiv.org/abs/1312.6114 论文解读:https://mp.weixin.qq.com/MzI1MjQ2O 1.VAE 概述 变分自动编码器(Variational auto…

STM32CubeIDE(CUBE-MX hal库)----串口通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、CUBE-MX可视化配置二、发送数据和接收数据1.HAL库串口的阻塞模式和非阻塞模式2.HAL库串口阻塞模式数据发送函数3.HAL库串口阻塞模式数据接收函数4.HAL库串口…

Pygame直线绘制

文章目录 lines光线反射 pygame.draw中有4个绘制直线的函数,列表如下 一条线段多条线段正常linelines抗锯齿aalineaalines 一条和多条线段的输入参数如下 line(surface, color, start_pos, end_pos, width1)lines(surface, color, closed, points, width1) line…