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