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

  • 绪论
  • 1 深度学习介绍
    • 1.1 人工智能
    • 1.2 数据挖掘、机器学习、深度学习
      • 1.2.1 数据挖掘
      • 1.2.2 机器学习
      • 1.2.3 深度学习
        • 第一代神经网络(1958-1969)
        • 第二代神经网络(1986-1998)
        • 第三代神经网络深度学习(2006年至今)
    • 1.3 学习建议
      • 1.3.1 线性代数
      • 1.3.2 机器学习基础
      • 1.3.3 深度学习
  • 参考资料

绪论

  • 深度学习如今已经称为科技领域最炙手可热的技术,帮助你入门深度学习。
  • 本文从机器学习与深度学习的基础理论入手,从零开始学习PyTorch以及如何使用PyTorch搭建模型。
  • 学习机器学习中的线性回归、Logistic回归、深度学习的优化方法、多层全连接神经网络、卷积神经网络、循环神经网络、以及生成对抗网络,最后通过实战了解深度学习前沿的研究成果。
  • 将理论与代码结合,帮助更好的入门机器学习。

1 深度学习介绍

1.1 人工智能

  • 人工智能(Artificial Intelligence),也称机器智能,是指由人工制造出来的系统所表现的智能。所谓智能,即可以观察周围环境并据此做出行动以达到目的。
  • 人工智能的概念很宽泛,根据人工智能的实力将它分为3类。
    (1)弱人工智能(Artificial Narrow Intelligence,ANI)
    若人工智能是擅长于单个方面的人工智能。比如战胜世界冠军的人工智能AlphaGo只会下围棋,不会分别猫和狗,现在实现的几乎都是弱人工智能。
    (2)强人工智能(Artificial General Intelligence,AGI)
    这是类似人类级别的人工智能。强人工智能是指在各方面都能和人类比肩的人工智能,人类能干的脑力活,它都可以干。智能是一种宽泛的心理能力,能够进行思考、计划、解决问题、抽象思维、理解复杂理念、快速学习和从经验中学习等操作。
    (3)超人工智能
    在几乎所有领域都比最聪明的人类强,包括科学创新、通识和社交技能。超人工智能可以是各方面都比人类强一点,也可以是各方面都比人类强万亿倍。

1.2 数据挖掘、机器学习、深度学习

数据挖掘作为一个学术领域,横跨多个学科,涵盖但不限于统计学、数学、机器学习和数据库,此外还运用在各类专业领域,比如油田、电力、海洋生物、历史文本、图像、电子通信等。

1.2.1 数据挖掘

  • 数据挖掘(Knowledge Discovery in DataBase)就是在大型的数据库中发现有用的信息,并加以分析的过程。
  • 一个数据的处理过就是从输入数据开始,对数据进行预处理,包括特征选择、规范化、降低维数、数据提升等,然后进行数据的分析和挖掘,再经过处理,如模式识别、可视化等,最后形成可用信息的全过程。
  • 数据挖掘只是一种概念,从数据中挖掘到有意义的信息,从大量的数据中寻找数据之间的特性。

1.2.2 机器学习

  • 机器学习是实现人工智能的一种途径,和数据挖掘有一定的相似性,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性等多门学科。
  • 对比于数据挖掘从大数据之间找相互特性而言,机器学习更加注重算法的设计,让计算机能自动从数据中学习规律,并利用规律对未知数据进行预测。
  • 机器学习可以分为以下五大类。
    (1)监督学习
    从给定的训练集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的,常见的监督学习算法包括回归和分类。
    (2)无监督学习
    无监督学习和监督学习相比,训练集没有人为标注的结果,常见的无监督学习有聚类等。
    (3)半监督学习
    介于监督学习与无监督学习之间的方法。
    (4)迁移学习
    将已经训练好的模型参数,迁移到新的模型来帮助新模型训练数据集。
    (5)增强学习
    通过观察周围环境来学习。每个动作都会对环境有所了解,学习对象根据观察到的周围的环境的反馈来做出判断。
  • 传统的机器学习算法有以下几种:线性回归模型、logistics回归模型、K-邻近算法、决策树、随机森林、支持向量机、人工神经网络、EM算法、概率图模型。

1.2.3 深度学习

  • 深度学习的最初级版本是人工神经网络,是机器学习的一个分支,试图模拟人脑,通过更复杂的结构自动提取数据特征。
  • 在深度学习发展起来之前,机器学习无法解决图像识别、语音识别、自然语言处理等问题。正因为大数据的兴起和高性能GPU的出现,促进了深度学习的发展。
  • 深度学习从发展到崛起经历了两个低谷,将深度学习的历史分为了三个阶段。

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

  • 最早的神经网络思想起源于1943年的MCP人工神经元模型,当时人们希望能够用计算机来模拟人的神经元的反应过程,该模型将神经元简化为三个过程:输入信号线性加权,求和,非线性激活(阈值法)。
  • 第一次将MCP用于机器学习(分类)的当属1958年Rosenblatt发明的感知器(perceptron)算法。该算法使用MCP模型对输入的数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权重值。
  • 1969年,美国数学家及人工智能先驱Minsky证明了感知器本质上是一种线性模型,只能处理线性分类问题,连最简单的XOR(异或)问题都无法正确分类。

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

  • 第一次打破非线性诅咒的是现代深度学习大牛Hinton,他在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题,引发了神经网络的第二个热潮。
  • 1989年,RobertHecht证明了MLP的万能逼近定理,即对于任何闭区间的一个连续函数f,都可以用含有一个隐藏层的BP神经网络逼近。
  • 1989年,LeCun发明了卷积神经网络-LeNet,并将其用于数字识别,取得了较好的成绩。
  • 1991年,BP算法被指出存在梯度消失的问题,即在误差梯度后向传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmodid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习。
  • 统计学习方法的春天(1986年-2006年)
  • 1986年,决策树方法被提出来,很快ID3、ID4、CART等改进的决策树方法相继出现,也是符号学习方法的代表。

第三代神经网络深度学习(2006年至今)

  • 该阶段又分为两个时期:快速发展期(2006年-2012年)和爆发期(2012年至今)
  • 2006年,深度学习元年。Hinton提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调,其主要思想是:先通过自学习的方法学习到训练数据的结构(自动编码器),然后在该结构上进行有监督训练微调。
  • 2011年,ReLU激活函数被提出,该激活函数能有效抑制梯度消失的问题。
  • 2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,通过构建CNN网络AlexNet一举夺得冠军,并且碾压了第二名SVM方法的分类性能。
  • 2015年,Hinton、LeCun、Bengio论证了局部极值问题对于深度学习的影响,得到的结果是Loss的局部极值问题对于深层网络的影响可以忽略,该论断消除了笼罩在神经网络上局部极值问题的阴霾。

深度学习结构

  • 随着神经网络的发展,目前比较流行的网络结构分别有:深度神经网络(DNN)、卷积神经网络(CNN)、循环递归神经网络(RNN)、生成对抗网络(RAN)

1.3 学习建议

  • 网上有各种各样的学习经验分享,有的人注重 理论知识的积累,看了很多书,但动手实践经验为0;有一些人热衷于代码实现,每天学习别人已经写好的代码。
  • 深度学习是理论和工程相结合的领域,不仅仅需要写代码的能力强,也需要有理论知识能够看懂论文,实现论文提出的新想法,所以学习路线应该是理论与代码相结合,平衡两边的学习任务,不能出现只管一边而不学另外一边的情况,因为只有理论与代码兼顾,才不至于一旦学习深入,就会发现自己有很多知识漏洞。

1.3.1 线性代数

  • 线性代数相当于深度学习的基石,深度学习里面有大量的矩阵运算,而且线性代数的一些矩阵分解的思想也被借鉴到了机器学习中,所以必须熟练掌握线性代数。
  • 《线性代数应该这样学》(Linear Algebra Done Right)
  • MIT的线性代数公开课
  • Coding The Matrix

1.3.2 机器学习基础

  • 虽然深度学习现在很火,但是也需要掌握其根本,即机器学习,这才是本质与核心。
  • Coursera上Andrew Ng的机器学习入门课程。
  • 林轩田的机器学习基石和机器学习技法
  • Udacity的机器学习纳米单位
  • 《机器学习》周志华
  • 《统计学习方法》李航
  • Pattern Recognition and Machine Learning

1.3.3 深度学习

  • 深度学习是最近几年最为活跃的研究领域,爆发了很多革命性的突破,很多前沿的学习资源。
  • Udacity的两个深度学习课程
  • Coursera的Neural Network for Machine Learning
  • Stanford:cs231n
  • Stanford:cs224n

参考资料

  1. 廖星宇《深度学习入门之PyTorch》电子工业出版社

深度学习入门之PyTorch学习笔记:深度学习介绍相关推荐

  1. 深度学习入门之PyTorch学习笔记:卷积神经网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...

  2. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

  3. 深度学习入门之PyTorch学习笔记:深度学习框架

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 2.1 深度学习框架介绍 2.1.1 TensorFlow 2.1.2 Caffe 2.1.3 Theano 2.1.4 ...

  4. 深度学习入门之PyTorch学习笔记

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 5 循环神经网络 6 生成对抗网络 7 深度学习实战 参考资料 绪论 深度学习如今 ...

  5. 干货|《深度学习入门之Pytorch》资料下载

    深度学习如今已经成为了科技领域中炙手可热的技术,而很多机器学习框架也成为了研究者和业界开发者的新宠,从早期的学术框架Caffe.Theano到如今的Pytorch.TensorFlow,但是当时间线来 ...

  6. 主动学习入门篇:什么是主动学习?有哪些具体应用

    文 | 淘系技术部 初类 来源 | 知乎 在大数据和算力的助力下,深度学习掀起了一波浪潮,在许多领域取得了显著的成绩.以监督学习为主的深度学习方法,往往期望能够拥有大量的标注样本进行训练,模型能够学到 ...

  7. Pytorch深度学习入门与实战(笔记)

    目录 第二章 1.张量数据类型 (1)查看张量数据类型 (2)修改张量数据类型

  8. 史上最全深度学习入门教程:超全深度学习笔记本

    超全深度学习笔记本 我和小伙伴们一起写了一个超全的深度学习笔记本,你可以通过以下链接访问他: https://ml.akasaki.space/ 如果感觉写的还不错的话,记得给这个仓库一个star ❤ ...

  9. 深度学习入门-误差反向传播法(人工神经网络实现mnist数据集识别)

    文章目录 误差反向传播法 5.1 链式法则与计算图 5.2 计算图代码实践 5.3激活函数层的实现 5.4 简单矩阵求导 5.5 Affine 层的实现 5.6 softmax-with-loss层计 ...

最新文章

  1. 【转载】HTML导入css的四种方式
  2. 大数据-09-Intellij idea 开发java程序操作HDFS
  3. 前端学习(3217):prop的基本使用
  4. 牛客13584 日历中的数字
  5. windowsCE镜像文件结构
  6. oracle写转帐的存储过程,Oracle存储过程及块编程基础经典案例
  7. 微课|中学生可以这样学Python(例6.3):猜数游戏
  8. 读书笔记∣《世界是数字的》知识点整理
  9. 支持Visual Studio 2008和.NET 3.5的企业类库4.0
  10. Anaconda 下各种第三方库的安装
  11. 【转载】88E6390端口Link问题(PHY一直link up)BUG解决
  12. 在火狐(Firefox)浏览器中安装IE Tab插件
  13. python凹多边形分割_凹多边形分割成凸多边形
  14. 九种流行木马的发现和清除
  15. 全国法院名录json
  16. ORVIBO 精灵款升级分析
  17. 【共词聚类分析】基于CNKI和WOS的小样本稳健性检验
  18. 方舟创建专用服务器显示黑框,方舟创建非专用游戏服务器
  19. JS 获取某一年有多少周
  20. 使用云服务器搭一个网站(1)

热门文章

  1. 小白的java学习之路 “ 选择结构(二)”
  2. js的作用域链,原型链,以及闭包函数理解
  3. Zabbix housekeeper processes more than 75% busy
  4. 判定一个点是否在三角形内
  5. JDK1.7配置及测试
  6. c语言口令验证模块加强版,[C语言学习第3章口令验证模块的开发.ppt
  7. 鸿蒙os终于开始大升级,华为鸿蒙OS终于要迎来大规模推送升级了
  8. html5 建筑物模型,基于HTML5的建筑物阴影实时模拟
  9. SpringMVC注解驱动标签做了什么操作
  10. mysql增量同步kafka_MySQL数据实时增量同步到Kafka - Flume