官方网站-首页官方网站-首页

EN

深度学习深几许

2025-01-08 17:53:12
来源:智能MOTOVIS

相信你一定听说过“深度学习”,它总是和人工智能一同出现,好像各种难以置信的AI成果都因为它。那么,“深度学习”到底是何方神圣?它与AI有什么关系?

改编一句台词,或许可以这样说:AI有那么多分支,其中一个叫机器学习;机器学习有那么多分支,历史偏偏选中了深度学习。

什么是机器学习?

以图像识别为例,把许多张猫和狗的图片喂给电脑,希望它像人一样正确判断出是猫还是狗(gǒu)。这种人类易于完成的任务由于难以形式化、逻辑化,需要经验,是计算机很难做到的。

现在,我们在猫的图片上标注“猫”,在狗的图片上标注“狗”,我们就拥有了一批“已标注数据”。我们希望机器能从这些数据中自己找到规律,总结出区分猫狗图片的办法,这就是机器学习的思想。

我们把喂给计算机的东西叫做“输入”,计算机给出的结果叫“输出”,那么,机器学习就是要让计算机找到输入和输出之间的一座最佳桥梁,从而对于输入有较准确的输出,这座桥梁可以看成是一个“函数”。

机(jī)器学习除了可以学习已标注数据(即“有监督学习”),还可以学习没有标注的数据(即“无监督学习”),比如聚类,但我们先不谈这个。

机器学习有很多种算法,其中对深度学习有重要意义的是“人工神经网络”,其典型例子是“多层感知机”(MLP)。人工神经网络的灵感来自于人脑神经元,但它与复杂的人类大脑仍有很多不同。

什么是人工神经网络?

解决复杂问题往往需要复杂的、非线性的函数(函数图像不是直线),简单的线性函数(函数图像为直线)最容易运用,却不能直接解决复杂问题,能不能将复杂的、非线性的函数用线性函数表达呢?

人工神经网络与深度学习有同样的思想:复杂函数可以用多个简单函数表示,是简单函数套简单函数套……一直套多个,从而化繁为简,由简至繁。

但是线性函数套线性函数,总归是线性的,所以最后要套上非线性函数,再输出。

以单个神经元为例,一个神经元接收来自多个方向的信号,每个信号都是一个输入x,但这一串x不是“平等”的,而是有的重要,有的不重要。这就像有一大叠文件,不能一股脑儿都给老板,要分轻重缓急,重要的放上面,不重要的放下面。我们给每个x都乘上一个数w,重要的x就乘大些的w,不重要的x就乘小些的。把这一串乘积全加起来,重要的x就在总和中占据重要地位,不重要的则相反。这一串w叫“权重”。

对神经元来说,不是所有信号都会通过神经细胞传输到后面的,而是要达到(dào)一(yī)定(dìng)的“阀值”才可以通过,信号就像一个跳高运动员,跳过了预定高度就晋级,否则止步。

所以,我们设定阀值b,让w乘x乘积的总和减去b,如果差大于零,则通过,否则输出零。

这个让信号“跳高”的函数叫“激活函数”,上面其实是举ReLU函数的例子,此外还有其他的激活函数。由于此前对x的操作都是线性的,再进行线性操作得到的还是x的线性函数,而不是我们想要的非线性函数,因此,激活函数一般是非线性的。

一般来说,人工神经网络会使用多个神经元完成任务,神经元会一层一层排列。一串x所处的层叫输入层,最后得到分类结果的层,叫输出层。对于已标注数据,我们只能知道输入层、输出层是什么样的,但在人工设计了需要多少层、每层几个神经元之后,中间各层的神经元上,w、b这些参数(shù)都(dōu)要(yào)机(jī)器(qì)去(qù)学(xué)出(chū)最(zuì)优(yōu)值(zhí),我(wǒ)们(men)一(yī)开(kāi)始(shǐ)并(bìng)不(bù)知(zhī)道(dào)最(zuì)终(zhōng)会(huì)是(shì)什(shén)么(me),于(yú)是(shì)这(zhè)些(xiē)神(shén)经(jīng)元(yuán)所(suǒ)在(zài)的(de)层(céng)统(tǒng)称(chēng)隐(yǐn)藏(cáng)层(céng)。

一(yī)串(chuàn)输(shū)入(rù)x在(zài)经(jīng)过(guò)一(yī)层(céng)神(shén)经(jīng)元(yuán)之(zhī)后(hòu),终(zhōng)于(yú)鱼(yú)跃(yuè)龙(lóng)门(mén),到(dào)达(dá)了(le)下(xià)一(yī)层(céng)。人(rén)工(gōng)神(shén)经(jīng)网(wǎng)络(luò)要(yào)求(qiú)神(shén)经(jīng)元(yuán)不(bù)可(kě)跨(kuà)层(céng)连(lián)接(jiē),不(bù)可(kě)以(yǐ)让(ràng)x在(zài)几(jǐ)个(gè)神(shén)经(jīng)元(yuán)间(jiān)走(zǒu)循(xún)环(huán)路。

那(nà)么(me),设(shè)计(jì)好(hǎo)人(rén)工(gōng)神(shén)经(jīng)网(wǎng)络(luò)之(zhī)后(hòu),怎(zěn)么(me)让(ràng)机(jī)器(qì)学(xué)会(huì)区(qū)分(fēn)猫(māo)狗(gǒu)呢(ne)?

把(bǎ)所(suǒ)有(yǒu)已(yǐ)标(biāo)注(zhù)图(tú)片(piàn)分(fēn)为(wèi)两(liǎng)类(lèi),大类叫“训练集”,小类叫“测试集”。训练集用来学习,测试集用来考试。如果学习之后,面对没学过的数据(没做过的题),准确率在要求范围内(考得好),那么就算学习成功。

刚才说了,从输入到输出,每个神经元有一串w,一个b,整个网络就有几串w,一串b,这些参数不靠人教,要机器根据已标注数据学出来。学习的过程,就是求出最佳参数的过程,从而得到最好的函数,也就是个优化问题,求最值。主流方法是梯度下降法,大概意思是:二元函数好比凹凸不平的跳跳床,如果在床的某个点上,跳跳床凹得最深,这个点就是我们要找的最小值点。从某个点开始,沿着一个方向移动,在这个方向上床变深的速度最快,我们就会找到深凹的点,当有几个深凹点时,经过比较,可求出(chū)最(zuì)小值。

人工神经网络在图像识别方面达到了一定水平,但准确率一直难以突破,直到深度学习出现。

什么是深度学习?

深度学习是机器学习的一种,但在图像、语音识别方面,准确率比其他机器学习算法高许多。它包括多种算法,如卷积神经网络、循环神经网络,本文主要谈深度学习算法的共同特性。

深度学习其实是对人工神经网络的继承和超越,它主要改进了两个方面:1.设置更多的隐藏层。2.让机器学习特征,而非人工(gōng)设(shè)计(jì)。

在(zài)人(rén)工(gōng)神(shén)经(jīng)网(wǎng)络(luò)时(shí)代(dài),如(rú)果(guǒ)想(xiǎng)要(yào)获(huò)得(de)较(jiào)好(hǎo)的(de)结(jié)果(guǒ),则(zé)需(xū)提(tí)供(gōng)大(dà)量(liàng)数(shù)据(jù)进(jìn)行训练,并用多层网络解决复杂问题,但当时的数据量、算力都无法支撑。后来,海量数据出现,算力大幅提升,才为多层网络的训练提供了可能。

此外,训练多层神经网络还要解决“梯度消失”问题,大致是指原有算法中从后向前对多层神经网络运用梯度下降法,会使前面的层难以更新参数,降低准确率。通过换用更好的激活函数等方法,人们终于解决了这个问题。

因此有人说,第三次人工智能浪潮是由算法、算力、数据三驾马车拉动的。

深度学习对以往机器学习最重要的超越,也是最重要的特性,是学习特征。在其他机器学习中,训练时输入的一串x,其实是特定领域专家设计的“特征”,而不是“原图”。比如要把西瓜分成“好瓜”“坏(huài)瓜(guā)”,则(zé)需(xū)了(le)解(jiě)相(xiāng)关知(zhī)识(shi)的(de)人(rén)告(gào)诉(su)我(wǒ)们(men):要(yào)看(kàn)色(sè)泽(zé)、根(gēn)蒂(dì)、敲(qiāo)声(shēng),而(ér)这(zhè)些(xiē)就(jiù)是(shì)西(xi)瓜(guā)的(de)“特(tè)征(zhēng)”。机(jī)器(qì)通(tōng)过(guò)对(duì)特(tè)征(zhēng)的(de)描(miáo)述(shù)(如(rú):色(sè)泽(zé):青(qīng)绿(lǜ);根(gēn)蒂(dì):蜷(quán)缩(suō);敲(qiāo)声(shēng):沉(chén)浊(zhuó)),和(hé)标(biāo)注(zhù)的(de)结(jié)果(guǒ)(好(hǎo)瓜(guā)),能(néng)学(xué)出怎样的瓜属于“好瓜”。特征的归纳对学习的效果有重要影响。

人(rén)工(gōng)设(shè)计(jì)特(tè)征的不足在于:一、模型的框架难以通用,换个问题就要重新设计特征。二、解决复杂问题往往需要更多特征,特征多到一定程度时,训练数据量要极大增加才能保证准确率,而原有方法无法应对,这被称为“维数灾难”。

由机器提取特征,不仅是解决这些问题的重要方法,也是机器全自动分析数据的大势所趋。

2006年,辛顿等人提出了一种实现机器提取特征的方法,但更具实用性的例子是卷积神经网络(CNN)。基于CNN的算法达到的图像识别准确率已经超越了人类平均水平。在CNN中,用(yòng)于(yú)提(tí)取(qǔ)特(tè)征(zhēng)的(de)是(shì)“卷(juǎn)积(jī)”过(guò)程(chéng)。一(yī)张(zhāng)图(tú)片(piàn)在(zài)计(jì)算(suàn)机(jī)眼(yǎn)中(zhōng),其(qí)实(shí)是(shì)一(yī)张(zhāng)数(shù)字(zì)表(biǎo),每(měi)个(gè)数(shù)字(zì)就(jiù)是(shì)一(yī)个(gè)像(xiàng)素(sù)。数(shù)学(xué)上(shàng),“卷(juǎn)积(jī)”和(hé)神(shén)经(jīng)元(yuán)中(zhōng)对(duì)一(yī)串(chuàn)x和(hé)w的(de)乘(chéng)积(jī)求(qiú)和(hé)类(lèi)似(shì)。我(wǒ)们(men)把(bǎ)图(tú)片(piàn)分(fēn)成(chéng)很(hěn)多(duō)小(xiǎo)块(kuài),每(měi)块(kuài)的(de)全部(bù)像(xiàng)素(sù)是(shì)一(yī)串(chuàn)x,我(wǒ)们(men)再(zài)给(gěi)出(chū)一(yī)串(chuàn)w,然(rán)后(hòu)每(měi)个(gè)x与(yǔ)w对(duì)应(yīng)相(xiāng)乘(chéng),对(duì)这(zhè)串(chuàn)乘(chéng)积(jī)求(qiú)和(hé),替(tì)换(huàn)原(yuán)来(lái)的(de)小(xiǎo)块(kuài)数(shù)表(biǎo)。对(duì)于(yú)图(tú)片(piàn)的(de)所(suǒ)有(yǒu)小(xiǎo)块(kuài),我(wǒ)们(men)都(dōu)用(yòng)同(tóng)一(yī)串(chuàn)w进(jìn)行(xíng)同(tóng)样(yàng)操(cāo)作(zuò)。此(cǐ)时(shí)w叫(jiào)卷(juǎn)积(jī)核(hé)。当(dāng)我(wǒ)们(men)对(duì)所(suǒ)有(yǒu)小(xiǎo)块(kuài)都(dōu)这(zhè)样(yàng)操(cāo)作(zuò)之(zhī)后(hòu),图(tú)片(piàn)的(de)尺(chǐ)寸(cùn)缩(suō)小(xiǎo)了(le),像(xiàng)素(sù)也(yě)被(bèi)聚(jù)合(hé)了(le),再(zài)进(jìn)行(xíng)下(xià)一(yī)次(cì)卷(juǎn)积(jī)(本(běn)例(lì)对(duì)应(yīng)单(dān)通(tōng)道(dào)图(tú)片(piàn)的(de)简(jiǎn)单(dān)情(qíng)形(xíng))。简(jiǎn)单(dān)说(shuō),卷(juǎn)积(jī)层(céng)的(de)作(zuò)用(yòng)就(jiù)是(shì)“聚(jù)沙(shā)成(chéng)塔(tǎ)”。这(zhè)一(yī)方(fāng)法(fǎ)的(de)灵(líng)感(gǎn)来(lái)自(zì)人(rén)脑(nǎo)对(duì)图(tú)片(piàn)的(de)感(gǎn)知(zhī)过(guò)程(chéng),其(qí)实(shí)是(shì)从(cóng)边(biān)缘(yuán)到(dào)局(jú)部(bù)再(zài)到(dào)整(zhěng)体(tǐ)的(de),每(měi)一(yī)次(cì)卷(juǎn)积(jī),就(jiù)使散点聚为边缘,再聚为形状,最后,整张图片的特征就被勾勒出来了。

可以发现,卷积的核心在于卷积核的选取,采用梯度下降等方法,可以找出最好的卷积核,从而实现机器自主提取特征。

深度学习的未解之谜?

深度学习以其通用的框架和多种实用的算法,让机器直接从经验中学出规律,在图像识别、自然语言处理等方面取得了很多成果,但以下几个问题不容忽视:

1. 鲁棒性。如果对图像施加一些干扰,比如把猪的图片叠加一些黑白噪声点,人类看不出任何差别,却会导致算法误判。这实际上是抗干扰能力,不少科学家正在解决这一问题。

2. 可解释性。机器直接从数据学出规律,并以此进行新的决策。但它为什么会得出这样的结论,训练数据和规律之间有何逻辑联系,目前还不太清楚,因而被称为“黑箱”。

3. 对数据量和训练次数的依赖。当已标注数据较少、训练次数不多时,深度学习的效果不佳。在硬件算力增长速度下降(摩尔定律近期不断修改)、部分领域已标注数据不足的情况下,摆脱这一限制或成重要方向,目前已有相关成果,如迁移学习。

深度学习深几许?今年花胜去年红。

已知尽处是春山,行人更在春山外!

(图片来自网络,部分图片经作者修改)