深度学习(Deep Learning)是机器学习 (Machine Learning) 的一个子集,它使用人工神经网络(Artificial Neural Network)来对大量数据进行复杂的计算。这类算法模仿了人类大脑的结构与功能,并拥有很强的学习能力、场景适应力与可移植性。
受益于大数据时代越来越丰富的数据与越来越高机器计算能力,深度学习逐渐在各个应用场景里大放异彩,为许多传统企业减少大量重复作业的人力成本,也为初创企业提供存在巨大潜力的创新维度。
近年来比较热门的技术大多包含深度学习的身影,比如自动驾驶、计算机视觉(人脸识别,图像识别)、音频识别、自然语言处理、超级计算机、虚拟助手、农业作物自动辨别、制造业残缺点检测等等。甚至一些较为传统的场景中,深度学习(DL)也因其更高的精准度替代了部分传统机器学习(ML)模型,比如反欺诈技术(Fault Detection),客户关系管理,自动化客户服务,电子商务与投资建模。
还有一些新奇的创新应用,比如 Google Colab 发布的 Disco Diffusion AI绘画,与来自麻省理工的 Affectiva “读心术”:通过计算机视觉算法识别面部特征来识别情绪。
如此丰富的应用场景,必然不会只用单一的算法就能满足。深度学习(DL)的神经网络模型在学术与工业界的共同推动下,得到快速迭代发展,进化出数十种不同算法,适用执行不同的任务。而在场景中如果能选择到最合适的算法,往往能带来最大的收益。
为了帮助各位读者了解不同算法的不同应用,下面我们对常用的九种不同深度学习算法进行简单介绍,并在结尾探讨不同条件下应该使用深度学习(DL)还是机器学习(ML):
| 1. 多层感知器 Multilayer Perceptrons (MLPs)
MLP是最简单且‘原汁原味’的神经网络,它由全连接的输入层、隐层和输出层组成,适用图像分类,语音识别等,是深度学习最基础的模型。
| 2. 卷积神经网络 Convolutional Neural Networks (CNNs)
CNN通常适用于图像识别,它由许多层神经网络组成,通过其中的卷积层(convolutional layer)对输入内容的每一块小区域进行特征提取,得到不同维度或进行拉伸压缩等操作后的特征;再用池化层模仿人类视觉系统对视觉输入对象进行数据降维,如此不仅能减少计算的数据量级,也能避免过度拟合。
一般图像分类、图像识别、视频识别等都会用到CNN来处理。
| 3. 循环神经网络 Recurrent Neural Networks (RNNs)
相比较普通的神经网络,RNN最大的不同是能将上一次输出的结果一起代入下一次计算中进行共同训练,因此它更加擅长处理内部紧密依赖的‘序列数据’(例如文本、音频等)。
常用于自然语言处理的应用中,如文本生成、机器翻译、音视频标记,或是数据间连接紧密的股票走向预测等。
| 4. 长短期记忆网络 Long Short Term Memory Networks (LSTMs)
LSTM是一种特殊的RNN,它在设定中默认能记住长期特性,所以很适合学习长期依赖性,常常用于时间序列预测与语音识别等场景。
| 5. 生成对抗网络 Generative Adversarial Networks (GANs)
GANs是生成性的深度学习算法,由生成虚假数据的‘生成器’与辨别信息真假的‘辨别器’组成。它能够创造与训练数据相似的新数据实例,如人脸照片生成与3D渲染,便是它的常见应用。
GAN在未来游戏方向很有发展前景,但同时它也需要十分强大的硬件支持。
| 6. 受限波尔兹曼机 Restricted Boltzmann Machines( RBMs)
RBM是一种随机生成的神经网络,由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。
可通过输入数据集学习概率分布,常用于降维(隐层少一点)、分类、回归、特征学习(隐层输出就是特征)与主题建模等场景。
| 7. 深度信念网络 Deep Belief Networks (DBNs)
DBN是由多个受限玻尔兹曼机组成,常被用于视频识别与运动数据捕捉。
| 8. 自组织图 Self Organizing Maps (SOMs)
SOM是一种无监督人工神经网络,能将高维空间中的数据降维,形成低维的离散映射,常用于复杂数据可视化,帮助人们更好地理解数据。
| 9. 自动编码器Autoencoders
自动编码器也是一种无监督的神经网络模型,它可以学习数据的隐藏特征,并以此对数据进行编码或解码,常用于特征提取或数据降维,被视为PCA的上位替代。
结语:
九种算法的适用场景和功能都存在着差异,多层感知器、卷积神经网络多用于图像处理;生成对抗网络、受限波尔兹曼机、自组织图、自动编码器适用于数据的处理;循环神经网络、长短期记忆网络则适用于音频的处理。
深度学习(DL)在实业中的应用有效解决了许多传统机器学习难以处理的问题,比如音视频的处理与更精准的预测、分类结果;同时,有趣的创意与深度学习的碰撞,往往能迸发出精彩的产品。但我们作为产品与技术的协助者,为了客户着想,偶尔需要“劝退”一些客户初创对深度学习的渴望:
没有任何一种算法是完美的,深度学习(DL)亦是如此。相比传统机器学习(ML),它需要更大量的训练数据、也需要GPU的支持、以及较长时间的训练与调整,也意味着更高的投入(获取数据、模型training与fine-tune、模型表现维护、时间成本与人力成本等)。部分场景可以直接选用已经pre-train好的模型,比如NLP的BERT和GPT3,这些pre-train模型只需要少量数据对模型微调(fine-tune),即可获得很好的表现。
但即便如此,微调所需的数据量通常也比传统机器学习模型更大。同时传统机器学习模型拥有更良好的解释性,且快速便捷,有时会更适合需要快速迭代的原型机。
所以当初创企业数据资产还不够丰富时,可以优先使用pre-train模型,或考虑传统机器学习能否满足早期功能,并在此基础上建立向深度学习模型平缓过度的计划。