干货整理| 深度学习入门知识

一、深度学习的定义
深度学习(Deep Learning),简称:DL,是一种实现机器学习的技术。

人工智能(AI)的概念是在1955 年提出的;机器学习(ML)概念是在1990 年提出的;而深度学习(DL)概念是在 2010 年提出的。
在这里插入图片描述

深度学习包含于机器学习,而机器学习又包含于人工智能。也就是说,深度学习包含于人工智能。

人工智能是目的,是结果;深度学习、机器学习是方法,是工具。

在这里插入图片描述

深度学习的定义:

“一种机器学习的形式,使计算机能够从经验中学习并以概念层次结构的方式理解世界。”(Goodfellow 等,麻省理工学院出版社,Deep Learning)

二、深度学习的技术原理

深度学习的概念就源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

神经网络是一组粗略模仿人类大脑,用于模式识别的算法。神经网络这个术语来源于这些系统架构设计背后的灵感,这些系统是用于模拟生物大脑自身神经网络的基本结构,以便计算机能够执行特定的任务。

在这里插入图片描述

普通的神经网络可能只有几层,深度学习可以达到十几层。深度学习中的深度二字也代表了神经网络的层数。现在流行的深度学习网络结构有"CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的等。现在流行的深度学习框架有MXnet,tensorflow,caffe等,而在这些框架之上(或许不太准确),还有PyTorch,Keras等。

神经元分为三种不同类型的层次:

输入层接收输入数据。

隐藏层对输入数据进行数学计算。

人工神经网络的输出层是神经元的最后一层,主要作用是为此程序产生给定的输出。

从X1/X2/X3输入到输出的过程,定义了一个层次的概念,譬如上图就包括四层,包含最左边的输入层,和最右边的输出层。如果这是一道选择题的话,那么题目就是输入层,而ABCD的选择结果就是输出层,如上图的L1和L2分别是输入层和输出层。

而选择题解题的过程是不写出来的,我们叫做”隐藏层“,这里L2和L3就是隐藏层,题目越难,给出的信息可能是越多的,而解题所需要的过程就越复杂的,也就可能需要更多的”隐藏层“来计算最终的结果。

最终要来解释什么是深度学习的”深度“了,就是从”输入层“到”输出层“所经历层次的数目,即”隐藏层“的层数,层数越多,板凳的深度也越深。所以越是复杂的选择问题,越需要深度的层次多。例如,AlphaGo的策略网络是13层,每一层的神经元数量为192个。

总结一句话,深度学习就是用多层次的分析和计算手段,得到结果的一种方法。深度学习是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术。

三、深度学习的优缺点及应用

基于深度神经网络的端到端学习在最近几年取得很大的成功,被大量应用与计算机视觉、语音识别、自然语音处理、医学图像处理等领域中。

优点:深度学习能让计算机自动学习出模式特征,并将特征学习的特征融入到建模的过程中,从而减少了人为设计特征造成的不完备性。而目前有些深度学习,已经达到了超越现有算法的识别或分类性能。

缺点:需要大数据支撑,才能达到高精度。由于深度学习中图模型比较复杂,导致算法的时间复杂度急剧提升,需要更好的硬件支持。因此,只有一些经济实力比较强大的科研机构或企业,才能够用深度学习来做一些前沿而实用的应用。

现在,经过深度学习训练的图像识别,在一些场景中甚至可以比人做得更好:从识别猫,到辨别血液中癌症的早期成分,到识别核磁共振成像中的肿瘤。

很多大牛和公司都在深度学习领域探索,并取得了非常多不错的成果。比如Google通过YouTube上的视频训练出了“猫”,微软借助对语言的学习在skype上实现了自动语言翻译器,每年ImageNet上也有很多成果。

在国内,深度学习也有了落地性的行业应用:

语音识别技术:智能音箱等产品。

图像识别技术:面部识别,人脸识别,刷脸解锁、支付等。

自动驾驶技术:百度等公司开发的自动驾驶技术。

金融领域的如:预测股价、医疗领域的疾病监测,教育领域的技术赋能等。

四、深度学习如何入门?

在进行深度学习前,你需要了解以下知识:数学:概率、导数、线性代数等。

统计:统计的基础知识是进行任何机器学习问题所必需的。

工具:具有一定程度的编码技巧。

机器学习:机器学习是深度学习的基础。

在学习深度学习前,一定要理解机器学习的概念。

在语言的选择上,Python具有强大的机器学习生态系统,该系统由开发人员和编码人员组成,他们为python用户提供开源库和技术支持。这使开发人员为各种算法编写复杂代码的任务变得更加容易,并且更易于实施和实验。

另外,Python是一种可用于开发和实现的通用编程语言。这极大地简化了从开发到实现的过渡。也就是说,一个可以预测机票价格的深度学习模型不仅可以用python开发,还可以用同样的形式附在网站上。

建议初学者使用像Keras这样的高级库,对算法中隐藏的不必要信息进行抽象,并允许访问可以调整的参数,使实验简化且提高模型性能。

在R、Julia、C ++和Java等深度学习领域,除了Python之外,还有其他的语言。你也可以关注TensorFlow、Pytorch、Caffe2、DL4J等的发展,将他们作为库的替代品。

如果不熟悉编程,还有一些基于GUI的软件,不需要编码,就可以构建深度学习模型,如Lobe或Google的AutoML等。

近年来,深度学习已经取得了很大的进步,但仍有很大的潜力。在不久的将来,深度学习将成为每个数据科学实践者所需的技能。

猜你喜欢

转载自blog.csdn.net/weixin_46880696/article/details/127885556