如果您认为机器学习是您无聊的暗恋,深度学习是您暗恋的父亲!由于硬件的空前发展以及研究人员对更好和更大模型的需求,深度学习正日益变得令人生畏和难以捉摸。每天进行的研究越多,对您应该具备的基本知识的掌握程度就越高。因此,对于所有犹豫不决直接进入深度学习的晦涩糊涂的人们来说,我希望本文能够增强您的信心。本文将不讨论这些模型的任何数学原理,而是为您提供概念上的强化,以使您的旅程在进行数学建模时变得更强大。
全连接网络(FCN)
您将找到的最简单形式的深度网络。它通常在中间有一个输入层,一个输出层以及可选的多个隐藏层。让下面的类比做解释。
比喻:科学怪人的实验室想象您是科学怪人设备齐全的科学怪人实验室的助手。科学怪人刚刚请您使用以下仪器,并使用蓝色,红色,黑色和黄色的油漆制作紫色,深橙色和绿色。当您将颜色倒在顶部时,取决于管子开口的宽度,涂料将流到下面的一系列球中。有一种机制可以改变管子的尺寸。

这类似于FCN的工作方式。您为其输入,即特征向量(例如花朵的各种属性)(示例中的油漆桶),然后预测结果(例如花朵的种类)(示例中的混合色)。预测结果是一系列数学计算(涉及矩阵乘法,加法等)。您可能已经意识到该设备已经配置为最佳配置。达到最佳设置被称为训练/优化一个模型,其中包括输入特征向量,预测标签和真实标签(在示例中调整了管的宽度)。它也不必仅仅是输入层和输出层。您也可以具有中间(即隐藏)层。这是FCN真正的样子。(了解更多:这里)

应用领域
来自结构化数据的简单分类任务,例如根据房屋属性预测房屋价格
自动编码器
自动编码器是一种完全连接的网络,仅在使用的乳清方面有所不同。它们从像FCN一样的输入开始,将其映射到较小的隐藏表示形式(称为编码),最后重建原始输入(称为解码)。
打个比方:回到科学怪人的实验室
假设您和您的好友拥有上述两个小工具,然后决定与他们一起玩。您将它们组合在一起,以便它们共享输出。现在看起来像下面。请注意,底部的管配置是顶部的镜像。

您可以从顶部倒入颜色,然后在中间混合它们。然后,可以分离不同颜色的“魔术粒子分离器”将使颜色分离为其原始颜色。您甚至可以将随机颜色倒在顶部,然后让此歧管在底部找出随机颜色。
这就是自动编码器中发生的情况。它需要一个输入(示例中的绘画),计算较小的潜在表示形式(示例中的混合颜色),最后得出原始输入(示例中底部的颜色)。这是真实的自动编码器中的外观。
应用领域- 恢复损坏的图像—您可以训练自动编码器,方法是输入损坏的图像并要求模型预测原始图像(类似于识别顶部的随机颜色)。
- 图像/数据聚类-您可以将学习到的较小的潜在表示形式用作数据的特征表示代理,从而可以对数据进行聚类
卷积神经网络啊! 计算机视觉的征服者。CNN非常擅长处理图像。CNN由卷积层,完全连接的层和可选的合并层组成。CNN接收具有高度,宽度和通道的图像(例如RGB-红绿蓝)。
打个比方:在博物馆抢劫!有一个令人讨厌的罪犯,试图闯入博物馆偷钻石。他走进博物馆,策划抢劫案。他将地板分成5x5的网格。然后他从一个单元格走到另一个单元格,每行从左到右。然后,他将查看四个相邻的单元格(即,他所在的单元格,右单元格,上方单元格和右上方单元格)。如果他在该视野中看到一些障碍物/伪影,则可以在其正上方的天花板上拍摄绿色的夜光标记,如果钻石在这四个单元之一中,则可以拍摄红色发光的深色标记。如果他站在地板上的每个牢房里,他都会有下面的计划。有了这个,他甚至可以在晚上潜入,甚至在漆黑的黑暗中也知道该去哪里!

这就是CNN的卷积层所做的。它在图像上移动一个内核(强盗想要映射的内核),该内核一次看到一幅图像的一小部分(就像强盗进入所有单元格一样)。并且在每个位置,它将输出一些值(例如,是否存在障碍物)。此过程导致开发功能图,该功能图提供了所分析内容的有用的宏级别信息。最后,将FCN连接到最后一个卷积层,因为任何分类/回归任务都需要FCN 。这是典型的CNN的样子。(了解更多:卷积神经网络)。

应用领域
图像分类-确定图像中存在的对象的类别
对象检测-识别图像中的所有对象及其位置
结论
我们研究了三种算法;全连接网络(FCN),自动编码器和卷积神经网络(CNN)。这是主要的要点。
FCN接受输入特征向量并预测正确的输出类别
自动编码器接收输入,将其转换为较小的表示形式并重建原始输出
CNN接收图像,然后通过一系列卷积/合并层将其发送,最后通过FCN发送,该FCN可以预测图像中存在的正确对象类别。
简单递归神经网络(RNN)/ Elman网络
简单的递归神经网络(也称为RNN)将时间序列问题视为计算机视觉的CNN。在时间序列问题中,您将一个值序列提供给模型,并要求其预测该序列的下n个值。RNN会遍历序列的每个值,同时建立对所见事物的记忆,这有助于它预测未来的情况。(了解有关RNN的更多信息[1] [2])
打个比方:新的和改进的秘密火车
我小时候玩过这个游戏,您可能会用另一个名字知道这一点。要求孩子们排成一排,然后您会随机向该行中的第一个孩子小声说。孩子应该在该单词上添加一个适当的单词,然后对下一个孩子说悄悄话,依此类推。等到消息传到最后一个孩子的时候,您应该有了一个激动人心的故事,这个故事是由孩子的想象力酝酿的。

输入简单的RNN!这是RNN的关键。它以时间t_x (t)(最后一个孩子的新单词)的输入和时间t-1 - h(t-1)(消息的先前单词)的状态作为输入,并产生输出y( t)(上一条消息+上一个孩子的新单词+您的新单词)。
训练RNN后,您可以(但通常不会)永远预测,因为时间t的预测(即y(t))成为t + 1的输入(即y(t)= x(t +1))。这是RNN在现实世界中的样子。

RNN在情感分析问题中的工作方式。它在产生状态(红色球)时从一个单词到另一个单词。最终,有一个完全连接的网络(FCN),它采用最后一个状态并产生一个标签(正/负/中性)。
应用领域
时间序列预测(例如天气/销售预测)
情感分析-给定电影/产品评论(一系列单词),预测其是否为负面/正面/中性。
语言建模-考虑到故事的一部分,请想象故事的其余部分/ 根据描述生成代码
长短期记忆网络
LSTM是RNN-ville的酷新手。LSTM比RNN复杂,并且比RNN记忆的时间更长。LSTM还将遍历序列的每个值,同时建立对所见内容的记忆,这有助于它预测未来的情况。但是还记得RNN具有单一状态(代表内存)吗?LSTM具有两种状态(一种是长期的,一种是短期的),因此命名为LSTM。(了解更多:LSTM)
打个比方:快餐连锁店
所有这些解释使我感到饥饿!因此,让我们进入快餐连锁店。这是一个字面意义上的链,因为如果您点餐,那么一家汉堡店就会做汉堡,其他薯条等等。在这次快餐之旅中,您将转到第一家商店,然后说以下话。
我需要一个带烤老虎面包和烤鸡肉的汉堡。
有一个人下订单(绿色),然后将信息发送给红色人,比方说他敬酒了面包。与蓝色人物交流时,他可以放下烘烤的部分,然后说:
一个汉堡配老虎面包和烤鸡
(我们仍然需要烤制部分,因为下一家商店将根据烤制部分决定酱料)。然后,您开车去下一家商店说:
加上切达干酪,大薯条,我穿着绿色T恤
现在,绿色人知道他的T恤颜色完全无关紧要,因此放弃了该部分。该商店还从先前的商店中获得红色和蓝色的信息。接下来,他们将加入酱汁,准备薯片。如果我们以后需要(如果客户投诉),第二家商店的红色人员将持有大部分订购说明。但是他只会说
汉堡和大薯条
对蓝人来说,这就是他要做的全部工作。最后,您可以从第二家商店的输出终端获得订单。

快餐连锁店。有三个人。绿色(输入),红色(电池状态)和蓝色(输出状态)。他们还可以从您提供的输入中丢弃某些信息,也可以在内部处理它们时丢弃信息。
LSTM与该链的运作方式相距不远。在给定的时间t,
输入x(t)(在示例中为客户),
输出状态h(t-1)(先前商店的蓝色人物)和
单元格状态c(t-1)(先前商店的红色人物)。
并产生,
输出状态h(t)(这家商店中的蓝人),并且
单元格状态c(t)(这家商店中的红色人)
但是,LSTM具有门控机制,而不是对这些元素进行直接计算,它可以用来确定允许这些元素从中流过多少信息。例如,记住当客户说“我在第二家商店里穿着绿色的T恤”时,发生了什么情况,绿色的人(输入门)丢弃了该信息,因为这对订单并不重要。另一个例子是,当红色的人掉下面包在第一家商店烤面包的部分时。LSTM单元中有许多门。即
输入门(绿色人)-丢弃对输入无用的信息。
忘记门(红色人员的一部分)-丢弃在先前的电池状态下无用的信息
输出门(蓝色人的一部分)-丢弃对单元格状态无用的信息,以生成输出状态
如您所见,交互非常复杂。但主要的收获是,
LSTM维护两个状态(输出-短期状态和单元状态-长期状态),并在计算最终和临时输出时使用门控来丢弃信息。
这就是LSTM的样子。

现实世界中的LSTM。您会看到这是一个复杂的连接迷宫。因此,此时不要试图了解它们之间的连接方式。了解所涉及的各种实体。红色虚线球表示由LSTM单元计算的中间输出
应用领域
与RNN相同
门控循环单元(GRU)
!我离开时,LSTM确实造成了损失。GRU是LSTM的后继产品,它简化了LSTM未来的机制,而又不会损害性能。(了解更多:GRU [1] [2])
打个比方:快餐连锁店v2.0
不要成为食品评论家,但是我们前面看到的快餐连锁店看起来效率很低。有办法提高效率吗?这是一种方法。

新的和改进的快餐连锁店。我们不再得到红色人。这将减少延迟,并帮助您更快地康复。
摆脱红色的人(细胞状态)。现在,长期记忆和短期记忆都由绿色人员(输出状态)管理。
只有一个输入门和一个输出门(即,不要忘记门)
您可以将GRU视为简单RNN和LSTM之间的中间人。这就是GRU的样子。

现实世界中的GRU。尽管它不像LSTM那样复杂,但仍然有很多不足之处。因此,此时不要试图了解它们之间的连接方式。了解所涉及的各种实体。红色虚线球表示由GRU单元计算的临时输出。
应用范围:
与RNN相同
结论
我们研究了简单的RNN,LSTM和GRU。这是主要的要点。
简单的RNN-一种简单的模型,它从一个时间步长过渡到另一个时间步长,同时在每个步骤上生成输出状态(无门控机制)
LSTM-非常复杂。有两个状态;单元状态(长期)和输出状态(短期)。它还具有控制机制,可以控制有多少信息流过该模型。
GRU — RNN和LSTM之间的折衷方案。仅具有一种输出状态,但仍具有门控机制。