本系列是博主刚开始接触深度学习时写的一些笔记,写的很早了一直没有上传,趁着假期上传一下,作为分享,希望能帮助到你。

目录

前言

一、什么是深度学习

二、深度学习的应用

三、深度神经网络的难题

3.1 梯度消失/梯度爆炸

3.2 过拟合

3.3 网络退化

总结


前言

近年来,随着人工智能的发展,深度学习已经成为了热门的学科。在详细阐述深度学习之前,必须先理清人工智能、机器学习和深度学习之间的区别。

从这张图可以看出,机器学习是人工智能的一个子集,深度学习是极其学习的一个子集,这就表明我们可以创建一个智能机器,它可以在已给出的数据集中学习,同时可以利用简单的机器学习算法来训练深度神经网络。


一、什么是深度学习

1.1、深度学习的历史趋势

深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)领域中的一个新的研究方向。一般来说,目前为止深度学习已经经历了三次发展阶段:

(1)深度学习的起源阶段

1943年心理学家卡洛克和数学逻辑学家皮兹推出了MP模型,一种模仿神经元的结构和工作原理的神经元模型,是人工神经网络的起源;1949年加拿大著名心理学家唐纳德·赫布提出了一种基于无监督学习的规则——海布学习规则(Hebb Relu),此规则与“条件反射”机理一致,为后来的神经网路学习算法奠定了基础;20世纪50年代末,美国科学家罗森布拉特发现了一种类似人类学习过程的学习算法——感知机学习,并于1958年正式提出了由两层神经元组成的神经网络,称其为“感知机”,可对输入数据集进行二分类;在1969年“AI之父”马文·明斯基和LOGO语言创始人西蒙·派珀特证明了单层感知器无法解决线性不可分问题,因此人工神经网络进入第一个寒冬期,对其的研究停滞了将近20年。

(2)深度学习的发展阶段

1982年著名物理学家约翰·霍普菲尔德发明了Hopfield神经网络;1986年深度学习之父杰佛里·辛顿提出了一种适用于多层感知机的反向传播算法——BP算法,这一算法完美的解决了非线性分类问题,但由于当时计算机的硬件水平有限,导致人工神经网络的发展再次进入了瓶颈期。

(3)深度学习的爆发阶段

2006年,杰佛里·辛顿以及他的学生鲁斯兰·萨拉赫丁诺夫正式提出了深度学习的概念;2012年,在著名的ImageNet图像识别大赛中杰弗里·辛顿领导的小组采用深度学习模型AlexNet一举夺冠;同年,斯坦福大学著名的吴恩达教授和世界顶尖计算机专家Jeff Dean共同主导的深度神经网络——DNN技术在图像识别领域取得了惊人的成绩,在ImageNet评测中成功的把错误率从26%降低到了15%;2014年,Facebook基于深度学习技术的DeepFace项目在人脸识别方面的准确率达到97%以上;2016年,谷歌公司基于深度学习开发的AlphaGo以4:1的比分战胜国际顶尖围棋手李世石;2017年,基于强化学习算法的AlphaGo升级版AlphaGo Zero横空出世。此外,深度学习的相关算法还在医疗、金融、艺术、无人驾驶等多个领域均取得了显著的效果。在深度学习的浪潮下,人工智能正在悄无声息的改变着我们的生活!

1.2、深度学习的定义

深度学习和所有的机器学习一样,是一种用数学模型对真实世界中的待定问题进行建模,以解决该领域内相似问题的过程。什么是机器学习?用专业术语进行描述:

(1)计算机用来学习的、反复看的图片叫做“训练数据集”;

(2)“训练数据集”中,一类数据区别另一类数据的不同方面的属性或性质,叫做“特征”;

(3)计算机在“大脑”中总结规律的过程,叫“建模”;

(4)计算机在“大脑”中总结出的规律,就是我们常说的“模型”;

(5)计算机通过反复看图,总结规律,然后学会认知的过程,就叫“机器学习”。

深度学习就是一种在表达能力上灵活多变,同时又允许计算机不断尝试,直到最终逼近目标的机器学习方法。简单来讲,深度学习就是把计算机要学习的东西看成一大堆数据,把这些数据丢进一个复杂的、包含多个层级的数据处理网络(深度神经网络),然后检查经过这个网络处理得到的结果数据是不是符合要求,如果符合,就保留这个网络作为目标模型,如果不符合,就一次次地调整网络地参数设置,直到输出结果满足要求为止。

二、深度学习的应用

随着深度学习的发展,最新的深度学习算法已经远远超越了传统的机器学习算法对于数据的预测和分类精度。深度学习不需要我们自己去提取特征,而是自动地对数据进行筛选,自动地提取数据高维度特征。如今在科技创新的环境里,几乎每个人都在谈论深度学习、人工智能,下面简单介绍深度学习的一些应用。

2.1、图像处理

近年来,深度学习凭借其在识别应用中超高的预测准确率,在图像处理领域取得了巨大突破。目前为止,图像处理已成为深度学习中重要的研究领域,几乎所有的深度学习框架都支持图像处理工具。深度学习在图像处理领域的应用目前可以分为三个方面:图像处理、图像识别、图像生成。

(1) 图像处理

图像处理指对图片的常规操作,包括图像的缩放、裁剪、去噪、提升超分辨率、图像的增强等操作,其目的是提高图片的质量,得到目标图片。图像的数据增强是指根据当前已知的图像数据生成更多的训练图像,即利用多种能够生成可信图像的随机变换来增加原始图像数量。图像去噪在现实中传播图像时,由于外界一系列干扰很容易引起图像质量下降的背景下滤除图像包含的干扰信息而保留有用信息的操作。

(2) 图像识别

计算机视觉(Computering Version,CV)已成为深度学习领域的重要发展方向,计算机视觉的主要内容就是进行目标识别。常见的方法就是构建识别对象为图像的神经网络,达到识别图像的效果,经典的例子就是2013年Kaggle竞赛的猫狗识别,如今图像识别的前沿是人脸识别和遥感图像识别等智能领域。

(3) 图像生成

图像生成是指从已知图像中学习特征后进行组合,生成新图像的过程。图像生成需要学习不同图像的特征并进行组合,生成的图像是所有被学习图像特征的结合。常见的图像生成有Deep Dream、神经风格迁移、变分式自编码器、生成式对抗网络。

Deep Dream是由Google公司在2015年首次发布的,使用早期常见的Caffeine架构编写实现,由于其生成的图像布满了算法式的迷幻错觉伪影而引起轰动。Deep Dream生成的图像最大的特点就是鸟羽毛和狗眼睛数量较多,原因是其学习的原始图像库里鸟样本和狗样本特别多。如图是使用Deep Dream算法生成的图像。

(左图)原始猫的图像;(右图)Deep Dream猫的图像

(左图)原始狗的图像;(右图)Deep Dream狗的图像

神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容,其中风格指在图像中不同空间尺度的纹理,颜色和视觉图案,内容指图像的高级宏观结构。变分式自编码器是一种利用深度学习中生成模型构建的自编码器,将深度学习思想和贝叶斯推断结合在一起,以完成输入目标向低维向量空间的编码映射和向高维向量空间的反解码。生成式对抗网络后面将详细介绍,故这里不再赘述。

2.2、自动驾驶

过去的十年里,得益于深度学习和人工智能领域的迅速发展,自动驾驶汽车技术取得了越来越快的进步。自动驾驶的初衷是解放驾驶员并且减少道路事故和交通拥挤,有五个SAE级别用于定义自动驾驶。SAE委员会引入了5个级别的汽车自动化分级标准,较低的SAE级别具有基本的驾驶员辅助功能,而较高的SAE级别则向无需人工交互的车辆移动。自动驾驶是一种自主决策系统,它处理来自不同车载来源的观测流,比如照相机、雷达、激光雷达、传感器等等,这一系列观察结果被汽车的计算机用来做出驾驶决定。

2.3、智能机器人

机器人发展的趋势是人工智能化,深度学习是智能机器人的前沿技术。从最初的简单的工业机器人到现在集机械、控制、计算机、传感器、深度学习于一体的自动化装备,机器人的技术在不断完善和发展。智能机器人是伴随着“人工智能”这个概念提出而发展起来的,其最根本的目的是让计算机模拟人的思维。将深度学习与机器人相结合,让每个机器人都在工作中学习,数量庞大的机器人并行工作,然后不断分享他们学到的信息,相互促进,这样可以带来极高的学习效率和提升几块的机器人工作的准确度。

2.4、医疗健康诊断

最近来自斯坦福大学和Google Research的研究者对医疗领域中的深度学习应用进行了综述,并将研究文章发表在《Nature Medicine》,这篇文章从应用于医疗行业的计算机视觉、自然语言处理、强化学习和通用方法入手,详细介绍了深度学习在医疗中的应用。

(1)关于计算机视觉。深度学习的一些伟大成就就出现在计算机视觉领域(CV),CV主要研究图像和视频理解,处理目标分类、检测和分割等任务,这些在判断病人射线照片中是否存在恶行肿瘤时非常有用。深度学习系统可以为医生提供辅助意见,标注出图像中有问题的区域。

深度学习方法在大量的诊断任务上取得了医生级别的准确率,包括识别黑痣和黑色素瘤、判断心血管风险、从乳房X光中检测乳腺病变、使用核磁共振成像进行脊柱分类等等,深度学习在这些方面上取得了优秀的成绩,然而医学成像任务构建监督式深度学习系统的主要局限在一是否有足够大的标注数据集。

(2)关于自然语言处理。自然语言处理(NLP)主要通过分析文本和语音来推断词的语义。循环神经网络RNN能搞笑处理该领域的序列数据,如语言、语音和时序数据等,它在NLP中起到了非常重要的左右。NLP中的机器翻译、文本生成和图像描述取得了显著成果,在医疗领域,序列深度学习和语言技术为电子健康档案(EHR)等应用提供了很多支持。EHR目前正在迅速普及,大型医疗机构的EHR能记录超过一千万患者过去10年内的医疗活动,仅单独的一次祝愿就能产生大约15万条数据,因此从这些数据能获取的有效信息与优势是十分明显的。

EHR构建的深度学习系统会汇集多个机构的数据来创建原始数据,这能确保构建一个可泛化的系统,然后将各种非结构化的EHR数据标准化并解析为患者的时序数据,从而使用深度学习进行训练,最后就能推断出高级医疗问题的答案,比如患者病史中的那些信息与当前疾病有关,患者目前的疾病列表是什么等等。

(3)关于强化学习。强化学习是指训练计算智能体成功与环境互动的技术,通常是为了实现特定目标。强化学习可通过试错、演示或混合方法来实现。可以从深度强化学习中受益的一大医疗领域是机器人辅助手术(RAS)。目前,机器人辅助手术的主要方式是医生以遥控方式指导机器人操纵器械。通过使用计算机视觉模型(比如CNN)来观察手术环境、使用强化学习方法学习外科医生的动作,深度学习有效提高了机器人辅助手术的稳健性和适应性。

三、深度神经网络的难题

3.1 梯度消失/梯度爆炸

神经网络一般是通过基于梯度的BP算法来优化,对前馈神经网络而言,一般需要前向传播输入信号,然后反向传播误差使用梯度方法更新参数。在反向传播过程中对激活函数进行求导,如果导数大于1,那么随着网络的增加梯度更新将会朝着指数爆炸的方式增加,这就是梯度爆炸。同样如果导数小于1,那么随着网络层数的增加梯度更新信息会朝着指数衰减的方式减少,这就是梯度消失。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。这个问题提基本上已经通过选取适当的激活函数、标准初始化等方法解决了。

3.2 过拟合

神经网络出现过拟合问题是由于特征维度过多,模型假设过于复杂,参数过多训练数据过少,噪声过多,这些导致拟合的函数完美地适用于预测训练集,但是对于新数据的测试集预测效果却很差,其原因是过度的拟合了训练数据,而没有考虑到泛化能力。产生过拟合的根本原因有以下五点:

  1. 观察值与真实值存在偏差;
  2. 数据太少,导致无法描述问题的真实分布;
  3. 数据有噪声;
  4. 训练数据不足,有限的训练数据;
  5. 训练模型过度,导致模型非常复杂。

解决过拟合问题有很多方法,比如验证数据,即在训练数据外再为算法提供一套验证数据集;交叉验证;dropout;数据增强,即将原始图像进行平移拉伸,从而使模型的训练数据集增大等等。

3.3 网络退化

在神经网络增加网络层数的过程中,训练准确率(training  accuracy)会逐渐趋于饱和,如果继续增加层数,训练准确率就会出现下降的现象,而这种下降不是由过拟合造成的,而是出现了网络退化问题。而ResNet正是针对此问题所提出的解决方法。


总结

以上就是今天要讲的内容,本文简单介绍深度学习的发展历史、基本概念、应用以及面临的难题,图片来自互联网,侵权删。如有错误,请及时指出,我们一起进步!

[深度学习笔记(1)]深度学习入门相关推荐

  1. 深度学习入门之PyTorch学习笔记:深度学习介绍

    深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...

  2. 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇

    学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...

  3. SVO 学习笔记(深度滤波)

    SVO 学习笔记(深度滤波) 这篇博客 论文中的深度滤波 深度滤波的代码流程 更新Seed对象 初始化Seed对象 结尾 这篇博客  这篇博客将介绍SVO论文中的Mapping部分,主要介绍深度滤波器 ...

  4. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  5. 2020-4-20 深度学习笔记20 - 深度生成模型 3 (实值数据上的玻尔兹曼机)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  6. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  7. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  8. 深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现

    深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 文章目录 深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 前言 理论 什么是Q-Learning 算 ...

  9. ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10)

    ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10) Scalers点评:机器学习小组是成长会的内部小组,这是成长会机器学习小组第21周学习笔记,也是深度学习第10次的复盘笔记 ...

  10. 学习笔记:深度学习(6)——基于深度学习的语言模型

    学习时间:2022.04.22~2022.04.25 文章目录 5. 基于深度学习的语言模型 5.1 从NNLM到词嵌入 5.1.1 神经网络语言模型 NNLM 5.1.2 基于循环神经网络的语言模型 ...

最新文章

  1. FreeMarker标签介绍
  2. 如何避免重复提交?分布式服务的幂等性设计!
  3. ORA-600(qerltcInsertSelectRop_bad_state)错误
  4. mongo 多条件筛选_如何制作提交按钮,实现多条件筛选
  5. [译]Javascript数列的push和pop方法
  6. 2021年常用中药相关数据库介绍
  7. linux进程通讯-纯文本文件
  8. I/O复用之 EPOLLONESHOT 事件
  9. python socket.error: [Errno 24] Too many open files
  10. 高通量数据中批次效应的鉴定和处理(五)- 预测并校正可能存在的混杂因素...
  11. Python url中提取域名(获取域名、获取顶级域名、tldextract)
  12. python制作简单K线图
  13. [转载]UML时序图总结
  14. android7.0 ActivityManagerService(AMS)启动流程
  15. typedef int Myfunc(const char *,const struct stat *,int)
  16. MATLAB矩阵运算部分知识总结
  17. 华为手机怎么开启生产模式 | 华为手机打开生产模式后有驱动没有安装好怎么办 | 华为荣耀9手机打开生产模式后有驱动有叹号怎么办
  18. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用
  19. 数学分析教程(科大)——6.2笔记+习题
  20. css translate 坐标,CSS3 位移转换 translate3d()translatez()应用实例

热门文章

  1. 微信公众号查询账户余额等
  2. 既想吸猫又不想当猫奴?这款治愈系的机器人或许会适合你
  3. springboot整合liquibase(补充)
  4. 机械工程专业与c语言的联系,新工科背景下的机械专业C语言课程改革
  5. 【UOJ #390】【UNR #3】百鸽笼(指数型生成函数,二项式定理)
  6. Python IDE开发环境
  7. pywinauto 自动进行远程桌面登陆 remote desktop connection
  8. ps2020无法显示最近打开
  9. Redis与传统sql数据库的区别
  10. Network 【HTTPS请求/AFN】