阿尔法狗让深度学习登上了数据科学世界的巅峰。深度学习成为了当今最热门的话题之一,但对于大多数人来说,这是一个陌生而又神秘的学科。很多人认为,深度学习就是包括了大量的数学和统计知识。
本文列举了常见的12 个深度学习的问题。
1. 什么是深度学习?为什么它会如此受欢迎?
深度学习作为机器学习的典范,近年来已经显示出了 广阔的前景。这是因为深度学习与人类大脑的功能很相似。人脑是迄今为止最通用、最有效的自我学习模型。让我们从下面的例子中更好的理解深度学习模型的特点:
你在上图中看到了什么?很明显,“ 一辆车 ”。 尽管图中也 有沙子、 绿叶、 云彩等 ,但大脑会 将这张图标记为一辆汽车 。这是因为我们的大脑已经学会识别图像中的主要对象。
深度学习的特殊之处就在于从大量无关数据中获取有用信息。 随着现在生成 数据量的增加,我们希望模型能够更好地处理更多数据, 深度学习模型变得更好。
尽管深度学习已经出现 多年,但其 重大突破仅仅在近几年 才实现 。这其中有两个 主要原因,首先是 数据量的 增加,如下图所示; 其次是模型所需的硬件资源的增长,作为 运行深度学习模型的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、Caffe2、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. 深度学习的未来是什么?
近年来,深度学习已经 取得了很大的进步 ,但仍有很大的潜力 。在不久的将来,深度学习将成为每个数据科学实践者所需的技能。事实上,现在有一个岗位是“ 深度学习工程师 ”—— 负责部署和维护该公司各部门使用的深度学习模型。毋庸置疑,这个职位在未来将会有很大的需求 。
目前,深度学习 的局限之一在于:需要符合人类的要求 。它需要大量的数据进行学习,这也引起了很多偏见 。但 随着时间的推移,这种偏见将会逐渐被消除。
以上为译文。
本文由北邮@爱可可-爱生活 老师推荐, 阿里云云栖社区 组织翻译。
文章原标题《12 Frequently Asked Questions on Deep Learning (with their answers)!》,译者:Mags,审校:袁虎。
文章为简译,更为详细的内容,请查看原文。