深度学习的发展历史(深度学习入门、学习指导)

目录

🏀前言

⚽历史

第一代神经网络(1958-1969)

第二代神经网络(1986-1998)

统计学习方法的春天(1986-2006)

第三代神经网络——DL(2006-至今)

🏐总结


前言

学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来 

———by BryantLJ

本专栏想要按照深度学习发展历史的流程带大家从简单模型到如今复杂模型一步步吃透深度学习模型的演化流程基本原理

历史

深度学习模型的演变可以用一张图来体现。图中的各个模型所在的位置高度体现了模型出现时,模型所引发的影响。

由图可以明显看出DL在从06年崛起之前经历了两个低谷,这两个低谷也将神经网络的发展分为了三个不同的阶段,下面就分别讲述这三个阶段。

第一代神经网络(1958-1969)

 最早的神经网络的思想起源于1943年的MCP人工神经元模型,当时是希望能够用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法)。如下图所示:

第一次将MCP用于机器学习(分类)的当属1958年Rosenblatt发明的感知器(perceptron)算法。该算法使用MCP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1962年,该方法被证明为能够收敛,理论与实践效果引起第一次神经网络的浪潮。然而学科发展的历史不总是一帆风顺的。

1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器本质上是一种线性模型只能处理线性分类问题,就连最简单的XOR(异或)问题都无法正确分类。这等于直接宣判了感知器的死刑,神经网络的研究也陷入了近20年的停滞。

单层感知机无法解决异或问题的原因:

参考我的另一篇文章:

第二代神经网络(1986-1998)

第一次打破非线性诅咒的当属现代DL大牛Hinton,其在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。

1989年,Robert Hecht-Nielsen证明了MLP的万能逼近定理,即对于任何闭区间内的一个连续函数f,都可以用含有一个隐含层的BP网络来逼近该定理的发现极大的鼓舞了神经网络的研究人员。

也是在1989年,LeCun发明了卷积神经网络-LeNet,并将其用于数字识别,且取得了较好的成绩,不过当时并没有引起足够的注意。

值得强调的是在1989年以后由于没有特别突出的方法被提出,且NN一直缺少相应的严格的数学理论支持,神经网络的热潮渐渐冷淡下去。冰点来自于1991年,BP算法被指出存在梯度消失问题,即在误差梯度后向传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该发现对此时的NN发展雪上加霜。

1997年,LSTM模型被发明,尽管该模型在序列建模上的特性非常突出,但由于正处于NN的下坡期,也没有引起足够的重视。

统计学习方法的春天(1986-2006)

1986年,决策树方法被提出,很快ID3,ID4,CART等改进的决策树方法相继出现,到目前仍然是非常常用的一种机器学习方法。该方法也是符号学习方法的代表。 

1995年,线性SVM被统计学家Vapnik提出。该方法的特点有两个:由非常完美的数学理论推导而来(统计学与凸优化等),符合人的直观感受(最大间隔)。不过,最重要的还是该方法在线性分类的问题上取得了当时最好的成绩。 

1997年,AdaBoost被提出,该方法是PAC(Probably Approximately Correct)理论在机器学习实践上的代表,也催生了集成方法这一类。该方法通过一系列的弱分类器集成,达到强分类器的效果。 

2000年,KernelSVM被提出,核化的SVM通过一种巧妙的方式将原空间线性不可分的问题,通过Kernel映射成高维空间的线性可分问题,成功解决了非线性分类的问题,且分类效果非常好。至此也更加终结了NN时代。 

2001年,随机森林被提出,这是集成方法的另一代表,该方法的理论扎实,比AdaBoost更好的抑制过拟合问题,实际效果也非常不错。 

2001年,一种新的统一框架-图模型被提出,该方法试图统一机器学习混乱的方法,如朴素贝叶斯,SVM,隐马尔可夫模型等,为各种学习方法提供一个统一的描述框架。

第三代神经网络——DL(2006-至今)

2006年,DL元年。是年,Hinton提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调。其主要思想是先通过自学习的方法学习到训练数据的结构(自动编码器),然后在该结构上进行有监督训练微调。但是由于没有特别有效的实验验证,该论文并没有引起重视。

2011年,ReLU激活函数被提出,该激活函数能够有效的抑制梯度消失问题。

2011年,微软首次将DL应用在语音识别上,取得了重大突破。

2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其通过构建的CNN网络AlexNet一举夺得冠军,且碾压第二名(SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。 

AlexNet的创新点: 

(1)首次采用ReLU激活函数,极大增大收敛速度且从根本上解决了梯度消失问题;(2)由于ReLU方法可以很好抑制梯度消失问题,AlexNet抛弃了“预训练+微调”的方法,完全采用有监督训练。也正因为如此,DL的主流学习方法也因此变为了纯粹的有监督学习;(3)扩展了LeNet5结构,添加Dropout层减小过拟合,LRN层增强泛化能力/减小过拟合;(4)首次采用GPU对计算进行加速;

2013,2014,2015年,通过ImageNet图像识别比赛,DL的网络结构,训练方法,GPU硬件的不断进步,促使其在其他领域也在不断的征服战场

2015年,Hinton,LeCun,Bengio论证了局部极值问题对于DL的影响,结果是Loss的局部极值问题对于深层网络来说影响可以忽略。该论断也消除了笼罩在神经网络上的局部极值问题的阴霾。具体原因是深层网络虽然局部极值非常多,但是通过DL的BatchGradientDescent优化方法很难陷进去,而且就算陷进去,其局部极小值点与全局极小值点也是非常接近,但是浅层网络却不然,其拥有较少的局部极小值点,但是却很容易陷进去,且这些局部极小值点与全局极小值点相差较大。论述原文其实没有证明,只是简单叙述,严密论证是猜的。。。

2015,DeepResidualNet发明。分层预训练,ReLU和BatchNormalization都是为了解决深度神经网络优化时的梯度消失或者爆炸问题。但是在对更深层的神经网络进行优化时,又出现了新的Degradation问题,即”通常来说,如果在VGG16后面加上若干个单位映射,网络的输出特性将和VGG16一样,这说明更深次的网络其潜在的分类性能只可能>=VGG16的性能,不可能变坏,然而实际效果却是只是简单的加深VGG16的话,分类性能会下降(不考虑模型过拟合问题)“Residual网络认为这说明DL网络在学习单位映射方面有困难,因此设计了一个对于单位映射(或接近单位映射)有较强学习能力的DL网络,极大的增强了DL网络的表达能力。此方法能够轻松的训练高达150层的网络。

总结

根据深度学习发展历史路径,规划本系列学习主线如下:

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

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

相关文章

【MySQL】数据库--库操作

目录 一、创建数据库 二、打开数据库 三、修改数据库 四、显示数据库 五、删除数据库 六、备份与恢复数据库 1.备份: 2.恢复: 一、创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] …] [DEF…

原生数据开发软件 TablePlus for mac

一款非常好用的本地原生数据开发软件:TablePlus激活版。 软件下载:TablePlus for mac v3.11.0激活版 这款优秀的数据库编辑工具支持 MySQL、SQL Server、PostgreSQL 等多种数据库,具备备份、恢复、云同步等功能。它可以帮助您轻松编辑数据库中…

案例分享 | ESP32-C3+智能车库门应用方案 小尺寸低功耗

以前的车库门Opener只能通过墙壁开关或者遥控器来控制开启或关闭,超过一定距离的话无法通过遥控器来操控车库门,也无法随时查看车库门的状态,而启明云端智能车库门方案,可以通过手机APP远程控制车库门,实现远程开关门、…

Cadence——导出BOM清单

首先使用Allegro PCB Designer打开xxx .brd PCB制板文件 如下图,然后点击Tools–>Quick Reports,再选择Bill of Material Report或者Bill of Material Report(Condensed),这两个的区别就是上面的导出的BOM物料清单中相同的器件是不会合并的…

基于“云”重构“百度云盘”

这一篇文章是和上一篇连着的哟! # docker run -p 80:80 -d -v /data/owncloud/:/var/www/html owncloud 一、【安装完成】 二、【打开浏览器】 三、【回到这个熟悉的界面,掉。】 四、【上传文件】 试了可以看哇偶!!&#xff01…

四年创作,心路历程

四年创作,心路历程 前言初识收获日常憧憬 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 前言 今天打开csdn,发现官方发送了一条私信,原来我已经在计算机这…

分享 | 使用Virtuoso VCPVSR工具基于标准单元的布局布线流程

​ 本节内容 导览 一、准备工作 二、运行VCP前的配置 三、VCP的布局规划 四、VCP的自动摆放 五、VSR的自动绕线 分享使用Virtuoso GXL Custom Digital Placer(VCP) & Space-based Router(VSR)工具进行基于纯数字Standard-Cell布局布线的操作流程。 VCP&VSR演…

TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下 二、相关代码实现 1、服务器端代码 package com.company;import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket;public class Main {public static void main(String[] args) {…

A Novel Negative Sample Generating Method for KnowledgeGraph Embedding

摘要 为了有效地提取知识图中的关系和原因,将实体和关系编码到一个连续的低维语义空间中。在负样本生成阶段,大多数知识图嵌入方法更注重替换头或尾实体以提高训练效率,很少替换关系。这些负样本生成方法对关系预测的贡献不大。本文提出了一…

《深入理解计算机系统》学习(4):过程(如函数)和栈存储

目录 过程1 运行时栈2 转移控制3 数据传送4 栈上局部存储 过程 过程中是软件中一种很重要的抽象,提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了某种功能。然后,可以在程序的不同的地方使用这个功能。设计良好的软件用…

FLUOR DE LYS® HDAC fluorometric activity assay kit组蛋白去乙酰化酶荧光活性检测试剂盒

FLUOR DE LYS HDAC fluorometric activity assay kit组蛋白去乙酰化酶荧光活性检测试剂盒 目前,组蛋白去乙酰化酶抑制剂已经显示出其作为抗肿瘤药物的前景,这也自然激发了研究者们对于筛选HDAC(Histone deacetylase,组蛋白去乙酰化…

【AI】使用Azure OpenAI创建自己的AI应用!

【AI】使用Azure OpenAI创建自己的AI应用! 目录 【AI】使用Azure OpenAI创建自己的AI应用!创建工作区模型介绍部署模型API参数计算Token使用Python SDK调用补全模型调用对话模型流式调用异步调用提示技巧生成对话分类推荐超级课程: Docker快速入门到精通Kubernetes入门到大师…

超越Sora!StreamingT2V AI视频模型,轻松打造120秒视觉盛宴

近日,来自美国德克萨斯大学奥斯汀分校(UT奥斯丁)等机构的研究人员提出了一项名为StreamingT2V的AI视频生成技术,引起了业界的广泛关注。这项技术打破了传统视频生成的局限,实现了高度一致且长度可扩展的视频生成&#…

使用 nodejs + zx 编写脚本更新本地 hosts

在日常的开发和运维工作中,我们经常需要修改本地的 hosts 文件来实现一些特定的网络配置,比如将某个域名指向特定的 IP 地址。而使用 Node.js 结合 zx 工具可以让我们更轻松地编写和运行脚本来更新本地的 hosts 文件。 一、功能介绍 目标: 通…

黑马头条day5总结

1、surefire-reports for the individual test results. 借鉴:【已解决】surefire-reports for the individual test results.-CSDN博客 Please refer to D:\javashizhan01\heima-leadnews\heima-leadnews-service\heima-leadnews-article\target\surefire-report…

【jenkins+cmake+svn管理c++项目】Windows环境安装以及工具配置

一、目标和环境 目标:搭建一个jenkins环境,实现jenkins调用cmake和svn和VS编译c项目,并将生成的库上传svn。 环境:win10虚拟机(练习流程用,正式用的话还是放到服务器),VS2017. 二、…

54、Qt/对话框、事件机制相关学习20240325

一、完善对话框,点击登录按钮,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#…

四大AI神器,助你开启智慧家居新生活

曾经,人工智能还只是科幻电影里的未来幻想,而今,它已悄然融入我们生活的方方面面。不再只是工厂里的自动化手臂,或是电影中的情感机器人,AI技术已经走进了寻常百姓家,让家居生活也焕发出智慧的光彩。 想象…

并发-多线程

目录 进程 线程 线程的串行 区别 多线程 进程 是指计算机中已执行的程序,曾经是分时系统的基本运作单位在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,是程序的基本执行实体在面向线程设计的系统…

【PL理论】(1) 语法与语义:归纳的定义 | 推理规则 | 推导树 | 数学归纳法证明 (MI)

💭 写在前面:在学习编程的过程中,我们经常会听到 "语法" 和 "语义" 这两个词,这对于理解和编写高质量的代码至关重要。在本博客中,我们将深入探讨这两个概念,从而帮助读者更好地理解编…