阿尔法狗让深度学习登上了数据科学世界的巅峰。深度学习成为了当今最热门的话题之一,但对于大多数人来讲,这是一个陌生而又神秘的学科。不少人认为,深度学习就是包括了大量的数学和统计知识。html
本文列举了常见的12个深度学习的问题。python
1.什么是深度学习?为何它会如此受欢迎?git
深度学习做为机器学习的典范,近年来已经显示出了广阔的前景。这是由于深度学习与人类大脑的功能很类似。人脑是迄今为止最通用、最有效的自我学习模型。让咱们从下面的例子中更好的理解深度学习模型的特色:github
你在上图中看到了什么?很明显,“一辆车”。尽管图中也有沙子、绿叶、云彩等,但大脑会将这张图标记为一辆汽车。这是由于咱们的大脑已经学会识别图像中的主要对象。面试
深度学习的特殊之处就在于从大量无关数据中获取有用信息。随着如今生成数据量的增长,咱们但愿模型可以更好地处理更多数据,深度学习模型变得更好。算法
尽管深度学习已经出现多年,但其重大突破仅仅在近几年才实现。这其中有两个主要缘由,首先是数据量的增长,以下图所示;其次是模型所需的硬件资源的增加,做为运行深度学习模型的GPU,处理速度更快,容许咱们在更少的时间内构建更大更深的深度学习模型。编程
2.深度学习只是一种炒做,仍是有真实的应用程序?数组
如今,深度学习已经在不少实际中获得应用:从Netflix著名的电影推荐系统到Google的无人驾驶,从创造艺术和文学写做到创造现实生活中的钱,都在使用深度学习模型。所以,若是说它只是一个炒做,这是错误的。网络
目前,深度学习的一些主要应用有:架构
(1)Google一次性将文本翻译成数百种语言,经过一些应用于天然语言处理任务的深度学习模型实现。
(2)Siri、Alexa、Cortana等智能会话代理经过LSTM和RNN来简化语音识别技术,语音命令打开了一个全新的领域。
(3)计算机视觉领域的应用,例如OCR(光学字符识别)和实时语言翻译。
(4)Snapchat和Instagram等多媒体共享应用程序进行面部特征检测。
(5)医疗领域的应用,用来定位恶性细胞和其余异物,检测疾病。
然而,因为训练深度学习模型所需的标记数据并不容易得到,所以一些人认为深度学习是一种炒做。即便数据可用,训练这些模型所需的计算设备也不便宜。所以人们没法体验到深度学习的力量,并将其视为炒做。
3.深度学习与机器学习有什么区别?
(1)数据依赖性
两者之间最主要的区别与数据的规模有关。当数据很小时,深度学习表现通常,而传统的机器学习表现较好;随着数据量的增长,深度学习的性能则远远高于机器学习。以下图所示。
(2)特征工程
特征工程是一个将原始图像放入特征提取器的建立过程,下降数据复杂性,并使数据更适合于学习算法。这一过程比较耗时、花费较大。
机器学习中,大部分应用特征须要由专家识别,再根据域和数据类型进行手动编码深度学习的独特之处在于从数据中学习高级特征,也是传统机器学习领域的一大进步。所以,深度学习减小了为每一个问题开发新的特征提取器的任务。
(3)可解释性
解释性做为机器学习和深度学习的比较因素。
假设使用深度学习给散文自动评分,并接近人类的表现,但没有揭示为何它给出了这个分数。而像决策树这样的机器学习算法能够解释其背后的推理。所以,决策树和线性逻辑回归等算法主要用于解释性行业。
4.深度学习的先决条件是什么?
在进行深度学习前,你须要了解如下知识:数学:几率、导数、线性代数等。统计:统计的基础知识是进行任何机器学习问题所必需的。工具:具备必定程度的编码技巧。机器学习:机器学习是深度学习的基础。在学习深度学习前,必定要理解机器学习的概念。更多详细信息请看:Python入门深度学习的完整指南
4.在深度学习领域是否须要得到博士学位?
博士学位不是必须品,任何工做重点一般是展现你的能力,而不是学位自己。可是,若是你选择在特定领域(如NLP语言学)进行博士深造,确定会是个加分项。
5.选择哪些工具/语言构建深度学习模型?
Python具备强大的机器学习生态系统,该系统由开发人员和编码人员组成,他们为python用户提供开源库和技术支持。这使开发人员为各类算法编写复杂代码的任务变得更加容易,而且更易于实施和实验。
另外,Python是一种可用于开发和实现的通用编程语言。这极大地简化了从开发到实现的过渡。也就是说,一个能够预测机票价格的深度学习模型不只能够用python开发,还能够用一样的形式附在网站上。
除此以外,我建议初学者使用像Keras这样的高级库,对算法中隐藏的没必要要信息进行抽象,并容许访问能够调整的参数,使实验简化且提升模型性能。
在R、Julia、C ++和Java等深度学习领域,除了Python以外,还有其余的语言。你也能够关注TensorFlow、Pytorch、Caffe二、DL4J等的发展,将他们做为库的替代品。
若是不熟悉编程,还有一些基于GUI的软件,不须要编码,就能够构建深度学习模型,如Lobe或Google的AutoML等。
6.为何构建深度学习模型须要使用GPU?
深度学习模型有两个主要的操做:前向传递和后向传递。
前向传递将输入数据经过神经网络后生成输出;后向传递根据前向传递获得的偏差来更新神经网络的权重。
其本质上都是矩阵乘法,简单的矩阵乘法以下图所示。
在这里,咱们能够看到第一个数组的行与第二个数组的列元素分别相乘。所以,在神经网络中,咱们能够将第一个矩阵视为神经网络的输入,第二个矩阵能够视为网络的权重。
这彷佛是一个简单的任务。VGG16(在深度学习应用中常用16个隐藏层的卷积神经网络)大约具备1.4亿个参数,又称权重和偏见。想一想你须要作的矩阵乘法,若是咱们用传统的方法,训练这种系统须要几年的时间。
神经网络的计算密集部分由多个矩阵乘法组成。那么如何才能更快?
咱们能够简单地经过同时执行全部操做,而不是一个接一个地执行。这就是为何咱们要使用GPU(图形处理单元)而不是CPU(中央处理单元)来训练神经网络的缘由。
7.什么时候(何处)应用神经网络?
首先,深度学习模型须要清晰且丰富的数据来训练。将深度学习想象为一个孩子。它首先观察其父母如何走路。而后试图独立行走,而且每走一步,孩子都会学习如何执行特定的任务。通过几回不成功的尝试后,它会学习如何走路。
其次,对于图像处理等复杂问题使用深度学习须要很谨慎。深度学习算法属于表示学习算法。这些算法将复杂问题分解为更简单的形式以便理解(或“可表示”)。对于传统的算法来讲,这将更困难。
硬件要求对于运行深度神经网络模型也相当重要。神经网络好久之前就被“发现”了,但近年来得以成功实现,硬件资源更增强大也是其主要缘由。
8.是否须要大量数据来训练深度学习模型?
咱们确实须要大量的数据来训练深度学习模型,但也能够经过迁移学习来克服数据量不大这一障碍。
训练深度学习模型所需的一些数据以下所示:
即便数据量不大,针对特定任务进行训练的深度学习模型也能够重用于同一个域中的不一样问题,这种技术被称为迁移学习。
9.哪里能够找到一些基本的深度学习项目用来练习?
我强烈建议初学者使用MNIST数据,该数据集包含手写数字及其实际标签,即数字从0到9。
对于中级用户来讲,这个 Age Detection竞赛是一个不错的项目,该数据集由印度电影演员的面部图像组成,任务是根据面部属性预测年龄。为了简单起见,这个问题已被转换为类,如青年、中年和老年等多个类问题。
10.深度学习的一些免费学习资源有哪些?
(1)图像处理学习资源
(2)序列预测/时间序列学习资源
(3)天然语言处理
11.深度学习的相关面试问题有哪些?
(1)深度学习模型如何学习?
(2)深度学习模型有哪些局限性?
(3)前馈神经网络和递归神经网络之间有什么区别?
(4)什么是激活特征函数?
(5)什么是CNN,它有什么用途?
(6)什么是池化? 简述其工做原理。
(7)什么是dropout层,为何要用dropout层?
(8)什么是消失梯度问题,如何克服?
(9)什么是优化函数?说出几个常见的优化函数。
更多面试问题以下:
12.深度学习的将来是什么?
近年来,深度学习已经取得了很大的进步,但仍有很大的潜力。在不久的未来,深度学习将成为每一个数据科学实践者所需的技能。事实上,如今有一个岗位是“深度学习工程师”——负责部署和维护该公司各部门使用的深度学习模型。毋庸置疑,这个职位在将来将会有很大的需求。
目前,深度学习的局限之一在于:须要符合人类的要求。它须要大量的数据进行学习,这也引发了不少偏见。但随着时间的推移,这种偏见将会逐渐被消除。