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