人工智能算法综述 (一)

“那一些被认作常识的东西,是不是只是时代的附属品?从整个历史的长河去看待,也许是一些莫名其妙或者残忍至极的怪事而已”

2017-2018 这两年因为一些爆炸式的AI应用,导致又把公众的视野转向这个方向发展,自图灵提出”图灵测试”之后,AI已经爆发了两次热潮,相应的也跌入了两次低谷,目前看应该是进入了第三次的热潮,但是之后是迎来” 奇点“,还是第三次低谷,尚不可知。

强人工智能(也就是通用人工智能),或者说机器的自我意识,自然是一个终极目标,但是当我们朝着这个目标行进的时候,总会获得一些小奖励,这些小奖励就是现在的弱人工智能,一些很实用的算法理论跟应用,虽然落地还有一些难度,但是整体趋于成熟,商用的应用已经开始遍地开花,短时间内将会引发全行业AI+,所有业务都会被AI刷新一遍,当然有人会说一堆职业要消亡了,又有很多人要下岗了。但是也同样会创造出更多的职业与岗位。而且自有人类以来,这件事我们也干过不少次了(前三次工业革命),完全不用惊慌,历史的车轮滚滚而行,总会丢下一部分人,又载上另外一部分人,时代就是逆水行舟,不进则退,总要保持学习,保持上进,保持饥渴。如果时代抛弃了你连一句再见也不说,那你就得赶紧加快脚步上去揍它一顿。

RL:强化学习(reinforcement learning)

关于RL的详细内容可以看 Deepmind 的公开课

强化学习核心的原理是:

造一个agent(智能代理者)跟环境(state)交互(action)然后根据获得的反馈(reward)反复训练后,这个agent可以在遇到任意的state时都能选择最优的决策(action),这个最优的决策会在未来带来最大化的reward。

RL解决的问题是连续决策问题,就是有一系列的决策之后才会获得奖励的现实问题。比方说某baby 3岁,暂且先叫A酱,A酱还不会拿杯子喝东西。我们知道最优策略就是

:靠近杯子,拿起来,倒进嘴巴里。

但是她一开始的时候并不知道看到一个杯子在远处,究竟是应该靠近,还是远离。而且就算反复做了这2件事,也没有一些立即奖励给她(喝到东西)。所以说奖励是滞后的,但是我们希望可以对动作的打分,根据分数的高低让智能体选出最佳的决策,比方说 靠近杯子10分,远离杯子-10分。如果每一步都有这样的标量作为衡量标准的话,那么她就可以知道要获得奖励的最优策略是什么了,当然有些动作在不同的场景下会导致不同的效果,所以这里的打分要针对 state-action pair(不同状态对应不同的动作) 评分。

所以RL的作用就是经过反复的训练,为每对state-action 提供一个分数。这就Value based(基于分数的算法,其中的一种的RL算法实现方式)。

如果先假设 最终的奖励分数是 100分。那么究竟前一步应该分配多少分呢?然后前前一步又是多少?这里就用到了贝尔曼方程

s :state

a:action

Q就是我上面讲的分数。然后Qπ 指的就是最优策略下的分数函数。

R是指立即奖励。

人工智能算法综述 (一)

这里我们可以看到,当前的Q值是由两部分组成,当前R值+下一个状态的Q值。

假设 折扣率这里是0.5,最终的奖励分数是 100分。

反过来推导的话,A酱在喝到杯中物的时候 Q值等于R值,因为没有下一个状态了。在往前一个动作 (拿起杯子)因为只有1个动作,而且立即奖励R=0,所以Q值等于 0+ 0.5*100=50 。

然后再往前面一步,状态1(见到杯子)的时候 选择 (靠近),所以Q值 是 0+0.5(0+ 0.5100)=25

这是我们通过已知最优策略然后用贝尔曼方程反推Q值,这样便于理解Q值的含义。

虽然不知道最优策略,但是如果我们有一个所有状态所有动作的 记录Q值的表,只要反复通过上面的过程推导就能知道这个大表的所有值,最终就能通过这个大表知道最优策略。

这就是Q-learning 算法的逻辑。

当然Q-learning是不实用的,因为如果state 跟action有非常多,这个表数据量要爆炸的。

所以后续又发展好多算法,我推荐读一下DQN相关的算法。

RL很早很早就有了。

强化学习的历史发展

因为alphaGo 就是基于RL的,主要用了蒙特卡罗树搜索算法 (MCTS)然后RL这两年又被大神们推进了好多优化。

我摘一段放这里说明一下实现RL算法的几种类别:

  • Model-free:不尝试去理解环境, 环境给什么就是什么,一步一步等待真实世界的反馈, 再根据反馈采取下一步行动。
  • Model-based:先理解真实世界是怎样的, 并建立一个模型来模拟现实世界的反馈,通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。它比 Model-free 多出了一个虚拟环境,还有想象力。
  • Policy based:通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动。
  • Value based:输出的是所有动作的价值, 根据最高价值来选动作,这类方法不能选取连续的动作。
  • Monte-carlo update:游戏开始后, 要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新行为准则。
  • Temporal-difference update:在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习了。
  • On-policy:必须本人在场, 并且一定是本人边玩边学习。
  • Off-policy:可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则。

RL现阶段比较实用的算法是:

DQN,DDPG, A3C,DPPO 等

之前有一篇deepmind 关于DQN混血的报道

摘一张图大家看看

横轴是训练次数,纵轴是超过人类水平百分比,100%就是等同于平均的人类玩游戏的水平,在57款雅达利游戏中的平均表现。

2017-2018年 一些很有趣的开源应用示例,以及使用的算法

CNN :图像识别 人脸识别 风格迁移

RL :alphaGO 游戏代打 机器人控制 阿里商品推荐系统

GANs:风格迁移 草图生成实体图 猫脸转狗脸 去掉图像遮挡 年龄转移 超分辨率

RNN LSTM:翻译模型,生成古诗,生成对联,PSD生成HTML代码

Original: https://www.cnblogs.com/7rhythm/p/8545362.html
Author: 鬼柒
Title: 人工智能算法综述 (一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644301/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球