从梯度下降到自适应学习率的演变-神经网络优化算法的革命 (从梯度下降到平衡状态)
引言
神经网络的优化是深度学习中的关键问题之一。传统的优化算法,如梯度下降,虽然在训练神经网络时取得了一定的成功,但其存在一些问题,如学习率的选择困难、收敛速度慢等。为了克服这些问题,研究者们提出了一系列新的优化算法,其中自适应学习率方法成为了研究的热点。本文将探讨神经网络优化算法的新思路,从梯度下降到自适应学习率的发展与应用。梯度下降
梯度下降是一种常用的神经网络优化算法,其基本思想是通过计算损失函数关于模型参数的梯度,然后按照梯度的反方向更新模型参数,以最小化损失函数。梯度下降算法的更新公式如下: w_t+1 = w_t - α ∇f(w_t) 其中,w_t表示模型参数在第t次迭代时的值,α表示学习率,∇f(w_t)表示损失函数f(w_t)关于w_t的梯度。 梯度下降算法具有简单易懂、计算量小等优点,但是也存在一些问题: 学习率的选择困难:学习率的大小直接影响梯度下降算法的收敛速度和稳定性。过大的学习率可能导致模型无法收敛,而过小的学习率则会导致收敛速度过慢。通常需要通过经验调整来确定合适的学习率,这可能会是一个耗时且繁琐的过程。 容易陷入局部最优解:梯度下降算法在处理非凸优化问题时容易陷入局部最优解,即找到一个局部最优解而不是全局最优解。这是因为梯度下降算法只关注局部梯度信息,而忽略了全局最优解的可能存在。自适应学习率算法
为了解决梯度下降算法的问题,研究者们提出了一系列自适应学习率的优化算法。这些算法通过自动调整学习率的大小和方向,以适应不同的模型和数据特性,从而提高优化的效果和速度。 自适应学习率算法的主要思想是根据每个参数的梯度信息来动态调整其学习率。如果某个参数的梯度较大,则说明该参数对损失函数的影响较大,需要使用较小的学习率来谨慎更新;如果某个参数的梯度较小,则说明该参数对损失函数的影响较小,可以大胆地使用较大的学习率来更新。AdaGrad算法
AdaGrad算法是自适应学习率算法的代表之一。AdaGrad算法通过对每个参数的学习率进行自适应调整,使得梯度较大的参数的学习率减小,而梯度较小的参数的学习率增大,从而更好地适应不同参数的变化范围。AdaGrad算法的更新公式如下: g_t = g_t-1 + ∇f(w_t) ∇f(w_t) w_t+1 = w_t - α ∇f(w_t) / sqrt(g_t) 其中,g_t表示梯度的平方和的累积值,α表示学习率。 AdaGrad算法通过累积梯度的平方和来动态调整学习率,使得梯度较大的参数的学习率减小,而梯度较小的参数的学习率增大。这种自适应学习率的调整方式可以加速模型的收敛,并且对于稀疏数据和非平稳目标函数也具有较好的适应性。RMSprop算法
RMSprop算法是AdaGrad算法的改进版本。RMSprop算法引入了一个衰减系数γ,用来平衡历史梯度和当前梯度的影响。RMSprop算法的更新公式如下: g_t = γ g_t-1 + (1 - γ) ∇f(w_t) ∇f(w_t) w_t+1 = w_t - α ∇f(w_t) / sqrt(g_t + ε) 其中,γ表示衰减系数,ε是一个很小的常数,用来防止分母为0。 RMSprop算法通过引入衰减系数来平衡历史梯度和当前梯度的影响,从而更好地适应非平稳目标函数。Adam算法
Adam算法是自适应学习率算法的另一种改进版本。Adam算法结合了动量和自适应学习率的思想,通过计算梯度的一阶矩和二阶矩估计来调整学习率。Adam算法的更新公式如下: m_t = β_1 m_t-1 + (1 - β_1) ∇f(w_t) v_t = β_2 v_t-1 + (1 - β_2) ∇f(w_t) ∇f(w_t) w_t+1 = w_t - α m_t / (sqrt(v_t) + ε) 其中,m_t表示梯度的一阶矩估计,v_t表示梯度二阶矩估计,β_1和β_2表示动量系数,α表示学习率,ε是一个很小的常数,用来防止分母为0。 Adam算法通过计算梯度的一阶矩和二阶矩估计来调整学习率,使得梯度较大的参数的学习率减小,而梯度较小的参数的学习率增大。同时,Adam算法还利用了动量来加速梯度下降的过程。总结
自适应学习率算法是神经网络优化算法的新思路,通过自动调整学习率的大小和方向,可以更好地适应不同的模型和数据特性,提高优化的效果和速度。AdaGrad、RMSprop和Adam等算法都是自适应学习率算法的代表,它们在实际应用中取得了显著的成果。 未来,我们可以进一步研究和改进自适应学习率算法,以适应更复杂的模型和任务需求,推动神经网络优化算法的发展。常用优化器算法归纳介绍
优化器是神经网络训练过程中,进行梯度下降以寻找最优解的优化方法。不同方法通过不同方式(如附加动量项,学习率自适应变化等)侧重于解决不同的问题,但最终大都是为了加快训练速度。
这里就介绍几种常见的优化器,包括其原理、数学公式、核心思想及其性能;
核心思想: 即针对每次输入的训练数据,计算输出预测与真值的Loss的梯度;
从表达式来看,网络中参数的更新,是不断向着最小化Loss函数的方向移动的:
优点: 简单易懂,即对于相应的最优解(这里认为是Loss的最小函数),每次变量更新都是沿着局部梯度下降最快的方向,从而最小化损失函数。
缺点:
不同于标准梯度下降法(Gradient Descent)一次计算所有数据样本的Loss并计算相应的梯度,批量梯度下降法(BGD, Batch Gradient Descent)每次只取一个小批次的数据及其真实标签进行训练,称这个批次为mini-batch;
优点:
缺点: 随机梯度下降法的 batch size 选择不当可能导致模型难以收敛;由于这种方法是在一次更新中,就对整个数据集计算梯度,所以计算起来非常慢,遇到很大量的数据集也会非常棘手,而且不能投入新数据实时更新模型。
我们会事先定义一个迭代次数 epoch,首先计算梯度向量 params_grad,然后沿着梯度的方向更新参数 params,learning rate 决定了我们每一步迈多大。
Batch gradient descent 对于凸函数可以收敛到全局极小值,对于非凸函数可以收敛到局部极小值。
和 BGD 的一次用所有数据计算梯度相比,SGD 每次更新时对每个样本进行梯度更新,对于很大的数据集来说,可能会有相似的样本,这样 BGD 在计算梯度时会出现冗余,而 SGD 一次只进行一次更新,就没有冗余,而且比较快,并且可以新增样本。
即训练时,每次只从一批训练样本中随机选取一个样本进行梯度下降;对随机梯度下降来说,只需要一次关注一个训练样本,一点点把参数朝着全局最小值的方向进行修改了。
整体数据集是个循环,其中对每个样本进行一次参数更新
缺点:
梯度下降速度比较慢,而且每次梯度更新时往往只专注与局部最优点,而不会恰好指向全局最优点;
单样本梯度更新时会引入许多噪声(跟训练目标无关的特征也会被归为该样本分类的特征);
SGD 因为更新比较频繁,会造成 cost function 有严重的震荡。
BGD 可以收敛到局部极小值,当然 SGD 的震荡可能会跳到更好的局部极小值处。
当我们稍微减小 learning rate,SGD 和 BGD 的收敛性是一样的。
优点:
当处理大量数据时,比如SSD或者faster-rcnn等目标检测模型,每个样本都有大量候选框参与训练,这时使用随机梯度下降法能够加快梯度的计算。
随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况,那么可能只用其中部分的样本,就已经将迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。缺点是SGD的噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。所以虽然训练速度快,但是准确度下降,并不是全局最优。虽然包含一定的随机性,但是从期望上来看,它是等于正确的导数的。
梯度更新规则:
MBGD 每一次利用一小批样本,即 n 个样本进行计算,这样它可以降低参数更新时的方差,收敛更稳定,另一方面可以充分地利用深度学习库中高度优化的矩阵操作来进行更有效的梯度计算。
和 SGD 的区别是每一次循环不是作用于每个样本,而是具有 n 个样本的批次。
超参数设定值:n 一般取值在 50~256
缺点:(两大缺点)
鞍点就是:一个光滑函数的鞍点邻域的曲线,曲面,或超曲面,都位于这点的切线的不同边。例如这个二维图形,像个马鞍:在x-轴方向往上曲,在y-轴方向往下曲,鞍点就是(0,0)。
为了应对上面的两点挑战就有了下面这些算法
核心思想:
不使用动量优化时,每次训练的梯度下降方向,都是按照当前批次训练数据计算的,可能并不能代表整个数据集,并且会有许多噪声,下降曲线波动较大:
添加动量项之后,能够有效减小波动,从而加快训练速度:
当我们将一个小球从山上滚下来时,没有阻力的话,它的动量会越来越大,但是如果遇到了阻力,速度就会变小。 加入的这一项,可以使得梯度方向不变的维度上速度变快,梯度方向有所改变的维度上的更新速度变慢,这样就可以加快收敛并减小震荡。
优点:
通过动量更新,参数向量会在有持续梯度的方向上增加速度; 使梯度下降时的折返情况减轻,从而加快训练速度;
缺点:
如果数据集分类复杂,会导致和 时刻梯度 向量方向相差较大;在进行向量求和时,得到的会非常小,反而使训练速度大大下降甚至模型难以收敛。
这种情况相当于小球从山上滚下来时是在盲目地沿着坡滚,如果它能具备一些先知,例如快要上坡时,就知道需要减速了的话,适应性会更好。
目前为止,我们可以做到,在更新梯度时顺应 loss function 的梯度来调整速度,并且对 SGD 进行加速。
核心思想:
自适应学习率优化算法针对于机器学习模型的学习率,采用不同的策略来调整训练过程中的学习率,从而大大提高训练速度。
这个算法就可以对低频的参数做较大的更新,对高频的做较小的更新,也因此,对于稀疏的数据它的表现很好,很好地提高了 SGD 的鲁棒性,例如识别 Youtube 视频里面的猫,训练 GloVe word embeddings,因为它们都是需要在低频的特征上有更大的更新。
Adagrad的优点是减少了学习率的手动调节
式中,表示第个分类,表示第迭代同时也表示分类累计出现的次数。表示初始的学习率取值(一般为0.01)
AdaGrad的核心思想: 缩放每个参数反比于其所有梯度历史平均值总和的平方根。具有代价函数最大梯度的参数相应地有较大的学习率,而具有小梯度的参数又较小的学习率。
缺点:
它的缺点是分母会不断积累,这样学习率就会收缩并最终会变得非常小。
这个算法是对 Adagrad 的改进,
和 Adagrad 相比,就是分母的换成了过去的梯度平方的衰减平均值,指数衰减平均值
这个分母相当于梯度的均方根 root mean squared (RMS),在数据统计分析中,将所有值平方求和,求其均值,再开平方,就得到均方根值 ,所以可以用 RMS 简写:
其中的计算公式如下, 时刻的依赖于前一时刻的平均和当前的梯度:
梯度更新规则:
此外,还将学习率换成了 RMS[Δθ],这样的话,我们甚至都不需要提前设定学习率了:
超参数设定值: 一般设定为 0.9
RMSprop 是 Geoff Hinton 提出的一种自适应学习率方法。
RMSprop 和 Adadelta 都是为了解决 Adagrad 学习率急剧下降问题的,
梯度更新规则:
RMSprop 与 Adadelta 的第一种形式相同:(使用的是指数加权平均,旨在消除梯度下降中的摆动,与Momentum的效果一样,某一维度的导数比较大,则指数加权平均就大,某一维度的导数比较小,则其指数加权平均就小,这样就保证了各维度导数都在一个量级,进而减少了摆动。允许使用一个更大的学习率η)
超参数设定值:
Hinton 建议设定为 0.9, 学习率为 0.001。
这个算法是另一种计算每个参数的自适应学习率的方法。相当于 RMSprop + Momentum
除了像 Adadelta 和 RMSprop 一样存储了过去梯度的平方 vt 的指数衰减平均值 ,也像 momentum 一样保持了过去梯度 mt 的指数衰减平均值:
如果和被初始化为 0 向量,那它们就会向 0 偏置,所以做了偏差校正,通过计算偏差校正后的和来抵消这些偏差:
梯度更新规则:
超参数设定值: 建议
示例一
示例二
示例三
上面情况都可以看出,Adagrad, Adadelta, RMSprop 几乎很快就找到了正确的方向并前进,收敛速度也相当快,而其它方法要么很慢,要么走了很多弯路才找到。
由图可知自适应学习率方法即 Adagrad, Adadelta, RMSprop, Adam 在这种情景下会更合适而且收敛性更好。
如果数据是稀疏的,就用自适用方法,即 Adagrad, Adadelta, RMSprop, Adam。
RMSprop, Adadelta, Adam 在很多情况下的效果是相似的。
Adam 就是在 RMSprop 的基础上加了 bias-correction 和 momentum,
随着梯度变的稀疏,Adam 比 RMSprop 效果会好。
整体来讲,Adam 是最好的选择。
很多论文里都会用 SGD,没有 momentum 等。SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。
如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。
各种优化器Optimizer原理:从SGD到AdamOptimizer
深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
人工智能发展综述
近十多年来,随着算法与控制技术的不断提高,人工智能正在以爆发式的速度蓬勃发展。 并且,随着人机交互的优化、大数据的支持、模式识别技术的提升,人工智能正逐渐的走入我们的生活。 本文主要阐述了人工智能的发展历史、发展近况、发展前景以及应用领域。 人工智能(Artificial Intelligence)简称AI,是麦卡赛等人在1956年的一场会议时提出的概念。 近几年,在“人机大战”的影响下,人工智能的话题十分的火热,特别是在“阿尔法狗”(AlphaGo)战胜李世石后,人们一直在讨论人是否能“战胜”自己制造的有着大数据支持的“人工智能”,而在各种科幻电影的渲染中,人工智能的伦理性、哲学性的问题也随之加重。 人工智能是一个极其复杂又令人激动的事物,人们需要去了解真正的人工智能,因此本文将会对什么是人工智能以及人工智能的发展历程、未来前景和应用领域等方面进行详细的阐述。 人们总希望使计算机或者机器能够像人一样思考、像人一样行动、合理地思考、合理地行动,并帮助人们解决现实中实际的问题。 而要达到以上的功能,则需要计算机(机器人或者机器)具有以下的能力: 自然语言处理(natural language processing) 知识表示(knowledge representation) 自动推理(automated reasoning) 机器学习(machine learning) 计算机视觉(computer vision) 机器人学(robotics) 这6个领域,构成了人工智能的绝大多数内容。 人工智能之父阿兰·图灵(Alan Turing)在1950年还提出了一种图灵测试(Turing Test),旨在为计算机的智能性提供一个令人满意的可操作性定义。 关于图灵测试,是指测试者在与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。 进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。 图灵测试是在60多年前就已经提出来了,但是在现在依然适用,然而我们现在的发展其实远远落后于当年图灵的预测。 在2014年6月8日,由一个俄罗斯团队开发的一个模拟人类说话的脚本——尤金·古斯特曼(Eugene Goostman)成为了首个通过图灵测试的“计算机”,它成功的使人们相信了它是一个13岁的小男孩,该事件成为了人工智能发展的一个里程碑。 在2015年,《Science》杂志报道称,人工智能终于能像人类一样学习,并通过了图灵测试。 一个AI系统能够迅速学会写陌生文字,同时还能识别出非本质特征,这是人工智能发展的一大进步。 ①1943-1955年人工智能的孕育期 人工智能的最早工作是Warren McCulloch和Walter Pitts完成的,他们利用了基础生理学和脑神经元的功能、罗素和怀特海德的对命题逻辑的形式分析、图灵的理论,他们提出了一种神经元模型并且将每个神经元叙述为“开”和“关”。 人工智能之父图灵在《计算机与智能》中,提出了图灵测试、机器学习、遗传算法等各种概念,奠定了人工智能的基础。 ②1956年人工智能的诞生 1956年的夏季,以麦卡锡、明斯基、香农、罗切斯特为首的一批科学家,在达特茅斯组织组织了一场两个月的研讨会,在这场会议上,研究了用机器研究智能的一系列问题,并首次提出了“人工智能”这一概念,人工智能至此诞生。 ③1952-1969年人工智能的期望期 此时,由于各种技术的限制,当权者人为“机器永远不能做X”,麦卡锡把这段时期称作“瞧,妈,连手都没有!”的时代。 后来在IBM公司,罗切斯特和他的同事们制作了一些最初的人工智能程序,它能够帮助学生们许多学生证明一些棘手的定理。 1958年,麦卡锡发表了“Program with Common Sense”的论文,文中他描述了“Advice Taker”,这个假想的程序可以被看作第一个人工智能的系统。 ④1966-1973人工智能发展的困难期 这个时期,在人工智能发展时主要遇到了几个大的困难。 第一种困难来源于大多数早期程序对其主题一无所知; 第二种困难是人工智能试图求解的许多问题的难解性。 第三种困难是来源于用来产生智能行为的基本结构的某些根本局限。 ⑤1980年人工智能成为产业 此时期,第一个商用的专家系统开始在DEC公司运转,它帮助新计算机系统配置订单。 1981年,日本宣布了“第五代计算机”计划,随后美国组建了微电子和计算机技术公司作为保持竞争力的集团。 随之而来的是几百家公司开始研发“专家系统”、“视觉系统”、“机器人与服务”这些目标的软硬件开发,一个被称为“人工智能的冬天”的时期到来了,很多公司开始因为无法实现当初的设想而开始倒闭。 ⑥1986年以后 1986年,神经网络回归。 1987年,人工智能开始采用科学的方法,基于“隐马尔可夫模型”的方法开始主导这个领域。 1995年,智能Agent出现。 2001年,大数据成为可用性。 在1997年时,IBM公司的超级计算机“深蓝”战胜了堪称国际象棋棋坛神话的前俄罗斯棋手Garry Kasparov而震惊了世界。 在2016年时,Google旗下的DeepMind公司研发的阿尔法围棋(AlphaGo)以4:1的战绩战胜了围棋世界冠军、职业九段棋手李世石,从而又一次引发了关于人工智能的热议,随后在2017年5月的中国乌镇围棋峰会上以3:0的战绩又战胜了世界排名第一的柯洁。 2017年1月6日,网络的人工智能机器人“小度”在最强大脑的舞台上人脸识别的项目中以3:2的成绩战胜了人类“最强大脑”王峰。 1月13日,小度与“听音神童”孙亦廷在语音识别项目中以2:2的成绩战平。 随后又在1月21日又一次在人脸识别项目中以2:0的成绩战胜了“水哥”王昱珩,更在最强大脑的收官之战中战胜了人类代表队的黄政与Alex。 2016年9月1日,网络李彦宏发布了“网络大脑”计划,利用计算机技术模拟人脑,已经可以做到孩子的智力水平。 李彦宏阐述了网络大脑在语音、图像、自然语言处理和用户画像领域的前沿进展。 目前,网络大脑语音合成日请求量2.5亿,语音识别率达97%。 “深度学习”是网络大脑的主要算法,在图像处理方面,网络已经成为了全世界的最领先的公司之一。 网络大脑的四大功能分别是:语音、图像,自然语言处理和用户画像。 语音是指具有语音识别能力与语音合成能力,图像主要是指计算机视觉,自然语言处理除了需要计算机有认知能力之外还需要具备推理能力,用户画像是建立在一系列真实数据之上的目标用户模型。 工业4.0是由德国提出来的十大未来项目之一,旨在提升制造业的智能化水平,建立具有适应性、资源效率及基因工程学的智慧工厂。 工业4.0已经进入中德合作新时代,有明确提出工业生产的数字化就是“工业4.0”对于未来中德经济发展具有重大意义。 工业4.0项目主要分为三大主题:智能工厂、智能生产、智能物流。 它面临的挑战有:缺乏足够的技能来加快第四次工业革命的进程、企业的IT部门有冗余的威胁、利益相关者普遍不愿意改变。 但是随着AI的发展,工业4.0的推进速度将会大大推快。 人工智能可以渗透到各行各业,领域很多,例如: ①无人驾驶:它集自动控制、体系结构、人工智能、视觉计算等众多技术于一体,是计算机科学、模式识别和智能控制技术高度发展的产物世界上最先进的无人驾驶汽车已经测试行驶近五十万公里,其中最后八万公里是在没有任何人为安全干预措施下完成的。 英国政府也在资助运输研究实验室(TRL),它将在伦敦测试无人驾驶投递车能否成功用于投递包裹和其他货物,使用无人驾驶投递车辆将成为在格林威治实施的众多项目之一。 ②语音识别:该技术可以使让机器知道你在说什么并且做出相应的处理,1952年贝尔研究所研制出了第一个能识别10个英文数字发音的系统。 在国外的应用中,苹果公司的siri一直处于领先状态,在国内,科大讯飞在这方面的发展尤为迅速。 ③自主规划与调整:NASA的远程Agent程序未第一个船载自主规划程序,用于控制航天器的操作调度。 ④博弈:人机博弈一直是最近非常火热的话题,深度学习与大数据的支持,成为了机器“战胜”人脑的主要方式。 ⑤废品信息过滤:学习算法可以将上十亿的信息分类成废品信息,可以为接收者节省很多时间。 ⑥机器人技术:机器人技术可以使机器人代替人类从事某些繁琐或者危险的工作,在战争中,可以运送危险物品、炸弹拆除等。 ⑦机器翻译:机器翻译可以将语言转化成你需要的语言,比如现在的网络翻译、谷歌翻译都可以做的很好,讯飞也开发了实时翻译的功能。 ⑧智能家居:在智能家居领域,AI或许可以帮上很大的忙,比如模式识别,可以应用在很多家居上使其智能化,提高人机交互感,智能机器人也可以在帮人们做一些繁琐的家务等。 专家系统是一个智能计算机程序系统,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域问题。 也就是说,专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。 知识库是专家系统质量是否优越的关键所在,即知识库中知识的质量和数量决定着专家系统的质量水平。 一般来说,专家系统中的知识库与专家系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。 机器学习(Machine Learning, ML)是一门涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等的多领域交叉学科。 专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是人工智能的核心,是使计算机具有智能的根本途径,也是深度学习的基础。 机器学习领域的研究工作主要围绕以下三个方面进行: (1)面向任务的研究 研究和分析改进一组预定任务的执行性能的学习系统。 (2)认知模型 研究人类学习过程并进行计算机模拟。 (3)理论分析 从理论上探索各种可能的学习方法和独立于应用领域的算法 机器学习是继专家系统之后人工智能应用的又一重要研究领域,也是人工智能和神经计算的核心研究课题之一。 但是现有的计算机系统和人工智能系统没有什么学习能力,至多也只有非常有限的学习能力,因而不能满足科技和生产提出的新要求。 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 它借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)进行随机化搜索,它是由美国的教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。 遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域,它是现代有关智能计算中的关键技术。 Deep Learning即深度学习,深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。 是机器学习中一种基于对数据进行表征学习的方法。 他的基本思想是:假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I =>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。 这表明信息处理不会增加信息,大部分处理会丢失信息。 保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。 Deep Learning需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设设计了一个系统S(有n层),通过调整系统中参数,使得它的输出仍然是输入I,那么就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。 对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。 通过这种方式,就可以实现对输入信息进行分级表达了。 深度学习的主要技术有:线性代数、概率和信息论;欠拟合、过拟合、正则化;最大似然估计和贝叶斯统计;随机梯度下降;监督学习和无监督学习深度前馈网络、代价函数和反向传播;正则化、稀疏编码和dropout;自适应学习算法;卷积神经网络;循环神经网络;递归神经网络;深度神经网络和深度堆叠网络; LSTM长短时记忆;主成分分析;正则自动编码器;表征学习;蒙特卡洛;受限波兹曼机;深度置信网络;softmax回归、决策树和聚类算法;KNN和SVM; 生成对抗网络和有向生成网络;机器视觉和图像识别;自然语言处理;语音识别和机器翻译;有限马尔科夫;动态规划;梯度策略算法;增强学习(Q-learning)。 随着人工智能的发展,人工智能将会逐渐走入我们的生活、学习、工作中,其实人工智能已经早就渗透到了我们的生活中,小到我们手机里的计算机,Siri,语音搜索,人脸识别等等,大到无人驾驶汽车,航空卫星。 在未来,AI极大可能性的去解放人类,他会替代人类做绝大多数人类能做的事情,正如刘慈欣所说:人工智能的发展,它开始可能会代替一部分人的工作,到最后的话,很可能他把90%甚至更高的人类的工作全部代替。 吴恩达也表明,人工智能的发展非常快,我们可以用语音讲话跟电脑用语音交互,会跟真人讲话一样自然,这会完全改变我们跟机器交互的办法。 自动驾驶对人也有非常大的价值,我们的社会有很多不同的领域,比如说医疗、教育、金融,都会可以用技术来完全改变。 [1] Russell,,P.人工智能:一种现代的方法(第3版)北京:清华大学出版社,2013(2016.12重印) [2]库兹韦尔,人工智能的未来杭州:浙江人民出版社,2016.3 [3]苏楠.人工智能的发展现状与未来展望[J].中小企业管理与科技(上旬刊),2017,(04):107-108. [4]王超.从AlphaGo的胜利看人工智能的发展历程与应用前景[J].中国新技术新产品,2017,(04):125-126. [5]朱巍,陈慧慧,田思媛,王红武.人工智能:从科学梦到新蓝海——人工智能产业发展分析及对策[J].科技进步与对策,2016,(21):66-70. [6]王江涛.浅析人工智能的发展及其应用[J].电子技术与软件工程,2015,(05):264. [7]杨焱.人工智能技术的发展趋势研究[J].信息与电脑(理论版),2012,(08):151-152. [8]张妮,徐文尚,王文文.人工智能技术发展及应用研究综述[J].煤矿机械,2009,(02):4-7. [9]王永忠.人工智能技术在智能建筑中的应用研究[J].科技信息,2009,(03):343+342. [10]李德毅,肖俐平.网络时代的人工智能[J]中文信息学报,2008,(02):3-9. [11]李红霞.人工智能的发展综述[J].甘肃科技纵横,2007,(05):17-18 [12]孙科.基于Spark的机器学习应用框架研究与实现[D].上海交通大学,2015. [13]朱军,胡文波.贝叶斯机器学习前沿进展综述[J].计算机研究与发展,2015,(01):16-26. [14]何清,李宁,罗文娟,史忠植.大数据下的机器学习算法综述[J].模式识别与人工智能,2014,(04):327-336. [15]郭亚宁,冯莎莎.机器学习理论研究[J].中国科技信息,2010,(14):208-209+214. [16]陈凯,朱钰.机器学习及其相关算法综述[J].统计与信息论坛,2007,(05):105-112. [17]闫友彪,陈元琰.机器学习的主要策略综述[J].计算机应用研究,2004,(07):4-10+13. [18]张建明,詹智财,成科扬,詹永照.深度学习的研究与发展[J].江苏大学学报(自然科学版),2015,(02):191-200. [19]尹宝才,王文通,王立春.深度学习研究综述[J].北京工业大学学报,2015,(01):48-59. [20]刘建伟,刘媛,罗雄麟.深度学习研究进展[J].计算机应用研究,2014,(07):1921-1930+1942 [21]马永杰,云文霞.遗传算法研究进展[J].计算机应用研究,2012,(04):1201-1206+1210. [22]曹道友.基于改进遗传算法的应用研究[D].安徽大学,2010
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。