精华内容
下载资源
问答
  • 深度学习入门

    2019-12-17 18:33:10
    深度学习入门–资源篇 从2016年开始,深度学习开始崛起,最近几年见证了cv算法从机器学习到深度学习的大转变。这篇文章主要以分享资源为主,从机器学习到深度学习的入门资料。 理论方面 机器学习视频,吴恩达...

    深度学习入门–资源篇

    从2016年开始,深度学习开始崛起,最近几年见证了cv算法从机器学习到深度学习的大转变。这篇文章主要以分享资源为主,从机器学习到深度学习的入门资料。

    理论方面

    • 机器学习视频,吴恩达斯坦福coursera机器学习课程
    • 深度学习书籍,书名《深度学习》,因为封面是使用深度学习生成的花的图片,所以江湖人称 “花书”,此书可谓深度学习的圣经,AI的葵花宝典。这里是深度学习中文版PDF
    • 机器学习书籍,书名《机器学习》,南京大学教授周志华老师写的,江湖人称"西瓜书",这本书写的浅显易懂,对于基本概念解释的非常清楚,例如“回归”和“分类”,“欠拟合”和“过拟合”,身边常备。需要PDF的同学,公众号后台回复“01”
    • 《统计学习方法》第二版,李航博士刚刚写的,针对第一版新增无监督学习的相关内容,这本书被清华大学选为了教材,清华的老师针对这本书做了PPT课件。需要的同学,公众号后台回复“02”
    • 《神经网络与深度学习》,这本书是我入门的时候读的最多的一本书,里面的内容很接地气,CNN,RNN,注意力机制等等。神经网络与深度学习

    实践方面

    • 动手学深度学习,mxnet的作者李沐老师的著作,面向中文读者,能运行、可讨论。强烈推荐跟着一步一步来写代码,然后运行。
    • 动手学深度学习_pytorch,李沐老师的是mxnet的实现的代码,但是毕竟mxnet还是比较小众,这个是将原书中的MXNet实现全部改为了PyTorch实现

    授之以渔

    新手入门查找资料肯定少不了github,所以如何在github上找到自己想要的资料?我有一个小技巧,在github上搜索的时候,关键词之前加上 awesome,如果要找人脸相关资料,那就搜索“awesome face ”。按照此种方法搜索,一般都能找到一个仓库专门维护一个主题,里面包含此主题下的最全最新的资料,并且都会持续更新。

    统计学习方法 第二版 PDF
    统计学习方法 第二版 课件 PPT
    机器学习 周志华 PDF

    PDF非常适合在移动设备上阅读,地铁通勤时间看非常不错。不过还是推荐购买正版图书,毕竟这都是非常不错的良心书,支持作者!


    微信公众号 :卡本特
    后台回复,下载PDF
    在这里插入图片描述

    展开全文
  • 因此,我们将要介绍的深度学习,指的是构建神经网络结构,并且运用各种深度学习算法训练网络参数,进而解决各种任务。本文从PyTorch环境配置开始。PyTorch是一种Python接口的深度学习框架,使用灵活,学习方便。...

    前言

    深度神经网络是一种目前被广泛使用的工具,可以用于图像识别、分类,物体检测,机器翻译等等。深度学习(DeepLearning)是一种学习神经网络各种参数的方法。因此,我们将要介绍的深度学习,指的是构建神经网络结构,并且运用各种深度学习算法训练网络参数,进而解决各种任务。本文从PyTorch环境配置开始。PyTorch是一种Python接口的深度学习框架,使用灵活,学习方便。还有其他主流的深度学习框架,例如Caffe,TensorFlow,CNTK等等,各有千秋。笔者认为,初期学习还是选择一种入门,不要期望全都学会。须知,发力集中才能深入挖掘。乱花渐欲迷人眼,选择适合自己的,从一而终,相信会对科研大有裨益!

    ***************************************************

    说明:本文乃至本系列全部文章都是在PyTorch0.2版本下做的。现在版本更新了很多,会有一些API的更改,请大家注意Follow最新的变化,以免由于版本问题受到困扰。

    ***************************************************

    1. 环境说明

    PyTorch目前支持OSX和Linux两种系统,并且支持多种安装方式。在官网上介绍了基于conda,pip和源代码编译几种不同的安装方式。支持的Python版本有2.7,3.5和3.6。鉴于深度学习需要的计算量一般比较大,强烈建议找到一个有独立显卡的电脑来展开学习,当然没有显卡也能用,就是计算慢很多了。

    如果你的电脑是Windows,那么可以安装一个虚拟机来运行Linux,但是性能可能会折扣。我的电脑操作系统是Ubuntu16.04,所以我会以此为例子来介绍后面的内容。

     

    2. Anaconda 和Python

    PackageManager我们选择conda,于是我们需要安装Anaconda这个功能强大的包,下载地质:https://www.anaconda.com/download/#linux 。里面包含了conda工具,也有Python,以及很多Python需要的扩展工具包。选择2.7版本,下载并安装即可。接下来,如果有显卡,进入第3步;没有显卡直接到第4步。

     

    3. 显卡驱动和CUDA

    要使用显卡进行运算,你需要使用支持CUDA的NVIDIA显卡,目前比较好的显卡有NVIDIATITANX、GTX1080Ti 等。好的显卡将会是深度学习研究的有力武器。当然,普通的显卡例如GTX970、GTX1060等也是可以用的。实在没有显卡,那只能做简单的小数据量的实验,效果不会太好。

    在Ubuntu16.04上可以采用以下方法安装显卡驱动,这种方式比较稳定。打开“SystemSettings”——“Software&Updates” —— “AdditionalDrivers”,联网状态会自动搜索可用的显卡驱动,选择可用的版本,点击“ApplyChanges”即可。可能重启动后显卡驱动才能生效。

    接下来安装CUDAToolkit。因为最新的CUDA是9.0版本,但是PyTorch只能支持到8.0。所以转到该网址“https://developer.nvidia.com/cuda-80-ga2-download-archive”,选择对应的参数,下方会有对应的CUDA文件。例如,下图是我选择的版本。选择deb文件,发现有1.9G大小,下载下来,按照baseinstaller的指示来完成安装。附加的cuBLAS也可以下载下来安装上。

    CUDA安装完成后,在主目录下打开“.bachrc”文件,在末尾添加如下代码:

    export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

     

     

     

    4. 运行PyTorch的安装命令

    如果你和我一样,采用8.0CUDA,2.7版本Python,可以运行以下命令:

    conda install pytorch torchvision cuda80 -c soumith

    如果没有显卡,2.7版本Python,可以这样:

    conda install pytorch torchvision -c soumith

     

    5. 验证安装是否成功

    要显示显卡信息,在终端输入:

    sudo lshw -c video

     

    要显示CUDA信息,在终端输入:

    nvcc -V

     

    查看Phthon版本,在终端输入:

    python --version

     

    验证pytorch是否安装成功,在终端输入:

    python

    此时进入python环境。然后,继续输入

    import torch

    import torchvision

    不报错就表明安装成功。

     

     

     

    展开全文
  • 深度学习入门视频课程

    万人学习 2017-01-24 13:38:50
    购买课程后,添加小助手微信(微信号:csdnxy68)回复【唐宇迪】 进入学习群,获取唐宇迪老师答疑 课程首先通俗讲解神经网络核心知识点再对整体网络构架进行分析...整体风格通俗易懂,最接地气的深度学习入门实战课程!
  • 深度学习入门基础

    2017-09-15 10:30:17
    深度学习入门基础 深度学习发展按时间顺序介绍 几次浪潮 深度学习入门需要的基础知识 数学基础知识 信息论 梯度下降 关于特征
  • 如何入门机器学习和深度学习,深度学习入门方法,机器学习教程大全.rar,50块钱买来的,现在只要50分。
  • 第一章:深度学习入门

    千人学习 2018-12-20 17:25:42
    本章介绍深度学习入门知识。
  • 深度学习入门笔记(一):机器学习基础

    千次阅读 多人点赞 2020-07-02 23:33:28
    专栏——深度学习入门笔记 文章目录专栏——深度学习入门笔记本章内容一.人工智能的机遇与挑战二.机器学习2.1 什么是机器学习2.2 用机器学习解决问题的一般流程2.3 数据预处理2.4 特征工程2.5 模型性能的评估与选择...

    专栏——深度学习入门笔记

    推荐文章

    ——————————————————————————————————————————————————————

    本章内容

    • 人工智能的发展及其面临的挑战
    • 机器学习的基础知识和基本概念
    • 特征工程的方法和流程
    • 深度学习的发展及应用

    1956年8月,约翰.麦卡锡在美国达特茅斯学院(Dartmouth College)发起的一次研讨会 上首次提出了“人工智能”这个概念。这次会议因此被公认为是人工智能诞生的标志。在之后60多年的时间里,人工智能的发展起起伏伏、忽“冷”忽“热”。2016年,AlphaGo与李世石的那场“世纪大战”彻底点燃了大众的热情。当前,人工智能成了一个“香饽饽”,很多国家都在积极争夺人工智能领域的话语权,各大公司也都不断加大在人工智能领域的投入。人工智能成为继个人电脑、互联网、移动互联网之后的又一 次浪潮,对于想要转行人工智能领域的人或者人工智能领域的从业者来说,当下就是一个不折不扣的黄金时代。作为解决人工智能领域中问题的工具,机器学习和深度学习目前正被广泛地学习和使用。

    在这里插入图片描述

    一.人工智能的机遇与挑战

    从谷歌推出无人驾驶汽车到AlphaGo战胜人类顶级围棋高手李世石,再到阿里巴巴成立人工智能研究院一一达摩院,关于人工智能的话题近几年时常霸占各大媒体的头条。随着国务院于2017年7月8日印发并实施《新一代人工智能发展规划》,人工智能也被提到国家发展的战略高度。

    人工智能(Artificial Intelligence) 目前还没有一个统- - 和明确的定义。我们可以简单地认为:人工智能旨在研究如何让计算机拥有(或部分拥有)人类的智力,从而解决现实中只有依靠人的智力才能解决的问题。

    目前,人工智能的应用已经非常广泛,涵盖金融、电商、医疗、制造业、教育等多个领域,诸如语音识别、翻译系统、推荐系统、图片处理功能,以及个性化新闻推荐等,这些具体的应用场景和我们的生活息息相关。而在未来,人工智能将覆盖更多的领域,这不仅是一场科技的革命,更是时代的大势所趋。人工智能应用必然会全方位地渗入我们日常生活中的点点滴滴。

    二.机器学习

    2.1 什么是机器学习

    机器学习(Machine Learning) 是让计算机能够自动地从某些数据中总结出规律,并得出某种预测模型,进而利用该模型对未知数据进行预测的方法。它是一种实现人工智能的方式,是一门交叉学科,综合了统计学、概率论、逼近论、凸分析、计算复杂性理论等。

    目前机器学习的研究和应用大概集中在如图1-1所示的领域。

    在这里插入图片描述
    其中,机器学习让统计学习得到延伸;模式识别侧重于“感知”特征,而机器学习则会“学习”特征;数据挖掘领域中用到的算法也经常可在模式识别和机器学习中应用。计算机视觉语音识别自然语言处理目前是机器学习领域最热门的三大方向。

            ● 计算机视觉是一门研究如何让机器替代人的眼睛,对“看到”的图片进行分析、处理的科学,在图像分类、人脸识别、车牌识别、目标检测及自动驾驶等均有十分广泛的应用。

            ●目前基于深度学习的语音识别和语音合成技术已经非常成熟,应用随处可见,如智能音箱、实物机器人(例如早教机器人)及虚拟人物等。

            ●自然语言处理旨在使用自然语言处理技术让计算机“读懂”人类的语言,相关应用有机器翻译、智能客服、垃圾信息识别等。

    目前,机器学习大致可以分为以下几类:

    (1) 有监督学习(Supervised Learning) :当我们已经拥有–些数据及数据对应的类标时,就可以通过这些数据训练出一个模型,再利用这个模型去预测新数据的类标,这种情况称为有监督学习。有监督学习可分为回归问题和分类问题两大类。在回归问题中,我们预测的结果是连续值;而在分类问题中,我们预测的结果是离散值。常见的有监督学习算法包括线性回归、逻辑回归、K-近邻、朴素贝叶斯、决策树、随机森林、支持向量机等。

    (2) 无监督学习(Unsupervised Learning):在无监督学习中是没有给定类标训练样本的,这就需要我们对给定的数据直接建模。常见的无监督学习算法包括K-means、EM算法等。

    (3) 半监督学习(Semi-supervised Learn-ing):半监督学习介于有监督学习和无监督学习之间,给定的数据集既包括有类标的数据,也包括没有类标的数据,需要在工作量(例如数据的打标)和模型的准确率之间取一个平衡点。

    (4)强化学习( Reinforcement Learning):从不懂到通过不断学习、总结规律,最终学会的过程便是强化学习。强化学习很依赖于学习的“周围环境”,强调如何基于“周围环境”而做出相应的动作。

    具体分类如图1-2所示。
    在这里插入图片描述

    2.2 用机器学习解决问题的一般流程

    用机器学习解决问题的一-般流程如图1-3所示。
    在这里插入图片描述

    (1)收集数据

    业界有一句非常流行的话:“数据和特征决定了机器学习的上界,而模型和算法只是去逼近这个上界”,由此可见,数据对于整个机器学习项目来说至关重要。当我们面临一个实际的问题时,如果既有想法,又有一些相关数据,有可能是有用的,也有可能是无用的,则这里的数据收集是指根据需求从已有数据中找出我们真正需要的数据;而如果只有想法,没有数据,则这里的数据收集是指对数据的搜寻和整理等,如利用网络爬虫技术从互联网爬取数据,或因学习和研究的便利而使用公开数据集。

    输入数据较简单,此处略写。

    (2)数据预处理

    无论是我们自己收集的数据还是公开数据集,通常都会存在各种各样的问题,例如数据不完整、格式不一致、存在异常数据,以及正负样本数量不均衡等。因此,需要对数据进行一系列的处理,如清洗、转换、规范等之后才能拿来使用,这个过程即为数据预处理。

    (3)特征工程

    目前在机器学习或深度学习相关的书籍中,很少会有专门把特征工程拿出来单独介绍的(在一些与数据分析或数据挖掘相关的书籍中可能会介绍得相对多一些)。的确,对于整个机器学习的项目来说,特征工程只是其中很小的一部分工作,但是千万不能忽略这“很小的一部分工作”的重要性。一个机器学习任务的成功与否往往在很大程度上取决于特征工程。简单来说,特征工程的任务是从原始数据中抽出最具代表性的特征,从而让模型能够更有效地学习这些数据。通常我们可以使用scikit-learn这个库来处理数据和提取特征,scikit-learn是机器学习中使用非常广泛的第三方模块,本身封装了很多常用的机器学习算法,同时还有很多数据处理和特征提取相关的方法。

    (4)训练和测试模型

    处理好数据之后,就可以选择合适的机器学习算法进行模型训练了。可供选择的机器学习算法有很多,每个算法都有自己的适用场景,那么如何选择合适的算法呢?

    首先,要对处理好的数据进行分析,判断数据是否有类标,若有类标,则应该考虑使用有监督学习的相关算法,否则可以作为无监督学习问题处理;其次,判断问题类型,属于分类问题还是回归问题;最后根据问题的类型选择具体的算法训练模型。实际工作.上会使用多种算法,或者相同算法的不同参数进行评估。

    此外,还要考虑数据集的大小,若数据集小,训练的时间较短,则通常考虑采用朴素贝叶斯等轻量级算法,否则就要考虑采用SVM等重量级算法,甚至考虑使用深度学习的算法。

    (5)模型的评估

    常用的模型评估方法及相关的评估指标可参见2.5节介绍。到此已经介绍了机器学习的大致流程和相关方法,接下来将进一步介绍其中重要环节一一数据预处理、 特征工程,以及模型的选择与评估。

    2.3 数据预处理

    根据数据类型的不同,数据预处理的方式和内容也不尽相同,这里简单介绍几种较常用的方式。

    (1)归一化

    归一化指将不同变化范围内的值映射到一个固定的范围里,例如,常使用min-max等方法将数值归一化到[0,1]的区间内(有些时候也会归一化到[-1,1]的区间内)。归一化的作用包括无量纲化一、加快模型的收敛速度,以及避免小数值的特征被忽略等。

    (2)标准化

    标准化指在不改变数据原分布的前提下,将数据按比例缩放,使之落入一个限定的区间,让数据之间具有可比性。需要注意的是,归一化和标准化各有其适用的情况,例如在涉及距离度量或者数据符合正态分布的时候,应该使用标准化而不是归一化。常用的标准化方法有z- score等。

    (3)离散化

    离散化指把连续的数值型数据进行分段,可采用相等步长或相等频率等方法对落在每一一个分段内的数值型数据赋予-一个新的统一的符号或数值。离散化是为了适应模型的需要,有助于消除异常数据,提高算法的效率。

    (4)二值化

    二值化指将数值型数据转换为0和1两个值,例如通过设定一个阈值,当特征的值大于该阈值时转换为1,当特征的值小于或等于该阈值时转换为0。二值化的目的在于简化数据,有些时候还可以消除数据(例如图像数据)中的“杂音”。

    (5)哑编码

    哑编码,又称为独热编码(One-Hot Encoding),作用是对特征进行量化。例如某个特征有三个类别:“大”“中”和“小”,要将这一特征用于模型中,必须将其数值化,很容易想到直接给它们编号为“1”“2”和“3”,但这种方式引入了额外的关系(例如数值间的大小关系),“误导”模型的优化方向。一个更好的方式就是使用哑编码,例如“大”对应编码“100”,“中”对应编码“010”,小”对应编码“001”。

    2.4 特征工程

    特征工程的目的是把原始的数据转换为模型可用的数据,主要包括三个子问题:特征构造、特征提取和特征选择

            ● 特征构造一般是在原有特征的基础上做“组合”操作,例如,对原有特征进行四则运算,从而得到新的特征。

            ●特征提取指使用映射或变换的方法将维数较高的原始特征转换为维数较低的新的特征。

            ●特征选择即从原始的特征中挑选出一些具有代表性、使模型效果更好的特征。

    其中,特征提取和特征选择最为常用。

    (1)特征提取

    特征提取又叫作“降维”,目前线性特征的常用提取方法有 主成分分析(Principle C omponent Analysis,PCA)、线性判别分析(Linear Discriminant Analysis,LDA)独立成分分析(Independent Component Analysis, ICA)

    ① 主成分分析

    主成分分析是一种经典的无监督降维方法,主要思想是用“减少噪声”和“去冗余”来降维。具体来说:

            ● “减少噪声” 指在将维数较高的原始特征转换为维数较低的新特征的过程中保留维度间相关性尽可能小的特征维度,这一操作实际上是借助协方差矩阵实现的;

            ●**“去冗余”**指把“减少噪声”操作之后保留下来的维度进行进一一步筛选,去掉含有“特征值”较小的维度,使得留下来的特征维度含有的“特征值”尽可能大,特征值越大,方差就会越大,进而所包含的信息量就会越大。

    主成分分析完全无参数限制,也就是说,结果只与数据有关,而用户是无法进行干预的。这是它的优点,同时也是缺点。针对这一特点,Kernel-PCA 被提出,使得用户可以根据先验知识预先对数据进行非线性转换,因而成为当下流行的方法之一。

    ②线性判别分析

    **线性判别分析是一种经典的 有监督降维算法,主要思想是借助协方差矩阵、广义瑞利熵等实现数据类别间距离的最大化和类别内距离的最小化。二分类线性判别分析中,二维特征是通过一系列矩阵运算实现从二维平面到一条直线的投影的,同时借助协方差矩阵、广义瑞利熵等实现类间数据的最大化与类内数据的最小化。从二分类推广到多分类,是通过在二分类的基础上增加“全局散度矩阵”来实现最终目标优化函数设定的,从而实现类间距离的最大化和类内距离的最小化。显然,由于它是针对各个类别做的降维,所以数据经过线性判别分析降维后,最多只能降到原来的类别数减1的维度。

    因此,线性判别分析除实现降维外,还可以实现分类。另外,对比主成分分析可以看出,线性判别分析在降维过程中着重考虑分类性能,而主成分分析着重考虑特征维度之间的差异性与方差的大小,即信息量的大小。

    ③独立成分分析

    独立成分分析的主要思想是 在降维的过程中保留相互独立的特征维度。这比主成分分析更进-一步,在保证特征维度之间不相关的同时保证相互独立。不相关只是保证了特征维度之间没有线性关系,而并不能保证它们之间是独立的。

    独立成分分析正因为以保证特征维度之间的相互独立为目标,往往会有比主成分分析更好的降维效果,目前已经被广泛应用于数据挖掘、图像处理等多个领域。

    (2)特征选择

    不同的特征对模型的影响程度不同,我们要选择出对模型影响大的特征,移除不太相关的特征,这个过程就是特征选择。特征选择的最终目的是 通过减少冗余特征来减少过拟合、提高模型准确度、减少训练时间。特征选择是对原始特征取特征子集的操作,而特征提取则是对原始特征进行映射或者变换操作,以得到低维的新特征。

    特征选择在特征工程中十分重要,往往可以在很大程度上决定模型训练结果的好坏。常用的特征选择方法包括过滤式(Fil-ter)、包裹式(Wrapper) 及嵌入式(Embedding)

    ①过滤式

    过滤式特征选择一般通过统计度量的方法来评估每个特征和结果的相关性,以对特征进行筛选,留下相关性较强的特征。其核心思想是:先对数据集进行特征选择,再进行模型的训练。过滤式特征选择是独立于算法的。正因此,过滤式特征选择拥有较高的通用性,可适用于大规模数据集;也正因此,过滤式特征选择在分类准确率.上的表现欠佳。常用的过滤式特征选择方法有Pearson相关系数法、方差选择法、假设检验、互信息法等,这些方法通常是单变量的。

    (2)包裹式

    包裹式特征选择通常 把最终机器学习模型的表现作为特征选择的重要依据,一步步筛选特征。这一步步筛选特征的过程可以被看作目标特征组合的搜索过程,而这一搜索过程可应用最佳优先搜索、随机爬山算法等。目前比较常用的一-种包裹式特征选择法是递归特征消除法,其原理是使用一个基模型(如随机森林、逻辑回归等)进行多轮训练,每轮训练结束后,消除若干权值系数较低的特征,再基于新的特征集进行新的一轮训练。

    由于包裹式特征选择是根据最终的模型表现来选择特征的,所以它通常比过滤式特征选择有更好的模型训练表现。但是,由于训练过程时间久,系统的开销也更大,一般来说, 包裹式特征选择不太适用于大规模数据集

    ③嵌入式

    嵌入式特征选择同样 根据机器学习的算法、模型来分析特征的重要性,从而选择比较重要的N个特征。与包裹式特征选择最大的不同是,嵌入式特征选择将特征选择过程与模型的训练过程结合为一体,这样就可以更高效且快速地找到最佳的特征集合。简而言之,嵌入式特征选择将全部的数据一起输入模型中进行训练和评测,而包裹式特征选择一般一步步地筛选和减少特征进而得到所需要的特征维度。常用的嵌入式特征选择方法有基于正则化项(如Lasso)和基于树模型的特征选择( 如GBDT).

    2.5 模型性能的评估与选择

    该节内容可以去看下面这篇博客:

    三.深度学习的发展历程和应用

    作为机器学习的一个重要分支,深度学习近年来在全球范围内都引起了广泛的关注。然而深度学习在火热之前已经经历了一段漫长的发展历程,接下来我们简单了解一下。

    3.1 深度学习的发展历程

    1.起源

    1943年,心理学家麦卡.洛克和数学逻辑学家皮兹发表论文《神经活动中内在思想的逻辑演算》,在此论文中提出了 MP模型。MP模型是模仿神经元的结构和工作原理,构造出的一个基于神经网络的数学模型,本质上是一种“模拟人类大脑”的神经元模型(这里有必要说明的是,我们说的“模拟”,更准确的说法其实应该是“参考”,计算机领域的“人工神经网络”的确受到了生物学上的“神经网络”的启发,但是两者相差万里,没有直接的可比性)。MP模型作为人工神经网络的起源,开创了人工神经网络的新时代,也奠定了神经网络模型的基础。

    1949年,加拿大著名心理学家唐纳德.赫布在《行为的组织》中提出了一种基于无监督学习的规则一一海布学习规则(HebbRule)。海布学习规则模仿人类认知世界的过程建立一种“网络模型”,该网络模型针对训练集进行大量的训练并提取训练集的统计特征,然后按照样本的相似程度进行分类,把相互之间联系密切的样本分为一类,这样就把样本分成了若干类。海布学习规则与“条件反射”机理一致,为以后的神经网络学习算法奠定了基础,具有重大的历史意义。

    20世纪50年代末,在MP模型和海布学习规则的研究基础上,美国科学家罗森.布拉特发现了一种类似于人类学习过程的学习算法一感知器学习,并于1957年正式提出了由两层神经元组成的神经网络,即 “感知器” 。感知器本质上是一种线性模型,可以对输入的训练集数据进行二分类,且能够在训练集中自动更新权值。感知器的提出吸引了大量科学家研究人工神经网络,对神经网络的发展具有里程碑式的意义。

    但随着研究的深入,人们发现了感知器模型甚至无法解决最简单的线性不可分问题(例如异或问题)。由于这一不足,再加上没有及时推进多层神经网络,20世纪70年代,人工神经网络进入第一个寒冬期,人工神经网络的发展也受到了很大的阻碍甚至质疑。

    2.发展

    1982年,著名物理学家约翰.霍普菲尔德发明了 Hopfield神经网络。Hopfield神经网络是一种结 合存储系统和二元系统的循环神经网络。Hopfield网络也可以模拟人类的记忆,根据选取的激活函数不同,有连续型和离散型两种类型,分别用于优化计算和联想记忆。但该算法由于容易陷入局部最小值的缺陷而并未在当时引起很大的轰动。

    直到1986年,深度学习之父杰弗里,辛顿提出了一种适用于多层感知器的反向传播算法,即 BP算法。BP算法在传统神经网络正向传播的基础上,增加了误差的反向传播过程,在反向传播过程中不断地调整神经元之间的权值和阈值,直到输出的误差减小到允许范围之内,或达到预先设定的训练次数为止。BP算法解决了非线性分类问题,让人工神经网络再次引起了人们广泛的关注。

    但是20世纪80年代 计算机的硬件水平有限,运算能力跟不上,以及当神经网络的层数增加时,BP算法会出现“梯度消失“等问题,使得BP算法的发展受到了很大的限制。再加上20世纪90年代中期,以SVM为代表的浅层机器学习算法被提出,并在分类问题、回归问题上均取得了很好的效果,其原理相较于神经网络模型具有更好的可解释性,所以人工神经网络的发展再次进入了瓶颈期。

    3.爆发

    2006年,杰弗里辛顿及其学生鲁斯兰.萨拉赫丁诺夫 正式提出了深度学习的概念。他们在世界顶级学术期刊Science发表的一篇文章中详细地给出了“梯度消失”问题的解决方案过无监督学习逐层训练算法,再使用有监督的反向传播算法进行调优。该方法的提出,立即在学术圈引起了巨大的反响,以斯坦福大学、多伦多大学为代表的众多世界知名高校纷纷投入巨大的人力、财力进行深度学习领域的相关研究,而后又迅速蔓延到工业界。

    2012年,在著名的ImageNet图像识别大赛中,杰弗里.辛顿领导的小组以深度学习模型AlexNet一举夺冠。AlexNet采用ReLU激活函数,极大程度地解决了梯度消失问题,并采用GPU极大提高模型的运算速度。同年,由斯坦福大学著名的吴恩达教授和世界顶尖计算机专家JeffDean共同主导的深度神经网络DNN技术在图像识别领域取得了惊人的成绩,在ImageNet评测中成功地把错误率从26%降低到了1 5%。深度学习技术在世界大赛的脱颖而出,再次进一步吸引了学术界和工业界对深度学习的关注。

    随着深度学习技术的不断进步及计算机硬件算力的不断提升,2014年,Facebook基于深度学习技术的DeepFace项目,在人脸识别方面的准确率已经能达到97%以上,跟人类识别的准确率几乎没有差别。这样的结果也再一次证明了深度学习技术在图像识别方面的一骑绝尘。

    2016年,谷歌公司基于深度强化学习开发的AlphaGo以4 : 1的比分战胜了国际顶尖围棋高手李世石,深度学习的热度一时无两。后来,AlphaGo 又接连和众多世界级围棋高手过招,均取得了完胜。这也证明了在围棋界,基于深度学习技术的机器人几乎已经超越了人类。

    2017年,基于 深度强化学习技术的AlphaGo升级版Al-phaGo Zero横空出世,采用“从零开始”“无师自通”的学习模式,以100:0的比分轻而易举地打败了之前的AlphaGo。除了围棋,它还精通国际象棋等其他棋类游戏,可以说是真正的棋类“天才”此外在这一年,深度学习的相关技术也在医疗、金融、艺术、无人驾驶等多个领域均取得了显著的成果。所以,也有专家把2017年看成深度学习甚至是人工智能发展最为突飞猛进的一年。

    深度学习发展到当前已经越来越趋于成熟,因此,无论是科研还是应用,大家也越来越理性,而不是像早些时候,把深度学习视为“万能”,去盲目跟风。当然,深度学习领域也还有许多问题需要解决,还有很多有趣、有挑战性的方向可以研究。

    3.2 深度学习的应用

    深度学习技术不光在学术界,在工业界也有重大突破和广泛应用,其中 自然语言处理、语音识别和图像处理应用最广泛。接下来,我们分别来看一下这三个领域的发展现状。

    1.自然语言处理

    自然语言处理(NLP)是一门交叉科学,旨在让计算机能够“读懂”人类的语言。自然语言处理的基础研究包括分词、词性标注、实体识别、句法分析、语义分析以及文本向量化表示等,其应用领域有文档分类、信息检索、对话机器人、机器翻译、语音识别和合成等。传统的自然语言处理主要利用语言学领域本身的知识结合统计学的方法来获取语言知识。后来伴随着机器学习浅层模型的发展(如SVM、逻辑回归等),自然语言处理领域的研究取得了一定的突破,但在语义消歧、语言的理解等方面仍然得力不从心。近年来,深度学习相关技术(DNN、CNN、RNN等)取得了显著的进展,在自然语言处理方面的应用也展现出了明显的优势。

    2.语音识别与合成

    语音相关的处理其实也属于自然语言处理的范畴,目前主要是语音合成(Text to Speech, TTS)和语音识别(AutomatedSpeech Recognition, ASR)。语音识别应该是大家最为熟知的、也是应用最为广泛的。同自然语言处理类似,语音识别也是人工智能和其他学科的交叉领域,其所涉及的领域有模式识别、信号处理、概率论、信息论、发声原理等。近年来,随着深度学习技术的兴起,语音识别取得显著的进步,基于深度学习的语音技术不仅从实验室走向了市场,更得到了谷歌、微软、百度及科大讯飞等众多科技公司的青睐。语音输入法、家用聊天机器人、医疗语音救助机、智能语音穿戴设备等具体的应用场景层出不穷。

    3.图像领域

    事实上,图像领域目前算是深度学习应用最为成熟的领域。也正是由于深度学习算法在ImageNet图像识别大赛中远超其他机器学习算法,以巨大优势夺魁,才推动了深度学习发展的第三次浪潮。目前,通过卷积神经网络(CNN)构建的图像处理系统能够有效地减小过拟合、很好地识别大像素数图像。融合GPU加速技术后,神经网络在实际中能够更好地拟合训练数据,更快、更准确地识别大部分的图片。总而言之,深度学习模型和图像处理技术的完美结合,不仅能够提高图像识别的准确率,同时还可以在一-定程度上提高运行效率,减少一定的人力成本。

    参考文章

    • 《TensorFlow从零开始学》
    展开全文
  • 深度学习入门之Pytorch

    2019-03-19 17:32:21
    深度学习入门之pytorch配套代码,完整无缺失,放在Linux系统下即可进行操作,复现作者的项目
  • 深度学习入门之PyTorch学习笔记绪论1 深度学习介绍2 深度学习框架2.1 深度学习框架介绍2.1.1 TensorFlow2.1.2 Caffe2.1.3 Theano2.1.4 Torch2.1.5 MXNet2.2 PyTorch介绍2.2.1 什么是PyTorch2.2.2 为何要使用PyTorch ...

    绪论

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

    1 深度学习介绍

    https://hulin.blog.csdn.net/article/details/107733777

    2 深度学习框架

    2.1 深度学习框架介绍

    • 在深度学习的初级阶段,每个深度学习研究者都需要写大量的重复代码。为了提高工作效率,这些研究者就将代码写成一个框架,放在网上供所有研究者一起使用,最好用的几个框架被大量使用而流行起来。

    2.1.1 TensorFlow

    • Google开源的TensorFlow是一款使用C++语言开发的数学计算软件,使用数据流图(Data Flow Graph)的形式进行计算。图中的结点代表数学运算,图中的数组表示多维数组(Tensor)之间的交互。
    • TensorFlow灵活的架构可以部署在一个或多个CPU和GPU服务器中,或者使用单一的API应用在移动设备中。
    • TensorFlow是目前全世界使用人数最多、社区最为庞大的一个框架,维护与更新较频繁,并且有Python和C++的接口,很多论文的复现都是基于TensorFlow写的。
    • 目前有很多基于TensorFlow的第三方抽象库,将TensorFlow的函数进行封装,使其变得简洁,比较有名的有:Keras,Tflearn,tfslim,TensorLayer。

    2.1.2 Caffe

    • Caffe由加州大学伯克利的贾扬清所开发,是一个清晰而高效的开源深度学习框架,目前由伯克利视觉中心维护。
    • Caffe对于卷积网络的支持特别好,也是用C++开发的,但并没有提供Python接口,目前只提供了C++的接口

    2.1.3 Theano

    • Theano于2008年诞生于蒙特利尔理工学院,派生出大量的深度学习的python软件包,最著名的包括Blocks和Keras。
    • Theano的核心是一个数学表达式的编译器,是为机器学习中处理大型神经网络算法所需的计算而专门设计的。

    2.1.4 Torch

    • Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于FaceBook开源了大量Torch的深度学习模块和扩展。
    • Torch的特点在于特别灵活,但是另外一个特殊之处在于采用了Lua编程语言,增加了学习Torch框架的成本。
    • PyTorch的前身是Torch,其底层和Torch框架一样,但使用Python重写了很多内容,不仅更加灵活,支持动态图,也提供了Python接口。

    2.1.5 MXNet

    • MXNet是亚马逊的官方框架,作者是李沐,有着非常好的分布式支持,性能特别好,占用显存低,其开放的语言接口有Python、C++、R、Matlab、JavaScript等。

    2.2 PyTorch介绍

    2.2.1 什么是PyTorch

    • PyTorch与Torch的不同之处在于使用了Python作为开发语言,不仅能够实现强大的GPU加速,同时还支持动态神经网络,现在很多主流框架(如TensorFlow等)都不支持。
    • PyTorch既可以看作是加入GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。

    2.2.2 为何要使用PyTorch

    • 掌握一个框架并不能一劳永逸,现在深度学习并没有谁拥有绝对的垄断地位,只学习TensorFlow是不够的。
    • TensorFlow和Caffe都是命令式的编程语言,而且是静态的,首先必须构建一个神经网络,然后一次又一次的使用同样的结构。如果想要改变网络的结构,就必须从头开始。但是对于PyThorch,通过一种反向自动求导技术,可以零延迟的改变神经网络结构,获得最高的速度和最佳的灵活性。
    • PyTorch的设计思路是线性、直观且易于使用的,不会再Debug的时候,因为错误的指向或者异步和不透明的引擎浪费太多的时间。PyTorch的代码相对TensorFlow而言,更加简洁直观。同时对于TensorFlow高度工业化的很难看懂的底层代码,PyTorch的源代码较友好。
    • PyTorch的特点。
      (1)支持GPU。
      (2)动态神经网络。
      (3)Python优先。
      (4)命令式体验。
      (5)轻松扩展。

    2.3 配置PyTorch深度学习环境

    https://hulin.blog.csdn.net/article/details/107764754

    参考资料

    1. 廖星宇《深度学习入门之PyTorch》电子工业出版社
    展开全文
  • 这里写自定义目录标题1 深度学习入门什么是深度学习深度学习流程深度学习可以解决的什么问题参考文献 1 深度学习入门 什么是深度学习 深度学习是机器学习与神经网络、人工智能、图形化建模、优化、模型识别和信号...
  • 深度学习入门 深度学习入门之一:深度学习引言 深度学习入门之二:神经网络基础 深度学习入门之三:求导和计算图 深度学习入门之四:向量化 深度学习入门之五:神经网络的编程基础 深度学习入门之六:浅层神经网络 ...
  • 内含两个课件,知识图谱学习入门与进阶,深度学习入门与进阶,由浅入深的知识体系讲解,知识图谱学习和深度学习的精品教材
  • 深度学习入门路线

    2018-09-26 09:01:39
    下面给出深度学习入门每一部分的主题和详细链接。 二、深度学习入门篇 第一部分:感知机部分 零基础入门深度学习-感知机 第二部分:线性单元和梯度下降 零基础入门深度学习-线性单元和梯度下降 第三部分:神经...
  • 深度学习入门之PyTorch学习笔记绪论 绪论 深度学习如今已经称为科技领域最炙手可热的技术,帮助你入门深度学习。 本文从机器学习与深度学习
  • Pytorch深度学习入门

    千次阅读 多人点赞 2018-12-08 21:03:37
    title: Pytorch深度学习入门 mathjax: false date: 2018-12-06 12:34:12 categories: - 深度学习 tags: - 深度学习 - Pytorch 在本教程中,将使用PyTorch框架介绍深度学习,并通过一个案例进行实验,通过本教程,你...
  • 非常适合深度学习入门深度学习入门目录如下: 第1章 Python入门 第2章 感知机 第3章 神经网络 第4章 神经网络的学习 第5章 误差反向传播法 第6章 与学习相关的技巧 第7章 卷积神经网络 第8章 深度...
  • 深度学习入门及如何转型AI领域

    千人学习 2017-09-20 19:26:16
    深度学习入门转型视频教程,该课程主要告诉开发者如何快速入门深度学习。讲师是在机器学习,深度学习神经网络领域多年开发研究经验,精通算法原理与编程实践。曾完成过多项图像识别,目标识别,语音识别的实际项目,...
  • 深度学习入门笔记

    2019-10-19 10:59:01
    我这里做一个桥梁作用:深度学习入门笔记,写的非常好的文章。
  • 深度学习入门书籍和资源

    千次阅读 2019-05-11 10:34:41
    深度学习入门书籍和资源 今天为大家提供一些机器学习和深度学习的入门书籍和资源。秉着贪多嚼不烂的原则,我各自介绍3本机器学习和3本深度学习的书籍(只选最好的),以及NLP和CV各自的经典课程。 机器学习: 1、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,447
精华内容 7,778
关键字:

深度学习入门