导读:孔子曾经说过,“学如不及,犹恐失之。”因此 AI 工程师学习深度学习也要“温故而知新”。


 以下是小编整理的其他文章,希望能对各位有所帮助

人工智能学习路线        OpenCV图像分割Python方法     图像分割的方法

图像处理基础知识    十大经典算法(图像处理))  人工智能必备数学基础

小编整理了有关Python人工智能的资料,有图像处理opencv\自然语言处理、机器学习、数学基础等资源库,想学习人工智能或者转行到高薪资行业的,大学生也非常实用,无任何套路免费提供,    扫码+vx(更方便)领取

 深度学习是什么

深度学习是一种机器学习的方法,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。深度学习可以理解为神经网络的发展,神经网络是对人脑或生物神经网络基本特征进行抽象和建模,可以从外界环境中学习,并以与生物类似的交互方式适应环境。 总结下图,便很好的解释了人工智能、机器学习和深度学习三者之间的关系,随着计算机算法的不断改进,深度学习越来越受到人工智能领域的赞赏。

深度学习可以被定义为以下四个基本网络框架中具有大量参数和层数的神经网络:

  • 无监督预训练网络(Unsupervised Pre-trained Networks)
  • 卷积神经网络(Convolutional Neural Networks)
  • 循环神经网络(Recurrent Neural Networks)
  • 递归神经网络(Recursive Neural Networks)

CNN:在机器学习中,卷积神经网络是一种深度前馈人工神经网络,已成功地应用于图像识别。

卷积神经网络,是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。

卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络常应用于序列类的数据处理;二维卷积神经网络常应用于图像类文本的识别;三维卷积神经网络主要应用于医学图像以及视频类数据识别。

 循环神经网络:基本上也是一种标准的神经网络的扩展,它通过下一个时间步骤中,而不是同一个时间步骤中进入下一层。循环神经网络旨在识别序列,例如语音信号或文本。它内部有循环,这意味着网络中存在短时记忆。

递归神经网络(RNN)是两种人工神经网络的总称。一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network)。时间递归神经网络的神经元间连接构成有向图,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络。两者训练的算法不同,但属于同一算法变体。

以下10 个方法可以应用于所有这些架构。

1、反向传播

反向传播(Back-prop)简单来说就是计算函数的偏导数(或梯度)的一种方法,它具有函数组合的形式(如神经网络)。当你使用基于梯度的方法(梯度下降法只是其中之一)来解决最优问题时,需要在每次迭代中计算函数梯度。

 对神经网络来说,目标函数具有组合的形式。如何计算梯度呢?有两种常见的方法可以计算:

(1) 解析微分:知道函数形式时,只需使用链式法则(基本微积分)计算计算导数。

(2) 有限差分近似微分:这种方法运算量很大,因为函数求职的个数是 O(N),其中 N 是参数的个数。与解析微分相比,这种方法运算量极大。但是,有限差分通常用于在调试时验证反向传播实现。

2 、随机梯度下降法

对梯度下降的一种直观理解方法是,想象一条源自山顶向下的河流。梯度下降的目标正是河流努力要达到的目标:到达最低端(山脚处)。

现在,如果山势能够使河流在到达最终目的地之前(即山麓最低处)不必完全停留,这正是我们想要的理想情况。在机器学习中,这相当于是说,我们已经从初始点(山顶)开始找到解决方案的全局最小值(或最优值)。然而,可能由于地形的原因,河道中会形成几个坑洼,会迫使河流陷入困境并停滞不前。在机器学习术语中,这些坑洼被称为局部最小值,都是不可取的。有很多方法可以解决这个问题。限于篇幅,我不打算讨论这个问题。

 因此,梯度下降法很容易陷入局部最小值,这取决于地势(或机器学习术语中的函数)。但是,当你有一种特殊的山地地势(比如像一只碗,用机器学习术语称为凸函数)时,算法总是能够保证找到最优解。你可以想象一下一条河流。这些特殊的地形(又称凸函数)对机器学习中的优化总是有好处。此外,你遵循什么样的路径,要取决于你最初是从山顶什么地方开始的(即函数的初始值)。类似的,根据不同的河流速度(即梯度下降算法的学习率或步长),你可能会以不同的方式到达最终目的地。这两个因素都会影响你是否掉坑(局部最小值)或能否避免。

 3、学习率衰减

调整随机梯度下降优化算法的学习率可以提高性能并缩短训练时间。有时这被称为学习率退火( learning rate annealing)或自适应学习率(adaptive learning rates)。在训练过程中,最简单、也是最常用的适应学习率的方法是逐渐降低学习率的技术。在训练初期使用较大的学习率,可以对学习率进行大幅调整;在训练后期,降低学习率,以一个较小的速率更新权重。这种方法在早期可以快速学习获得较好的权重,并在后期对权重进行微调。

两种常用且易于使用的学习率衰减方法如下:

  • 线性逐步降低学习率。
  • 在特定时点大幅降低学习率。

4、Dropout

具有大量参数的深度神经网络是非常强大的机器学习系统。然而,在这样的网络中,过拟合是一个严重的问题。大型网络的使用起来也很慢,因此在测试时结合许多不同大型神经网络的预测,很难处理过拟合问题。Dropout 是解决这个问题的一种方法。

AI面试必备!你不可不知的10个深度学习方法

关键思想是在训练过程中从神经网络中随机删除单元 (以及它们的连接)。这就防止了单位之间的过度适应。在训练过程中,从指数级不同的“稀疏”网络中抽取 dropout 样本。在测试时,只需使用具有较小权重的单解开网络(single untwined network),就可以很容易地估计出所有这些稀疏网络的平均预测效果。这就大大减少了过拟合,并且对其他正则化方法进行了重大改进。Dropout 已被证明可以改善神经网络在视觉、语音识别、文档分类和计算生物学等监督学习的任务性能,在许多基准数据集上获得了最优秀的结果。

5 、 最大池化

最大池化(Max pooling)是基于采样的离散化过程。目标是对输入表征(如图像、隐藏层输出矩阵等)进行降采样(down-sample),减小其维数,并允许对包含在子区域中的特征进行假设。

AI面试必备!你不可不知的10个深度学习方法

这部分是为了通过提供抽象的表征形式来帮助过拟合。同时,通过减少学习参数的数量,降低了计算成本,为内部表征提供了基本的平移不变性。最大池化是通过对初始表征的通常不重叠的子区域应用最大过滤器(Max filter)来实现的。

6 、批量归一化

当然,包括深度网络的神经网络需要仔细调整权重初始化和学习参数,批量归一化有助于使这一过程稍微轻松些。

权重问题:

  • 无论权重的初始化是什么,不管是随机的还是经验选择的,它们都与学习后的权重相差甚远。考虑一个小批量,在最初的轮数(epoch)中,根据所需的特性激活,会有很多离群值。
  • 深度神经网络本身就是不适定(ill-posed)的,即初始层的一个微小扰动会导致后面的层发生很大的变化。

在反向传播过程中,这些现象会分散梯度的注意力,这意味着梯度必须在学习产生所需输出的权重之前补偿离群值。这就需要额外的轮数来收敛。

AI面试必备!你不可不知的10个深度学习方法

批量归一化将这些梯度从分散归一化到离群值,并在一个小批量的范围内朝着共同目标收敛(通过对它们进行归一化)。

学习率问题:一般来说,学习率保持得很小,使得只有一小部分梯度修正了权重,原因是离群值激活的梯度不应该影响学习好的权重。通过批量归一化,这些离群值激活被减少,因此更高的学习率可以用来加速学习过程。

7 、 长短期记忆网络

长短期记忆(Long short-term memory,LSTM)网络与递归神经网络中的普通神经元有以下三个区别:

  • 它可以控制何时让输入进入神经元。
  • 它可以控制决定何时记住在前一个时间步骤中计算的内容。
  • 它可以控制决定何时将输出传递给下一个时间戳。

LSTM 的优点在于:它基于当前输入本身来决定所有这些。因此,如果你看一下如下图表,就会明白了:

AI面试必备!你不可不知的10个深度学习方法

当前时间戳上的输入信号 x(t) 决定了以上 3 个点。输入门对第 1 点做出决定。遗忘门在第 2 点做出决定。输出门在第 3 点做出决定。单是输入就能做出这三个决定。这是受我们大脑工作方式的启发,可以根据输入处理突然的上下文切换。

8 、Skip-gram

词嵌入(Word Embedding)模型的目标是学习每个词汇词的高维密集表示,其中嵌入向量之间的相似性表示对应词之间的语义或句法相似性。Skip-gram 是学习词嵌入算法的模型。

skip-gram 模型 (以及许多其他词嵌入模型) 背后的主要思想如下:如果两个词汇具有相似的上下文,那么它们就是相似的。

AI面试必备!你不可不知的10个深度学习方法

换句话说,假设你有一个句子,比如“猫是哺乳动物”。如果你用“狗”而不是“猫”这个词,这个句子仍然是一个有意义的句子。因此在这个例子中,“狗”和“猫”可以共享相同的上下文 (即“是哺乳动物”)。

基于上述假设,你可以考虑上下文窗口(包含 k 个连续项的窗口)。然后你应该跳过其中一个单词,试着学习神经网络,它能得到所有的词,除了跳过的那个,并预测跳过的那个。因此,如果两个词在一个大型语料库中重复共享相似的上下文,这些词的嵌入向量就会有相近的向量。

9 、连续词袋

在自然语言处理问题中,我们希望学习如何将文档中的每个单词表示为数字向量,以便出现在相似上下文中的单词具有彼此接近的向量。在连续词袋(Continuous Bag Of Words)模型中,目标是能够使用特定单词周围的上下文并预测特定单词。

AI面试必备!你不可不知的10个深度学习方法

我们通过在大型语料库中抽取大量的句子来做到这一点:每次我们看到一个词,我们就取它周围的词。然后我们将上下文的单词输入到神经网络中,并预测这个上下文中心的词。

当我们有成千上万这样的上下文词和中心词时,我们就有了一个神经网络数据集的实例。我们训练神经网络,最后编码的隐藏层输出表示一个特定词的嵌入。当我们对大量的句子进行训练时,相似上下文中的单词会得到相似的向量。

10 、迁移学习

让我们考虑图像是如何通过卷积神经网络处理的。假设你有一个图像,你对它应用卷积,你得到像素的组合作为输出。假设它们是边。现在再次应用卷积,现在输出的是边或线的组合。然后再次应用卷积,这时候输出是线的组合,以此类推。你可以把它看作是寻找特定模式的每一层。神经网络的最后一层趋向于变得非常专业化。也许如果你正在使用 ImageNet,你的网络的最后一层将用于寻找孩子、狗、飞机或者其他什么。在后面几层你可能会看到网络在寻找眼睛、耳朵、嘴巴或者轮子。

AI面试必备!你不可不知的10个深度学习方法

深度 CNN 中的每一层都在不断地构建更高层次的特征表征。最后几个层往往专门针对输入到模型中的任何数据。另一方面,前面的层更加通用,在大量的图片中有许多简单的模式。

迁移学习是当你对一个数据集进行卷积神经网络训练时,切掉最后一层,在另一个数据集中重新训练模型最后一层。从直觉上来说,你正在重新训练模型以识别不同的更高级别的特征。因此,当你没有足够的数据或者训练占用了太多的资源时,迁移学习就是一个有用的工具。


有问题+没学习资料+没学习规划?加微信通通解决,可以免费领取人工智能学习必读的电子书,深度学习+神经网络+CV计算机视觉200G学习资料一份,对人工智能迷茫需要学习路线规划的可以免费做个人的1v1规划哦!  

 

Logo

更多推荐