深度学习入门之PyTorch学习笔记:深度学习介绍
深度学习入门之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
参考资料
- 廖星宇《深度学习入门之PyTorch》电子工业出版社
深度学习入门之PyTorch学习笔记:深度学习介绍相关推荐
- 深度学习入门之PyTorch学习笔记:卷积神经网络
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...
- 深度学习入门之PyTorch学习笔记:多层全连接网络
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...
- 深度学习入门之PyTorch学习笔记:深度学习框架
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 2.1 深度学习框架介绍 2.1.1 TensorFlow 2.1.2 Caffe 2.1.3 Theano 2.1.4 ...
- 深度学习入门之PyTorch学习笔记
深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 5 循环神经网络 6 生成对抗网络 7 深度学习实战 参考资料 绪论 深度学习如今 ...
- 干货|《深度学习入门之Pytorch》资料下载
深度学习如今已经成为了科技领域中炙手可热的技术,而很多机器学习框架也成为了研究者和业界开发者的新宠,从早期的学术框架Caffe.Theano到如今的Pytorch.TensorFlow,但是当时间线来 ...
- 主动学习入门篇:什么是主动学习?有哪些具体应用
文 | 淘系技术部 初类 来源 | 知乎 在大数据和算力的助力下,深度学习掀起了一波浪潮,在许多领域取得了显著的成绩.以监督学习为主的深度学习方法,往往期望能够拥有大量的标注样本进行训练,模型能够学到 ...
- Pytorch深度学习入门与实战(笔记)
目录 第二章 1.张量数据类型 (1)查看张量数据类型 (2)修改张量数据类型
- 史上最全深度学习入门教程:超全深度学习笔记本
超全深度学习笔记本 我和小伙伴们一起写了一个超全的深度学习笔记本,你可以通过以下链接访问他: https://ml.akasaki.space/ 如果感觉写的还不错的话,记得给这个仓库一个star ❤ ...
- 深度学习入门-误差反向传播法(人工神经网络实现mnist数据集识别)
文章目录 误差反向传播法 5.1 链式法则与计算图 5.2 计算图代码实践 5.3激活函数层的实现 5.4 简单矩阵求导 5.5 Affine 层的实现 5.6 softmax-with-loss层计 ...
最新文章
- 【转载】HTML导入css的四种方式
- 大数据-09-Intellij idea 开发java程序操作HDFS
- 前端学习(3217):prop的基本使用
- 牛客13584 日历中的数字
- windowsCE镜像文件结构
- oracle写转帐的存储过程,Oracle存储过程及块编程基础经典案例
- 微课|中学生可以这样学Python(例6.3):猜数游戏
- 读书笔记∣《世界是数字的》知识点整理
- 支持Visual Studio 2008和.NET 3.5的企业类库4.0
- Anaconda 下各种第三方库的安装
- 【转载】88E6390端口Link问题(PHY一直link up)BUG解决
- 在火狐(Firefox)浏览器中安装IE Tab插件
- python凹多边形分割_凹多边形分割成凸多边形
- 九种流行木马的发现和清除
- 全国法院名录json
- ORVIBO 精灵款升级分析
- 【共词聚类分析】基于CNKI和WOS的小样本稳健性检验
- 方舟创建专用服务器显示黑框,方舟创建非专用游戏服务器
- JS 获取某一年有多少周
- 使用云服务器搭一个网站(1)
热门文章
- 小白的java学习之路 “ 选择结构(二)”
- js的作用域链,原型链,以及闭包函数理解
- Zabbix housekeeper processes more than 75% busy
- 判定一个点是否在三角形内
- JDK1.7配置及测试
- c语言口令验证模块加强版,[C语言学习第3章口令验证模块的开发.ppt
- 鸿蒙os终于开始大升级,华为鸿蒙OS终于要迎来大规模推送升级了
- html5 建筑物模型,基于HTML5的建筑物阴影实时模拟
- SpringMVC注解驱动标签做了什么操作
- mysql增量同步kafka_MySQL数据实时增量同步到Kafka - Flume