AI从业人员需要掌握的10大算法(方法)

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:James Le

编译:ronghuaiyang

前戏

这10个算法(方法)可以说是目前深度学习中非常基础和出镜率非常高的算法和方法,关键是非常的有效,一起来看看吧!


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

神经网络是机器学习的一种模型,它们已经存在至少50年了。神经网络的基本单位是节点,它是模仿哺乳动物大脑中的生物神经元。神经元之间的连接也以生物大脑为模型,这些连接随着时间的推移而发展(通过“训练”)。

在20世纪80年代中期和90年代早期,神经网络在架构上取得了许多重要的进步。然而,获得良好结果所需的时间和数据减少了实用的速度,从而降低了人们对它的兴趣。在21世纪初,计算能力呈指数级增长,业界见证了计算技术的“寒武纪大爆发”,这在此之前是不可能的。深度学习(Deep learning)在那十年爆炸式的计算增长中脱颖而出,成为该领域的有力竞争者,赢得了许多重要的机器学习竞赛。截至2017年,投资者的兴趣并未降温,今天,我们在机器学习的每个角落都可以看到深度学习。

在这里,我想分享10种强大的深度学习方法, AI工程师可以应用到他们的机器学习问题中。但首先,让我们来定义什么是深度学习。对许多人来说,深度学习一直是一个难以定义的挑战,因为在过去十年中,它的形式发生了缓慢的变化。为了直观地将深度学习置于语境中,下图说明了人工智能、机器学习和深度学习之间的关系的概念。

640?wx_fmt=jpeg

人工智能的领域很广,已经存在很长时间了。深度学习是机器学习领域的一个子集,机器学习是人工智能的一个子领域。深度学习网络与“古典的”前馈多层网络的区别在于:

  • 比之前的网络更多的神经元

  • 连接层的更复杂方法

  • 有“寒武纪大爆炸”式的计算能力来进行训练

  • 自动特征提取

当我说“更多的神经元”时,我的意思是神经元的数量在过去的几年里一直在上升,可以表达更复杂的模型。层也从多层网络中完全连接的每一层发展到卷积神经网络中各层之间神经元的局部连接块,再到循环神经网络中同一神经元的循环连接(除了前一层的连接)。

那么深度学习可以定义为以下四种基本网络架构之一的具有大量参数和层次的神经网络:

  • 无监督预先训练网络

  • 卷积神经网络

  • 循环神经网络

  • 递归神经网络

在这篇文章中,我主要对后3个架构感兴趣。卷积神经网络基本上是一个标准的神经网络,它使用共享的权值进行了跨空间的扩展。CNN的设计是通过内部的卷积来识别图像,卷积可以看到图像上识别的物体的边缘。循环神经网络基本上是一种标准的神经网络,它将输出送到下一个时间步而不是下一层。RNN用于识别序列,例如语音信号或文本。它内部有循环,这意味着网络中存在短时记忆。递归神经网络更像是一个层次网络,其中输入序列实际上没有时间的概念,但输入必须以树的方式分层处理。下面的10个方法可以应用于所有这些体系结构。

1 —反向传播

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

640?wx_fmt=png

对于神经网络,目标函数具有组合形式。如何计算梯度?有两种常见的方法:(i) 解析微分。你知道函数的形式。你只要用链式法则(基本微积分)计算导数就行了。(ii) 近似微分利用有限差分。这种方法的计算代价很高,因为函数求值的个数是O(N),其中N是参数的个数。与解析微分相比,这个计算代价是非常大的。然而,有限差分通常用于调试时验证反向传播的实现是不是正确。

2 — 随机梯度下降

一种直观的方法来考虑梯度下降是想象一条河流的路径起源于山顶。坡度下降的目标正是这条河努力要达到的目标,即从山上爬下来,到达山脚的最低处。

现在,如果山的地形是这样形成的,在到达最终目的地(山脚的最低点)之前,河流不会在任何地方完全停止流动,那么这就是我们想要的理想情况。在机器学习中,这相当于说,我们已经从初始点(山顶)开始找到了解决方案的全局最小(或最优)。然而,有可能是地形的原因导致了河流的流经路径上有几个坑,这可能会使得河流的流动陷入困境并停滞不前。在机器学习术语中,这种凹坑被称为局部极小解,这是不可取的。有很多方法可以解决这个问题(我没有讨论这个问题)。

640?wx_fmt=png

3 — 学习率下降

640?wx_fmt=jpeg

在随机梯度下降优化过程调整学习率可以提高性能并减少训练时间。有时这被称为“学习率退火”或“自适应学习率”。在训练过程中,对学习率的最简单、也许也是最常用的调整是随着时间的推移降低学习率的技术。当使用较大的学习率值时,这些方法可以在训练过程的开始时进行较大的更改,并降低学习率,从而在训练过程的后期对权重进行较小的更新,从而减少更新的次数。这样做的效果是,及早快速学习良好的权重,然后对其进行微调。

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

  • 根据时间逐步降低学习速度。

  • 在特定时间点对学习率进行大幅的下降。

4 — Dropout

具有大量参数的深度神经网络是非常强大的机器学习系统。然而,在这样的网络中,过拟合是一个严重的问题。大型的网络用起来往往很慢,这样的话,想通过对多个大型神经网络组合的方式来解决过拟合问题就非常困难了。Dropout是解决这个问题的一种技术。

640?wx_fmt=jpeg

其关键思想是,在训练过程中随机地从神经网络中删除单元(以及它们的连接)。这就避免了神经元之间的过度协作。在训练过程中,从指数数量的不同的“稀疏”网络对神经元进行dropout。在测试时,简单地使用具有较小权重的单个网络,就可以很容易地近似所有这些稀疏网络的预测平均值的效果。这大大减少了过拟合,与其他正则化方法相比有了很大的改进。Dropout在视觉、语音识别、文档分类和计算生物学等方面改善了神经网络在监督学习任务中的性能,在许多基准数据集上获得了最先进的结果。

5 — 最大池化

Max池是一个基于采样的离散化过程。目标是对输入表示(图像、隐藏层输出矩阵等)进行下采样,降低其维数,并允许对被包含的特征的子区域做出估计。

640?wx_fmt=jpeg

这样做的部分原因是,通过提供一种抽象的表示形式来帮助减少过拟合。此外,它还通过减少要学习的参数的数量来降低计算成本,并为内部表示提供基本的平移不变性。最大池化是通过对通常是不重叠的子区域使用最大化滤波器来实现的。

6 — Batch Normalization

神经网络包括深度网络都需要对权值初始化和学习参数进行仔细的调试,Batch Normalization可以使得对初始化和学习的要求放松一点。

权重问题:

无论初始化的权重是随机的还是经验选择的,它们都与学习的权重相差甚远。考虑一个mini batch,在初始阶段,在所需的特征激活方面会有许多异常值。

深度神经网络本身是不适定的,即初始层的一个小扰动会导致后一层的大变化。

在反向传播过程中,这些现象会对梯度造成干扰,这意味着在学习权重以产生所需输出之前,梯度必须对异常值进行补偿。这就需要额外的时间来收敛。

640?wx_fmt=png

Batch normalization将这些梯度从分散的离群值变成归一化的值,并在mini batch的范围内让它们向共同的目标流动(通过对它们进行归一化)。

学习率问题:一般情况下,学习率保持在较小的范围内,只有很小一部分梯度可以修正权重,原因是异常激活的梯度不应该影响学习到的激活。通过Batch normalization,这些异常激活被减少,因此可以使用较高的学习率来加速学习过程。

7 — 长短时记忆Long Short-Term Memory:

LSTM网络与递归神经网络中常见的神经元有以下三个不同之处:

  1. 它可以控制输入什么时候进入神经元

  1. 它可以控制何时记住上一个时间步骤中计算的内容

  1. 它可以控制何时将输出传递到下一个时间步

LSTM的美妙之处在于,它根据当前输入本身来决定这一切。

640?wx_fmt=png

当前时间戳处的输入信号x(t)决定了以上3个点。输入门为点1做一个决定,忘记门在点2上做决定,输出门在点3上做决定。仅凭输入就能做出这三个决定。它的灵感来自于我们的大脑如何工作,以及如何处理基于输入的突然的上下文切换。

8 — Skip-gram:

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

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

640?wx_fmt=jpeg

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

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

9 — 连续词袋模型:

在自然语言处理问题中,我们希望将文档中的每个单词表示为一个数字向量,这样在类似上下文中出现的单词的向量就会非常接近。在连续词袋模型中,目标是能够使用特定单词周围的上下文并预测特定的单词。

640?wx_fmt=jpeg

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

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

10 — 迁移学习:

让我们考虑一下图像是如何通过卷积神经网络的。假设你有一个图像,你对它进行卷积,你得到像素的组合作为输出。假设它们是边缘。现在再次应用卷积,现在你的输出是边缘或者线的组合。现在再次应用卷积,你的输出是线的组合,等等。你可以把它想象成每一层都在寻找一个特定的模式。神经网络的最后一层会变得非常特殊。如果你在ImageNet上训练,你的网络的最后一层会寻找孩子、狗、飞机或其他东西。在后面几层,你可能会看到网络在寻找眼睛、耳朵、嘴巴或轮子。

640?wx_fmt=jpeg

深度CNN中的每一层都在逐步构建越来越高级的特征表示。最后两层往往专门处理你输入模型的随便什么数据。另一方面,早期的层更加通用,在更大的图片类中有很多简单的模式。

迁移学习就是说,你在一个数据集上训练CNN,去掉最后一层,然后在另一个数据集上重新训练模型的最后一层。直观地说,你是在对模型进行再训练,以识别不同的高级特征。因此,当你没有足够的数据或者训练需要太多的资源时,迁移学习是一个有用的工具。

深度学习非常注重技术。对于每一个新想法都没有太多具体的解释,大多数新想法的提出都附有实验结果,以证明它们是可行的。深度学习就像玩乐高。掌握乐高积木和其他艺术一样具有挑战性,但更容易入门。

640?wx_fmt=png— END—

英文原文:https://medium.com/cracking-the-data-science-interview/the-10-deep-learning-methods-ai-practitioners-need-to-apply-885259f402c1

640?wx_fmt=gif

人人都能看得懂的深度学习介绍!全篇没有一个数学符号!

深度学习物体检测论文阅读路线图以及官方实现

新手必看的Top10个机器学习算法(这些都学会了你就是老手了

更多历史文章请关注公众号,点击“历史文章”获取


640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

喜欢这篇文章的话,请给我个好看吧640?wx_fmt=gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AI行业猎头必备知识汇总 第一部分:基础知识 1.1 信号与系统相关知识 1.2 数字信号处理相关知识 1.3 通信原理与微电子相关知识 1.4 计算机网络及开发相关知识 1.5 深度学习与模式识别相关知识 1.6 软件理论与编程语言相关知识 第二部分:应用场景 2.1声音行业 2.1.1 声学(智能音箱,智能家居) 2.1.2 语音(语音识别,语音合成,VOIP) 2.1.3 音乐(变音,音效,版权) 2.1.4 语言及综合 (智能机器人,智能客服,NLP) 2.2视频行业 2.2.1 电视类,录播类 (4K纯屏,H265) 2.2.2 实时通信类(带宽,资源,质量) 2.2.3 流媒体互动直播、直播(连麦,监管) 2.2.4 综合业务(在线抓娃娃,软硬件结合) 2.3 图像行业 2.3.1 卫星,雷达,地勘图像类 2.3.2 医学,显微镜图像类 2.3.3 人脸,手势,物体识别类 2.3.4 无人驾驶,智能交通类 2.3.5 智能搜索综合类 第三部分:行业发展探讨与分享 3.1 大数据 3.2 云计算 3.3 分布式 3.4 区块链 3.5 深度学习 3.6 微电子、智能硬件 3.7 AI 第四部分:总结 新丰收,全名深圳新丰收教育科技有限公司,成立于2016.12月,总部位于深圳市宝安区,是规模较大的行业培训和技能培训的综合性培训公司。自成立以来一直秉承“资源整合,服务你我”的企业遵旨,依托职业技能培训,职业规划培训和团队建设培训三大业务板块,让每一个客户都能享受到互联网+和大数据+带来的便利,同时整合团队内部不同领域不同行业的人脉资源,打造全新的猎聘生态和职场生态。公司核心团队均来自BAT等国内外大公司,一部分精英还来自FACEBOOK,GOOGLE,APPLE等顶尖公司。希望我们卓越的团队能为您提供高效满意的服务。 讲师:天一色团队 感谢深圳新丰收教育科技有限公司对猎头行业的贡献!
### 回答1: 作为AI语言模型,我不会区分问题的性质,但是我可以回答你的问题。从业AI行业需要掌握的技能包括:数学、编程、机器学习、深度学习、自然语言处理、数据分析、数据可视化等。另外还需要掌握相关领域的知识,如图像处理、语音识别、推荐算法等。学习这些技能需要坚持不懈、持续学习和不断实践。 ### 回答2: 从业AI行业需要掌握的技能包括以下几个方面: 1. 编程技能:AI行业离不开编程,特别是掌握Python编程语言是必不可少的。另外,也需要了解常用的机器学习和深度学习框架,如TensorFlow和PyTorch,以便构建和训练模型。 2. 数学与统计学知识:对于AI从业者来说,具备扎实的数学和统计学基础非常重要。线性代数、概率论和统计学等知识将帮助他们理解和应用机器学习算法。 3. 机器学习和深度学习算法AI行业要求从业者熟练掌握各种机器学习和深度学习算法,并了解其原理和应用。掌握算法的优化和调参技巧也是非常重要的。 4. 数据处理和数据分析技能:对于从业AI行业的人员来说,处理和分析大量数据的能力是必不可少的。他们需要具备数据清洗、特征提取和数据可视化等方面的技能。 5. 领域知识:AI涉及各个领域,从金融到医疗再到农业等等。从业者需要了解所从事领域的专业知识,以便将AI技术应用到实际问题中。 6. 解决问题的能力:AI行业需要人员具备解决问题的能力和创新思维。他们需要能够快速分析和解决各种技术和业务难题。 总之,从业AI行业需要具备一定的编程基础、数学与统计学知识、机器学习和深度学习算法的理解和应用能力,以及数据处理和分析能力。此外,拥有领域知识和解决问题的能力也将使AI从业者更具竞争力。 ### 回答3: 从业AI行业需要具备一定的技能和知识。首先,必须具备扎实的计算机科学和数学基础。AI是建立在计算机领域的基础上的,理解计算机的工作原理和算法是至关重要的。 其次,熟悉编程语言和工具也是必不可少的。AI行业常用的编程语言包括Python、Java、C++等,掌握其中一种或多种语言,能够高效地进行算法实现和开发。 此外,对数据处理和分析有一定的经验也是必备的技能。AI的核心是数据驱动,通过对大量的数据进行处理和分析,才能提取有用的信息和建立有效的模型。数据处理技术如数据清洗、特征提取等,以及数据分析方法如统计学、机器学习等是非常重要的。 还需要了解机器学习和深度学习的概念和算法。机器学习是AI的重要分支,通过大量的训练数据和算法来构建模型并进行预测和决策。而深度学习则是机器学习的一种形式,通过深层神经网络的学习和优化来实现更复杂的任务。 此外,AI行业还需要具备良好的问题解决能力和创新思维。AI领域的问题常常是复杂且多样的,需要能够将实际问题抽象化并解决的能力。此外,创新思维能够帮助从业者在解决问题时找到新的、有效的方法和思路。 综上所述,从业AI行业需要具备计算机科学和数学基础、编程能力、数据处理和分析经验、机器学习和深度学习的知识,以及良好的问题解决能力和创新思维。这些技能的掌握将有助于在AI行业中取得成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值