前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI从业者需要应用的10种深度学习方法

AI从业者需要应用的10种深度学习方法

作者头像
刀刀老高
发布2018-04-10 17:57:32
6630
发布2018-04-10 17:57:32
举报
文章被收录于专栏:奇点大数据奇点大数据

深度学习是作为这个领域的一个重要竞争者,在这个十年的爆炸式的计算增长中出现的,赢得了许多重要的机器学习竞赛。利息至2017年尚未降温; 今天,我们看到在机器学习的每一个角落都提到了深刻的学习。

机器学习的兴趣在过去的十年里已经爆炸了。您几乎每天都会在计算机科学计划,行业会议和“华尔街日报”上看到机器学习。对于所有关于机器学习的讨论,许多人会把它能做什么和他们希望做什么混为一谈。从根本上说,机器学习是使用算法从原始数据中提取信息,并以某种类型的模型表示。我们使用这个模型来推断我们尚未建模的其他数据。

神经网络 是机器学习的一种模型; 他们已经存在了至少50年。神经网络的基本单元是松散地基于哺乳动物大脑中的生物神经元的节点。神经元之间的联系也是模仿生物大脑,这些联系随着时间的推移发展(“训练”)。

在二十世纪八十年代中期和九十年代初期,许多重要的神经网络的建筑进步。然而,获得良好结果所需的时间和数据量却减缓了采用速度,从而降低了利率。在二十一世纪初,计算能力呈指数级增长,业界发现计算技术的“寒武纪爆炸”,在此之前是不可能的。 深度学习 是作为这个领域的一个重要竞争者,在这个十年的爆炸式的计算增长中出现的,赢得了许多重要的机器学习竞赛。利息至2017年尚未降温; 今天,我们看到在机器学习的每一个角落都提到了深刻的学习。

关于我通过研究和学习所学到的深度学习,有大量丰富的知识。在这里,我想分享 AI工程师可以应用到他们的机器学习问题的 10个强大的深度学习方法。但首先,让我们来定义深度学习是什么。深度学习是很多人面临的一个挑战,因为它在过去的十年中已经慢慢地改变了形式。为了在视觉上设置深度学习,下图展示了AI,机器学习和深度学习之间关系的概念。

人工智能领域广泛,已经有很长一段时间了。深度学习是机器学习领域的一个子集,它是AI的一个子领域。一般将深度学习网络与“典型”前馈多层网络区分开来的方面如下:

  • 比以前的网络更多的神经元
  • 更复杂的连接层的方式
  • “寒武纪大爆炸”的计算能力训练
  • 自动特征提取

当我说“更多的神经元”,我的意思是神经元数量已经上升了多年来表达更复杂的模型。层也从多层网络中完全连接的每层发展到卷积神经网络中层之间的局部连接的神经元片段,以及与递归神经网络中的同一神经元(除了与前一层的连接之外)的经常连接。

然后,深度学习可以被定义为具有四个基本网络体系结构之一中的大量参数和层的神经网络:

  • 无监督的预训练网络
  • 卷积神经网络
  • 复发神经网络
  • 递归神经网络

在这篇文章中,我主要关注后三种架构。甲 卷积神经网络 是基本上已经跨越使用共享权重的空间延伸的标准神经网络。CNN被设计为通过在内部卷积来识别图像,其看到图像上识别的对象的边缘。甲 回归神经网络 是基本上已经通过具有边缘,其进给到下一个时间步长,而不是成在同一时间步骤中的下一层跨越时间延长标准神经网络。RNN被设计为识别序列,例如语音信号或文本。它里面的循环意味着网络中存在短暂的内存。一个 递归神经网络 更像是一个分层网络,其中输入序列确实没有时间方面,但输入必须以树状方式分层处理。以下10种方法可以应用于所有这些体系结构。

1 — Back-Propagation

Back-prop只是一种计算函数偏导数(或梯度)的方法,函数具有函数组成的形式(如在Neural Nets中)。当使用基于梯度的方法(梯度下降只是其中之一)解决优化问题时,您需要在每次迭代时计算函数梯度。

对于神经网络而言,目标函数具有合成的形式。你如何计算梯度?有两种常见的方法可以做到这一点:(i) 分析差异。你知道函数的形式。您只需使用链式规则(基本演算)来计算衍生产品。(ii) 使用有限差分进行近似分化。这种方法的计算量很大,因为函数评估的数量是 O(N),其中 N 是参数的数量。与分析分化相比,这是昂贵的。然而,有限的差异通常用于验证调试时的后端实现。

2 — Stochastic Gradient Descent

想想渐变下降的一种直观的方式是想象一条源于山顶的河流的路径。梯度下降的目标正是河流努力实现的目标 - 即到达从山上爬下的最底部(在山脚处)。

现在,如果山的地形是这样形成的,即在到达最终目的地(这是山麓的最低点)之前,河流不必完全停下来,那么这是我们所希望的理想情况。在机器学习中,这就是说,我们已经找到了从初始点(山顶)开始的解的全局最小值(或最优值)。但是,这可能是因为地形的性质使得路径上的几个坑,这可能会迫使河流陷入困境,在机器学习方面,这种坑被称为局部最小值解决方案,这是不可取的,有很多方法可以解决这个问题(我不是讨论)。

因此,梯度下降倾向于卡在局部最小值,这取决于地形的性质(或ML中的函数)。但是,当你有一个特殊的山地形(形状像一个碗,在ML术语中称为凸函数),该算法始终保证找到最佳。你可以想象这再次描绘了一条河流。这些特殊的地形(又称凸函数)总是在ML中优化的祝福。另外,取决于你最初从哪里开始(即函数的初始值),你可能会走上一条不同的路。同样,根据河流的爬升速度(即梯度下降算法的学习速率或步长),您可能会以不同的方式到达最终目的地。

3 — Learning Rate Decay

根据随机梯度下降优化过程调整学习率可以提高性能并减少训练时间。有时这被称为 学习速率退火 或 自适应学习速率。训练过程中最简单也许是最常用的学习速率适应是随着时间的推移而降低学习速度的技术。当使用较大的学习速率值时,它们具有在训练过程开始时进行大的改变的益处,并且降低了学习速率,使得稍后在训练过程中对较小的速率进行训练更新,从而对训练进行更新。这具有早期快速学习好权重并稍后进行微调的效果。

两个流行和易于使用的学习率衰减如下:

  • 逐步降低学习率。
  • 在特定的时代使用标点大滴来降低学习速度。

4 - Dropout

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

关键的想法是在训练期间从神经网络中随机丢弃单位(连同他们的连接)。这可以防止单位适应太多。在训练期间,从指数的不同“稀疏”网络中剔除样本。在测试时间,通过简单地使用一个具有较小权重的单个未解压缩的网络来容易地近似平均所有这些细化网络的预测的效果。这显着减少了过拟合,并且比其他正则化方法有了重大改进。辍学已被证明可以提高神经网络在视觉监控学习任务,语音识别,文档分类和计算生物学的性能,在许多基准数据集上获得最新的结果。

5 — Max Pooling

最大池化是一个基于样本的离散化过程。目标是对输入表示(图像,隐藏层输出矩阵等)进行下采样,降低其维度,并允许对包含在分区域中的特征进行假设。

这部分是通过提供表示的抽象形式来帮助过度拟合。同时,它通过减少要学习的参数数量来降低计算成本,并为内部表示提供基本的平移不变性。最大池化是通过将最大过滤器应用于初始表示的通常不重叠的子区域来完成的。

6 — Batch Normalization

当然,包括深度网络的神经网络需要仔细调整权重初始化和学习参数。批量标准化有助于他们放松一点。

重量问题:

  • 无论权重的初始化如何,无论是随机的还是经验性的选择,它们都远离学习权重。考虑一个小批量,在最初的时期,将会有许多异常值在所需的功能激活方面。
  • 深层神经网络本身是不适宜的,即初始层中的小扰动导致后面层的大变化。

在反向传播过程中,这些现象会导致对梯度的分心,这意味着在学习权重以产生所需输出之前,梯度必须补偿异常值。这导致需要额外的时期汇合。

批量归一化使这些梯度从分散到正常值,并在小批量范围内向共同目标(通过归一化)流动。

学习率问题: 一般来说,学习率保持较低,只有一小部分的梯度校正权重,原因是异常激活的梯度不应影响学习的激活。通过批量标准化,这些异常激活减少,因此可以使用更高的学习速度来加速学习过程。

7 — Long Short-Term Memory:

LSTM网络具有以下三个方面,使其与常规神经网络中的常见神经元不同:

  1. 它决定何时让输入进入神经元。
  2. 它决定何时记住上一个时间步中计算的内容。
  3. 它决定何时让输出传递到下一个时间戳。

LSTM的优点在于它根据当前的输入本身来决定所有这些。所以如果你看下面的图表:

当前时间标记处的输入信号x(t)决定所有上述3个点。输入门决定点1.遗忘门决定点2,输出门决定点3.单独的输入是能够采取所有这三个决定。这受到我们的大脑如何工作的启发,并且可以基于输入来处理突然的上下文切换。

8 — Skip-gram:

词嵌入模型的目标是为每个词汇项学习一个高维密集表示,其中嵌入向量之间的相似性显示了相应词语之间的语义或句法相似性。Skip-gram是学习单词嵌入算法的模型。

skip-gram模型(以及许多其他的词语嵌入模型)背后的主要思想如下: 两个词汇词汇相似,如果他们共享相似的上下文。

换句话说,假设你有一个句子,就像“猫是哺乳动物”一样。如果你用“狗”而不是“猫”,这个句子还是一个有意义的句子。所以在这个例子中,“狗”和“猫”可以共享相同的语境(即“是哺乳动物”)。

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

9 — Continuous Bag Of Words:

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

我们通过在一个大的语料库中采取大量的句子来做到这一点,每当我们看到一个单词时,我们就会听到这个单词。然后,我们将上下文单词输入到一个神经网络,并预测在这个上下文中心的单词。

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

10 — Transfer Learning:

让我们考虑一下图像如何穿过卷积神经网络。假设你有一个图像,你应用卷积,并得到像素的组合作为输出。假设他们是边缘。现在再次应用卷积,所以现在你的输出是边或线的组合。现在再次应用卷积,所以你的输出是线的组合等等。你可以把它看作是每一层寻找一个特定的模式。神经网络的最后一层往往会变得非常专业化。也许如果你在ImageNet上工作,你的网络最后一层就是寻找孩子,狗或飞机等等。你可能会看到网络寻找眼睛或耳朵或嘴巴或轮子。

深度CNN中的每一层都逐渐建立起越来越高层次的特征表征。最后几层往往是专门针对您输入模型的任何数据。另一方面,早期的图层更为通用,在一大类图片中有许多简单的图案。

转移学习就是当你在一个数据集上训练一个CNN时,切掉最后一个层,在不同的数据集上重新训练最后一层的模型。直观地说,您正在重新训练模型以识别不同的高级功能。因此,培训时间会减少很多,所以当您没有足够的数据或者培训需要太多的资源时,转移学习是一个有用的工具。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 — Stochastic Gradient Descent
  • 3 — Learning Rate Decay
  • 5 — Max Pooling
  • 8 — Skip-gram:
  • 9 — Continuous Bag Of Words:
  • 10 — Transfer Learning:
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档