深度学(xué)习算法简介
神经网络(luò):基础
神经网(wǎng)络是一个具有相互连接的节点的计算系统(tǒng),其节点(diǎn)的工作方式更像是人脑中(zhōng)的神经元。这些神经元在它们之间进行(háng)处理并(bìng)传递信息。每个神经网络都是(shì)一系列(liè)的算法,这些算法试(shì)图通过一个模拟人(rén)类大脑运作的过程来识别一组数据(jù)中(zhōng)的潜在关系。
深度学习算法和经典神经网络之间有什么区别呢(ne)?最明显(xiǎn)的区别是:深度学(xué)习(xí)中使用的(de)神经网络(luò)具有(yǒu)更多隐藏层。这些层位于(yú)神经元(yuán)的第一层(即输入层)和最后一层(即输出层)之间。另外,没(méi)有必要将(jiāng)不同(tóng)层的所有神经元(yuán)连接(jiē)起来。
您应该知(zhī)道的9种深度学习(xí)算法
#1反向传播
反(fǎn)向传播(bō)算法是一种(zhǒng)非常流行的(de)用于训练前馈神经网络(luò)的监督学(xué)习算法。本(běn)质上,反(fǎn)向传播计算成本(běn)函数的导(dǎo)数(shù)的表达式,它是每一层之间从左到右的导数乘积,而每一层之间的权重(chóng)梯度(dù)是对部(bù)分乘积的简(jiǎn)单修改(“反(fǎn)向传播误差”)。
我们向网络提供(gòng)数据,它产生一个输出,我(wǒ)们将输出与期(qī)望的输出进行比较(使(shǐ)用损失(shī)函数),然后根据差异重新调整权重。然后重复此过(guò)程。权(quán)重(chóng)的调整是通过一(yī)种称为随机梯度下降(jiàng)的非线(xiàn)性优化(huà)技术来实(shí)现的(de)。
假设由于某种原因,我们想识别图像中的树(shù)。我们向(xiàng)网络提供任何种(zhǒng)类的图像,并产(chǎn)生输出(chū)。由(yóu)于我们知(zhī)道图像是否实际(jì)上有一棵树,因此我们可以将输出与真(zhēn)实情况进行比较并调整网络(luò)。随着我们(men)传递越来越多的图像,网(wǎng)络的错误就会越来(lái)越少。现在我们可以给它提供一个未知的(de)图像(xiàng),它将(jiāng)告诉我们该图像是否包含树。
#2前馈神经(jīng)网络(FNN)
前馈神经网络通常是全连接,这意味着层中的每个(gè)神经元都与下一层中的所有其他神经元相连。所描述的(de)结构称(chēng)为“多层感知器(qì)”,起源于1958年(nián)。单(dān)层感(gǎn)知器只(zhī)能学习(xí)线性可分离的模式,而(ér)多层感知(zhī)器则可以学习数据之间的非(fēi)线性的关系。
前(qián)馈网(wǎng)络的目标是近(jìn)似某个函数f。例如对(duì)于分类(lèi),=(x)将输入x映射到类别y。前(qián)馈网络定义了一个映射y = f(x;θ),并(bìng)学习了(le)导致最佳(jiā)函(hán)数逼近的(de)参(cān)数θ的值。
这(zhè)些模型之所以称为前馈,是因为(wéi)从x到定义f的(de)中间计(jì)算,最后到输出y,没有反馈连接。没(méi)有将模(mó)型的输出反馈到自身的反馈连接(jiē)。当前馈神经网络扩展为包括反馈(kuì)连接时,它(tā)们称为循环神经(jīng)网络。
#3卷积(jī)神经网络(CNN)
卷积神(shén)经网络除了(le)为(wéi)机器(qì)人和自动(dòng)驾(jià)驶汽车的视觉提供帮助外,还成(chéng)功的(de)应用于(yú)人脸(liǎn)识别,对象监测(cè)和(hé)交通(tōng)标志(zhì)识别等(děng)领域。
在数学(xué)中(zhōng),卷积是一个(gè)函数(shù)越过另一个函数(shù)时两(liǎng)个函数重(chóng)叠多(duō)少的积(jī)分度量。
绿色曲线表(biǎo)示蓝色和红色曲线的卷积,它是t的函数(shù),位置由垂(chuí)直的(de)绿色线表示。灰色区域表示乘积g(tau)f(t-tau)作为t的函(hán)数,所(suǒ)以(yǐ)它的面积作为(wéi)t的函数就是卷积。
这两个函数在x轴上每(měi)一(yī)点的(de)重(chóng)叠的乘积就是它们的卷积。
在某种程度上,他们尝试对前馈网络进行正则(zé)化,以避(bì)免过度拟合(当模(mó)型只学习预(yù)先看到的数据而(ér)不能泛化时),这(zhè)使得他们能够很好地识别数据之间的空间关系。
#4循环(huán)神经网络(luò)(RNN)
循环神经网络在许多NLP任务中都非常成功。在传统的神经网(wǎng)络中,可以理解(jiě)所有(yǒu)输入和输出都是独(dú)立的。但是,对于许多任(rèn)务,这是不合适的。如果要(yào)预测句子中(zhōng)的下一个单词,最好考虑一下它前面(miàn)的单词。
RNN之所以称为循环,是(shì)因为它们对序列的每个(gè)元素执行相同的任务,并(bìng)且输出取决于先前的计算。RNN的另一种解(jiě)释(shì):这些网络(luò)具有(yǒu)“记忆”,考虑了先前的信息。
例如,如果序(xù)列是5个单(dān)词的句(jù)子(zǐ),则由(yóu)5层组成,每(měi)个单(dān)词一(yī)层(céng)。
在(zài)RNN中(zhōng)定义计算的公式如下:
x_t-在时间步t输(shū)入(rù)。例如,x_1可(kě)以是与句(jù)子的(de)第二个单词相(xiàng)对应的one-hot向量。
s_t是步骤t中的隐藏状(zhuàng)态。这是网络的“内存”。s_t作为(wéi)函数取决于(yú)先前的状(zhuàng)态和(hé)当前(qián)输入x_t:s_t = f(Ux_t + Ws_ {t-1})。函(hán)数(shù)f通常是非线性的,例(lì)如tanh或ReLU。计算第一个(gè)隐藏(cáng)状态所需的s _ {-1}通常(cháng)初(chū)始化为零(零向量)。
o_t-在(zài)步骤t退出(chū)。例如,如果我们要预测句子(zǐ)中的单词,则输(shū)出可能是字典中的(de)概率向量。o_t = softmax(Vs_t)
图像(xiàng)描述的生成
与卷积神经网络一起,RNN被用(yòng)作模型的(de)一部分,以生成未标记(jì)图像的(de)描述(shù)。组(zǔ)合模型将生成的单词与图像中(zhōng)的特征相结合:
最常用的RNN类型是LSTM,它比RNN更(gèng)好地捕获(存(cún)储)长期依(yī)赖(lài)关系。LSTM与RNN本质上相同,只是它们具(jù)有不同的计算隐藏状态的方(fāng)式。
LSTM中(zhōng)的(de)memory称为cells,您可(kě)以将其视(shì)为接受先前状态h_ {t-1}和当前输(shū)入参数(shù)x_t作为输(shū)入的黑盒。在内部,这(zhè)些(xiē)cells决(jué)定保存和删除哪(nǎ)些memory。然后,它们将先前的状(zhuàng)态,当前memory和输入参数组(zǔ)合在一起。
这些(xiē)类型的单元在捕(bǔ)获(存储)长(zhǎng)期依赖关系方面非常有效。
#5递归神经网(wǎng)络
递(dì)归神经(jīng)网络是循环网络的另一种形式,不同(tóng)之处在于它们(men)是树形结构。因此(cǐ),它们可以在训练数据集中建模层次结构。
由于其与二叉树、上(shàng)下(xià)文和基于自然语言的解析器的关系,它们通常用于(yú)音频到(dào)文本转录和情绪分析等NLP应用程序(xù)中。然而,它们往往比(bǐ)递(dì)归网络慢得多
#6自(zì)编码器(qì)
自(zì)编码器(qì)可在输出处恢复输入信号。它们(men)内部有一个隐(yǐn)藏(cáng)层。自(zì)编(biān)码器设(shè)计(jì)为无法(fǎ)将输入准确复制到输出,但(dàn)是为了(le)使误差最小化(huà),网络(luò)被迫学习选择最重要的特(tè)征。
自编码器可用于预训练,例如,当有分类(lèi)任务且标记对太(tài)少时。或降低数据中的维度以供以后可视化。或者,当(dāng)您(nín)只需要学习区分输入信(xìn)号的(de)有用属(shǔ)性(xìng)时。
#7深度信念(niàn)网络和受限玻尔兹(zī)曼机器
受限玻尔兹曼机(jī)是一个随机神经网络(神经网(wǎng)络,意味着我们有类(lèi)似神经(jīng)元的单元,其binary激活取(qǔ)决(jué)于它(tā)们所连接的相邻(lín)单元;随机意味着这些激活具有概率(lǜ)性元素),它包(bāo)括:
可(kě)见单位(wèi)层
隐藏单(dān)元(yuán)层
偏差单(dān)元
此外,每个可见单元连(lián)接到所有的(de)隐藏单元(yuán)(这(zhè)种连接(jiē)是无向(xiàng)的,所以每个隐藏单元也(yě)连接到(dào)所(suǒ)有(yǒu)的可(kě)见单元),而(ér)偏差(chà)单元连接到所有的(de)可见(jiàn)单元和所有的隐藏单元。
为(wéi)了使学习更(gèng)容易(yì),我(wǒ)们对网络进行了(le)限(xiàn)制,使(shǐ)任何可见单元都不连接到任(rèn)何(hé)其他可(kě)见(jiàn)单元,任何隐藏单元都不连接(jiē)到(dào)任何其(qí)他隐藏单元。
多(duō)个(gè)RBM可以叠(dié)加形成一(yī)个(gè)深(shēn)度信念网(wǎng)络。它们看起(qǐ)来完全(quán)像全连接层,但(dàn)但是(shì)它们的(de)训练方式不(bú)同。
#8生成(chéng)对抗网络(GAN)
GAN正在成(chéng)为一种流行的在线零售机器(qì)学习模(mó)型,因为它(tā)们能够以越来越高的准确(què)度理解和重建视觉内容。用例包括:
从(cóng)轮廓填充(chōng)图像。
从文本生成逼真的图像。
制作产品原型的(de)真实感描述。
将黑白图像转(zhuǎn)换为彩色图像。
在视频(pín)制(zhì)作(zuò)中,GAN可用于:
在框架内模拟人类行为和运动的模式。
预测后(hòu)续的视频帧。
创建deepfake
生(shēng)成对(duì)抗网络(GAN)有两个部分:
生成器(qì)学习生成可信的数据。生成的实例成(chéng)为判(pàn)别器(qì)的负面训练实例。
判别器学会(huì)从数据中分(fèn)辨出生成器的假数据。判别器对产(chǎn)生不可信(xìn)结果的发(fā)生器进(jìn)行惩罚(fá)。
建立GAN的第一步是识别所(suǒ)需(xū)的最终(zhōng)输(shū)出,并根据这(zhè)些(xiē)参数收集初始训练数据集。然后将(jiāng)这些(xiē)数据随机化并(bìng)输入到生成器(qì)中(zhōng),直(zhí)到(dào)获得生成输(shū)出(chū)的基(jī)本(běn)精度(dù)为止。
然后(hòu),将生成的图像与原始概念(niàn)的实(shí)际数据(jù)点一(yī)起馈入(rù)判别器。判别器对(duì)信息进行过滤,并返回0到1之间的概率来表示每个(gè)图像(xiàng)的真实性(1与真相关(guān),0与假相关)。然后检查这些值是否成功,并不断重(chóng)复,直到达到(dào)预(yù)期的结果。
#9Transformers
Transformers也(yě)很新,它(tā)们主要用(yòng)于语言(yán)应用。它(tā)它们基于一个叫做注意力的概念,这个概念被用来迫使网络将注意力集中在(zài)特定(dìng)的数据(jù)点(diǎn)上。
由于LSTM单(dān)元(yuán)过于复杂,因此可(kě)以(yǐ)使(shǐ)用注意力机制根据(jù)其(qí)重要性(xìng)对输入的不同(tóng)部分进行权衡。注意力机(jī)制只不过是另一个具有权重的层,它的唯一目的(de)是调整权重,使输入的部分优先(xiān)化,同时排除其他部分。
实际上,Transformers由多个堆叠(dié)的编码器(形成(chéng)编(biān)码(mǎ)器(qì)层),多个(gè)堆(duī)叠的解码器(解(jiě)码器(qì)层)和一堆(duī)attention层(self- attentions和encoder-decoder attentions)组(zǔ)成
Transformers设计用于(yú)处理诸(zhū)如机器翻译(yì)和文本摘要之类的各种任(rèn)务的有序数据序列,例如(rú)自然(rán)语(yǔ)言。如今,BERT和GPT-2是两个(gè)最著名的经过预(yù)先训练的(de)自然(rán)语言系统,用于各种(zhǒng)NLP任务中,它(tā)们都基于Transformers。
#10图神经网络
一般来说,非结构(gòu)化数据(jù)并不适(shì)合深(shēn)度(dù)学习(xí)。在(zài)许多实际(jì)应用中(zhōng),数据是非结构化的,例(lì)如社交网络,化合物,知识图,空间数据等。
图神经网络的目的是(shì)对图数据进(jìn)行建模(mó),这意味(wèi)着它们识别图(tú)中节点(diǎn)之间的关系,并对其进行数值表示。它们以后可以在任何其他机器学习模型中用(yòng)于各种(zhǒng)任务,例如聚类,分(fèn)类等。