作者 | CraigStedman
编译 | CDA数据科学研究院
深度学习是机器学习(ML)和人工智能(AI)的一种,它模仿人类获取某些类型的知识的方式。深度学习是数据科学的重要元素,其中包括统计和预测模型。对于负责收集,分析和解释大量数据的数据科学家而言,这是极为有益的。深度学习使此过程更快,更轻松。
从最简单的角度讲,可以将深度学习视为自动化预测分析的一种方式。尽管传统的机器学习算法是线性的,但深度学习算法却以越来越复杂和抽象的层次结构堆叠在一起。
要了解深度学习,请想象一个第一个单词是dog的小孩。幼儿通过指向物体并说出“ 狗 ”一词来了解狗是什么—不是狗。父母说:“是,那是狗”,或者:“否,那不是狗”。随着幼儿继续指向物体,他逐渐意识到所有狗所具有的特征。幼儿在不知情的情况下通过建立层次结构来阐明复杂的抽象概念(狗的概念),在层次结构中,每个抽象层次都是使用从层次结构的上一层获得的知识来创建的。
使用深度学习的计算机程序所经历的过程与蹒跚学步的学习来识别狗的过程几乎相同。层次结构中的每个算法都对其输入应用非线性变换,并使用其学习的知识来创建统计模型作为输出。迭代一直持续到输出达到可接受的精度水平为止。数据必须经过的处理层数是促使标签产生深刻影响的原因。
在传统的机器学习中,学习过程是受监督的,并且程序员在告诉计算机应寻找哪种类型的事物以决定图像包含狗还是不包含狗时,必须非常具体。这是一个费力的过程,称为*特征提取,*计算机的成功率完全取决于程序员为“狗”准确定义特征集的能力。深度学习的优势是程序无需监督即可自行构建功能集。无监督学习不仅更快,而且通常更准确。
最初,计算机程序可能会提供训练数据-一组图像,人类已经为这些图像使用元标签将每个图像标记为“狗”或“非狗” 。该程序使用从训练数据中接收到的信息来创建“狗”的功能集并建立预测模型。在这种情况下,计算机首先创建的模型可能会预测图像中具有四只腿和一条尾巴的任何东西都应标记为“狗”。当然,该程序不知道标签“四腿”或“尾巴”。它将仅查找数字数据中的像素模式。每次迭代,预测模型都会变得更加复杂和准确。
与需要花费数周甚至数月才能了解“狗”概念的幼儿不同,可以向使用深度学习算法的计算机程序显示一个训练集,并对数百万张图像进行分类,以准确识别其中包含狗的图像。
为了达到可接受的精度水平,深度学习程序需要访问大量的培训数据和处理能力,在大数据和云计算时代之前,程序员都无法轻松获得这两种数据。因为深度学习编程可以直接从其自己的迭代输出中创建复杂的统计模型,所以它能够从大量未标记,未结构化的数据中创建准确的预测模型。这一点很重要,因为物联网(IoT)继续变得越来越普及,因为人类和机器创建的大多数数据都是非结构化的,并且没有标签。
一种高级的机器学习算法,称为人工神经网络,是大多数深度学习模型的基础。结果,深度学习有时可能被称为深度神经学习或深度神经网络。
神经网络有几种不同的形式,包括递归神经网络,卷积神经网络,人工神经网络和前馈神经网络-每种都有针对特定用例的好处。但是,它们都以某种相似的方式发挥作用,通过输入数据并让模型自己确定模型是否对给定的数据元素做出了正确的解释或决策。
神经网络涉及反复试验的过程,因此它们需要大量的数据进行训练。仅在大多数企业接受大数据分析并积累大量数据存储之后,神经网络才流行起来,这并非巧合。由于模型的前几次迭代涉及对图像或语音部分的内容进行过某种程度的猜测,因此必须标记训练阶段使用的数据,以便模型可以查看其猜测是否准确。这意味着,尽管许多使用大数据的企业拥有大量数据,但非结构化数据的帮助较小。非结构化数据只有经过训练并达到可接受的准确性水平,才能通过深度学习模型进行分析,但是深度学习模型无法对非结构化数据进行训练。
可以使用各种不同的方法来创建强大的深度学习模型。这些技术包括学习率衰减,迁移学习,从头开始和辍学训练。
**学习率下降。**学习速率是一个超参数-一个在学习过程之前定义系统或为其系统设置条件的因素-每次更改模型权重时,该模型将控制模型对响应于估计误差的变化量。太高的学习率可能会导致训练过程不稳定或无法获得最佳的权重。太小的学习率可能会导致冗长的培训过程,从而有可能被卡住。
学习速率衰减方法-也称为学习速率退火或自适应学习速率-是调整学习速率以提高性能并减少训练时间的过程。训练过程中最简单,最常见的学习率调整包括随时间降低学习率的技术。
**转移学习。**这个过程涉及完善先前训练过的模型;它需要一个到现有网络内部接口。首先,用户向现有网络提供包含以前未知分类的新数据。一旦对网络进行了调整,就可以使用更具体的分类功能执行新任务。这种方法的优点是所需数据比其他方法少得多,从而将计算时间减少到数分钟或数小时。
**从头开始训练。**此方法要求开发人员收集大标签的数据集并配置可以学习功能和模型的网络体系结构。该技术对于新应用程序以及具有大量输出类别的应用程序特别有用。但是,总的来说,这是一种不太常见的方法,因为它需要大量的数据,导致培训需要几天或几周的时间。
**退出。**该方法试图通过在训练过程中从神经网络中随机删除单元及其连接来解决具有大量参数的网络的过拟合问题。已经证明,辍学方法可以提高神经网络在语音识别,文档分类和计算生物学等领域的监督学习任务上的性能。
由于深度学习模型以类似于人脑的方式处理信息,因此它们可以应用于人们执行的许多任务。目前,深度学习已用于大多数常见的图像识别工具,自然语言处理和语音识别软件中。这些工具开始在自动驾驶汽车和语言翻译服务等各种应用程序中出现。
如今,深度学习的用例包括所有类型的大数据分析应用程序,尤其是那些侧重于自然语言处理,语言翻译,医学诊断,股市交易信号,网络安全和图像识别的应用程序。
当前正在使用深度学习的特定领域包括:
深度学习模型的最大局限性在于它们通过观察来学习。这意味着他们只知道他们所训练的数据中包含的内容。如果用户的数据量很少或来自某个特定来源(不一定代表更广泛的功能区域),则模型将无法以可推广的方式学习。
偏差问题也是深度学习模型的主要问题。如果模型训练包含偏差的数据,则该模型将在其预测中重现这些偏差。对于模型深度学习的程序员来说,这是一个令人头疼的问题,因为模型会根据数据元素的细微变化来学习区分。通常,程序员所确定的因素往往很重要。这意味着,例如,面部识别模型可能会基于种族或性别等事物来确定人的性格,而程序员不会意识到。
学习率也可能成为深度学习模型的主要挑战。如果速率太高,则该模型将收敛太快,从而产生次优解决方案。如果速率太低,则该过程可能会卡住,甚至很难找到解决方案。
深度学习模型的硬件要求也会造成限制。需要多核高性能图形处理单元(GPU)和其他类似的处理单元,以确保提高效率和减少时间消耗。但是,这些单元价格昂贵并且消耗大量能量。其他硬件要求包括随机存取存储器(RAM)和硬盘驱动器或基于RAM的固态驱动器(SSD)。
其他限制和挑战包括:
深度学习是机器学习的一个子集,它通过解决问题的方式与众不同。机器学习需要领域专家来识别大多数应用功能。另一方面,深度学习会逐步学习特征,从而消除了对领域专业知识的需求。这使得深度学习算法的训练时间比机器学习算法要长得多,机器学习算法只需要几秒钟到几小时。但是,在测试期间反之亦然。深度学习算法运行测试所需的时间比机器学习算法要少得多,后者的测试时间随数据量的增加而增加。
此外,机器学习不需要像深度学习那样昂贵的高端机器和高性能GPU。
最后,由于其卓越的可解释性或理解解决方案的能力,许多数据科学家选择传统的机器学习而非深度学习。当数据较小时,机器学习算法也是首选。
深度学习变得更可取的情况包括:数据量大,特征自省或对诸如语音识别和自然语言处理之类的复杂问题缺乏领域理解的情况。
深度学习的历史可以追溯到1943年,当时Warren McCulloch和Walter Pitts使用数学和算法为神经网络创建了一个计算模型。但是,直到2000年代中期才出现“深度学习”一词。在Geoffrey Hinton和Ruslan Salakhutdinov发表论文之后,它得到了普及,该论文显示了如何一次训练多层神经网络。
2012年,Google的算法揭示了识别猫的能力,从而在深度学习方面给人留下了深刻的印象。两年后的2014年,谷歌从英国收购了人工智能初创公司DeepMind。两年后,2016年,谷歌DeepMind的算法AlphaGo掌握了复杂的棋盘游戏Go,在汉城的一场比赛中击败了职业玩家Lee Sedol。
最近,深度学习模型已在人工智能领域产生了大部分进步。深度强化学习已经成为一种将AI与复杂的应用程序集成的方法,例如机器人技术,视频游戏和自动驾驶汽车。深度学习与强化学习之间的主要区别在于,深度学习从训练集学习,然后将学到的知识应用于新的数据集,而深度强化学习则通过使用连续反馈调整动作来动态学习,以优化奖励。
强化学习代理具有提供对生成对抗网络(GAN)的快速而强大的控制的能力。对抗阈值神经计算机(ATNC)将深度强化学习与GAN结合在一起,以设计具有特定的所需药理学性质的有机小分子。