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