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