一文读懂强化学习

从一个小故事说起

你还记得小时候学骑自行车吗?

没有人一上来就会骑。刚开始的时候,你歪歪扭扭地扶着车把,脚踩上踏板,车子晃了两下——砰,摔了。膝盖破了皮,疼得龇牙咧嘴。

但你爬起来,又试了一次。这回你发现,身体稍微往左倾的时候,车把往右打一点,好像能稳住。于是你又骑了几米远,然后——又摔了。

就这样摔了无数次之后,突然有一天,你发现自己居然能骑着车满院子跑了。那种感觉特别神奇,你也说不清楚具体是怎么学会的,但就是会了。

这个过程,其实就藏着强化学习最核心的秘密。

那到底啥是强化学习?

咱们先别急着下定义,继续聊骑自行车这事儿。

你想想,学骑车的时候,有没有人给你一本《自行车骑行标准教程》,上面写着左腿发力系数0.7,右手握把角度32度?肯定没有吧。

你是怎么学会的呢?靠的是两样东西:摔跤带来的惩罚,和稳住车子时那种奖励感

摔了,疼,大脑自动记住:刚才那个动作不太对,下次别这么干了。

稳住了,爽,大脑又记住:这个感觉不错,下次还这么来。

一次又一次,你的大脑就在这种试错—反馈—调整的循环里,慢慢摸索出了骑车的诀窍。

强化学习,说白了,就是让机器用同样的方式学东西。

不是给它一堆标准答案让它死记硬背,而是把它扔到一个环境里,让它自己去试。做对了,给点甜头;做错了,给点苦头。然后它就在这个过程中,慢慢变聪明。

和你熟悉的学习有啥不一样?

说到这儿,你可能会想:机器学习不就是教机器学东西吗?这有啥特别的?

别急,咱们对比一下你就明白了。

想象你要教一个小朋友认猫和狗。传统的方式是怎么做的呢?你拿出一堆照片,指着说:这是猫,这是狗,这是猫,这也是狗……反复给他看,看多了他就记住了。这叫监督学习,特点是你得提前准备好所有的标准答案。

但问题来了:如果你要教的不是认图片,而是下围棋呢?

围棋有多少种可能的局面?据说比宇宙中的原子还多。你不可能把每一步的标准答案都写出来教给机器,因为你自己都不知道答案是什么。

这时候,强化学习就派上用场了。

你不用告诉机器每一步该怎么下,你只需要告诉它一件事:赢了有奖励,输了没奖励。然后让它自己去下棋,下个几百万盘、几千万盘。慢慢地,它就能摸索出怎么下才能赢。

你看出区别了吗?

监督学习像是照着答案抄作业,强化学习像是自己琢磨怎么考高分。前者需要有人告诉你对错,后者只需要知道最终结果好不好。

拆解一下:强化学习里都有些啥?

好,现在咱们来拆解一下强化学习这个事儿,看看里面都有些什么零件。

放心,不会很复杂,我还是拿生活中的例子来说。

第一个零件:智能体(Agent)

这就是那个学习者。可以是一个机器人,可以是一个游戏里的角色,也可以是你家那只学握手的狗。在骑自行车的例子里,这个智能体就是你自己。

第二个零件:环境(Environment)

智能体待的那个世界。对于骑车的你来说,环境就是那条路、那辆车、还有地球引力。对于下棋的AI来说,环境就是棋盘和对手。

第三个零件:状态(State)

智能体在某一刻的处境。比如你骑车骑到一半,车子开始往左歪——这就是一个状态。再比如下围棋下到第50手,棋盘上黑白子分布的样子,也是一个状态。

第四个零件:动作(Action)

智能体能做的选择。车子往左歪了,你可以选择把车把往右打,也可以选择用脚撑地,还可以选择放弃治疗直接跳车——这些都是动作。

第五个零件:奖励(Reward)

这是最关键的东西。智能体做了一个动作之后,环境会给它一个反馈。这个反馈可能是正的(奖励),也可能是负的(惩罚)。

你稳住了车子,心里那种耶,我可以的感觉,就是奖励。你摔了个狗啃泥,膝盖火辣辣的疼,就是惩罚。

整个强化学习的核心逻辑,就是智能体通过不断尝试,慢慢搞清楚:在什么状态下,做什么动作,能拿到最多的奖励

生活中到处都是强化学习

其实你仔细想想,强化学习这种模式,咱们每天都在用。

养孩子不就是这样吗?

小朋友吃饭把碗端稳了,你夸一句真棒,他就知道这样做是对的。他把饭撒了一地,你皱个眉头,他就知道下次得小心点。你不可能把如何吃饭的每个细节都教给他,但通过一次次的正向反馈和负向反馈,他就慢慢学会了。

训练宠物也是这个道理。

你让狗狗坐下,它坐了,你给它一块小饼干。它没坐,你就不给。反复几次之后,它就知道坐下这个口令对应的动作是什么了。你又没法跟狗狗用语言解释坐下是什么意思,但通过奖励机制,它就是能学会。

再想想你自己打游戏的过程。

玩一个新游戏,刚开始你根本不知道怎么玩。但你会瞎按几个键,看看有什么反应。打死一个小怪,掉了金币,哦,这样可以;撞上一个陷阱,掉血了,这个地方要躲着走。没人教你,你就是在这种试错中越玩越溜。

说到底,强化学习不是什么高深莫测的概念,它其实是对经验学习这种人类(甚至动物)最本能的学习方式的一种模拟。

那为什么强化学习这么重要?

聊到这儿,你可能会问:既然这个原理这么简单,为什么最近这些年强化学习突然变得这么火?

这就得说到几个让人印象深刻的名场面了。

2016年,谷歌的AlphaGo对战围棋世界冠军李世石,4比1取胜。这场比赛当时轰动全球,因为围棋一直被认为是人类智慧的巅峰游戏,规则看似简单,变化却无穷无尽。很多人觉得机器要下好围棋,至少还得等个几十年。结果,AlphaGo就这么横空出世了。

而AlphaGo背后的核心技术之一,就是强化学习。

它是怎么变强的呢?简单说,就是自己和自己下棋,下了几千万盘,在赢了加分、输了扣分的反馈中,不断优化自己的下棋策略。没有人类老师手把手教它每一步怎么走,它就是在试错—反馈—调整的循环里,从一个菜鸟变成了超越人类的棋手。

这事儿为什么意义重大?

因为它证明了一件事:对于那些连人类自己都说不清楚怎么做才是最优解的复杂问题,机器可以通过强化学习自己找到答案。

这个能力太厉害了。

你想想看,生活中有多少问题是这种类型的:

  • 开车的时候,在复杂的交通环境下怎么做决策?
  • 在股票市场里,什么时候买入什么时候卖出?
  • 机器人在工厂里,怎么规划路线才能效率最高?
  • 给用户推荐视频,推什么才能让他看得最开心?

这些问题的共同特点是:没有标准答案,只有好和不好的结果。而强化学习,恰恰就是解决这类问题的利器。

强化学习的难处:不是那么容易的

当然了,强化学习听起来很美,但实际操作起来,有不少坑。

第一个难题:奖励怎么设计?

你可能觉得这不是很简单吗?赢了给奖励,输了给惩罚呗。

但实际上,奖励设计是一门艺术。

举个例子,你想训练一个机器人去房间里找东西。你设计的奖励是找到东西给10分。结果你发现,机器人在房间里转了半天,什么也不干。为啥?因为它还没摸清楚怎么才能找到东西,而且乱动可能会撞墙扣分,干脆不动最安全。

你得想办法给它一些中间奖励,比如靠近目标加1分,这样它才有动力往前探索。但这个中间奖励设计不好,又可能把机器人带偏。

所以说,怎么设计奖励让机器人真的往你想要的方向学习,是个技术活。

第二个难题:探索和利用的矛盾。

这个说起来有点绕,我举个接地气的例子。

假设你来到一个新城市,想找好吃的。你发现一家店味道还不错,那你接下来该怎么办?

如果你每天都去这家店吃,确实能保证不踩雷,但你可能错过更好吃的店。这叫利用——用你已有的经验。

如果你每天换一家新店尝试,可能会发现宝藏,但也可能踩雷踩到怀疑人生。这叫探索——去尝试你不了解的东西。

强化学习也面临同样的问题。智能体是应该坚持用已经知道的还不错的策略,还是冒险尝试新的动作,看看有没有更好的可能?

这个平衡很难把握。太保守了,可能学不到最优解;太激进了,可能一直在瞎试,浪费时间。

第三个难题:有些奖励来得太慢了。

还是拿下围棋来说。你下一步棋,要到很多步之后才知道这步棋是好是坏。甚至要到整盘棋结束,才知道最终是赢是输。

这种延迟奖励对强化学习来说是个大麻烦。因为智能体很难搞清楚,最后的输赢到底是因为哪一步走得好或者走得臭。这叫信用分配问题,是强化学习里一个很头疼的事情。

强化学习现在能干啥?

虽然有这些难题,但强化学习这些年已经在很多领域大显身手了。

游戏领域就不用说了,除了围棋,星际争霸、Dota2这些复杂的即时战略游戏,AI也已经能打赢职业选手了。

自动驾驶领域,强化学习帮助汽车学会在复杂的路况下做决策:什么时候加速、什么时候刹车、什么时候变道。

机器人控制方面,强化学习让机器人学会了走路、跳跃、翻跟头这些复杂动作,而不需要工程师去设计每一个关节该怎么转。

推荐系统里,强化学习帮助平台学会怎么给你推视频、推商品,让你看得更爽、买得更多。

甚至在科学研究中,强化学习也开始发挥作用。比如控制核聚变反应堆里的等离子体,这是人类专家都很难搞定的问题,但强化学习算法居然学会了怎么做。

说到最后

好了,说了这么多,咱们来简单总结一下。

强化学习,本质上就是让机器像小孩子一样,通过试错—反馈—调整的过程来学习。它不需要有人告诉每一步该怎么做,只需要有一个做得好给糖吃、做得不好打屁股的反馈机制,机器就能自己慢慢变聪明。

这种学习方式特别适合那些人类自己都说不清楚怎么做才是最好的复杂问题。

当然,强化学习也有它的难处,比如奖励怎么设计、探索和利用怎么平衡、延迟奖励怎么处理。但随着技术的发展,这些问题正在被一步步攻克。

下次你看到新闻里说什么AI又在某个游戏里碾压人类了,或者机器人又学会了什么高难度动作,你就可以会心一笑:这背后说不定又是强化学习在发威呢。

而如果你再往深处想想,其实我们每个人,每天都在用强化学习的方式生活着——在一次次的选择和反馈中,慢慢学会怎么应对这个世界。

只不过,机器学得更快、更不怕摔而已。

#AI新知#
愿天下没有难改的BUG 文章被收录于专栏

从业十载,一路走来经历坎坷、不顺与阻碍。幸运的是,仍在行业之中。恰逢寒冬,希望能成为一名有温度的技术人,分享所见所闻,讲述职场故事。若这些点滴能如星火照亮你前行的路,便是我与你的难得缘分。

全部评论

相关推荐

春招/实习投递,我最焦虑的事:不是没offer,是连“被拒绝”的资格都没有有人焦虑等待offer的煎熬,有人内耗自我怀疑“我是不是真的很差”,有人被身边同学的offer对比得彻夜难眠。而我,在春招+实习投递的这些日子里,最焦虑的一件事,不是面试翻车,不是拿不到offer,而是——投出去的简历,像石沉大海一样,连被拒绝的资格都没有。那种感觉,就像一拳打在棉花上,无力又挫败。每天抱着手机,刷新招聘软件、查看邮箱,从早等到晚,没有面试邀约,没有拒绝通知,甚至连“已读不回”都算是一种“回应”。看着身边同学,有的拿到了实习offer,有的已经进入春招二面,而我,连和HR对话的机会都没有,只能在深夜里反复内耗:“是我简历太烂了吗?”“我是不是真的不配找到一份实习/工作?”这段时间,我每天都在循环“自我鼓励—投递简历—等待—焦虑—自我否定”的闭环。早上醒来,先给自己打气:“今天一定会有面试邀约”,然后花1-2小时,筛选岗位、投递简历,小心翼翼地修改简历,生怕哪里出错;中午吃饭时,时不时刷新邮箱,生怕错过HR的消息;晚上熬夜到凌晨,看着招聘软件上“未读”的状态,越想越慌。我知道,很多人都有过这样的时刻:明明付出了努力,认真修改简历,精准投递岗位,却始终没有回音;明明自己不算差,有校园经历、有基础技能,却连一个实习面试的机会都拿不到;明明身边人都在往前跑,只有自己,被困在“等待”的泥潭里,寸步难行。这种焦虑,不是“求而不得”的遗憾,而是“连尝试的机会都没有”的无力,是自我价值被否定的挫败,是深夜里翻来覆去睡不着,满脑子都是“我到底行不行”的内耗。我也曾试着安慰自己:“春招/实习投递本来就需要耐心,再等等就好了”“别人也有投递很久没回应的,不止我一个”,可道理都懂,情绪却不受控制。尤其是看到和我同专业、同背景的同学,甚至是比我更普通的同学,都陆续拿到了实习offer,我就更焦虑了——为什么别人可以,我却不行?是不是我哪里做得不够好?是不是我真的不适合这个行业?为了改变这种状态,我做了很多努力,却一次次陷入挫败:我每天投递20+份简历,从大厂实习到中小厂实习,从专业相关岗位到通用岗,只要是能投的,我都投了,可回应我的,寥寥无几;我反复修改简历,把校园经历、课程作业都写上去,甚至模仿牛客上的优质简历模板,可投出去之后,依然石沉大海;我刷了很多面试技巧、简历优化的干货,照着上面的方法一步步调整,可还是没有任何起色。那段时间,我变得越来越自卑,越来越不敢投递简历,甚至看到招聘软件就头疼。我开始逃避,每天沉迷短视频、游戏,试图用低级娱乐麻痹自己,可越是逃避,焦虑就越严重。我害怕和同学聊天,害怕被问到“找到实习了吗”,害怕听到别人的上岸消息,只能把自己关在房间里,默默内耗,连父母打电话问起,都只能强装镇定,说“我正在找,很快就有消息了”。“投递没回应,不一定是你不够好,可能是你的简历没有命中HR的筛选标准,可能是你投递的岗位和你不匹配,不要因为暂时的没有回应,就否定自己。” 这句话,像一束光,照亮了我深陷焦虑的内心。我开始反思,是不是我一直以来的努力,都用错了方向?是不是我的简历,真的有很多问题,导致HR连看都不看一眼?我开始认真分析自己的简历,才发现,原来我一直犯了一个致命的错误:一份简历投遍所有岗位,没有针对性,关键词不匹配,经历写得像流水账,没有亮点。我以为,只要把自己做过的事都写上去,HR就会看到我的努力,可实际上,HR筛一份简历的时间只有3-5秒,如果你的简历没有亮点、没有匹配关键词,很容易就被AI初筛刷掉,连被HR看到的机会都没有。意识到问题之后,我开始静下心来,认真优化简历。可我又遇到了新的难题:不知道怎么提取岗位JD的关键词,不知道怎么用专业的语言优化经历,不知道怎么让简历更贴合岗位需求。就在我一筹莫展的时候,身边一位上岸的同学,给我推荐了泡泡小程序AiCV简历王,他说:“我之前投递也是屡屡碰壁,后来用这个小程序优化了简历,投递命中率直接提升了很多,它能帮你分析简历和JD的匹配度,优化经历表述,不用自己费心琢磨。”抱着试试的心态,我用了泡泡小程序AiCV简历王,没想到,真的帮我解决了大难题。它能一键分析我简历和目标岗位JD的匹配度,自动标出我缺漏的关键词,还能帮我用STAR法则,把我那些“拿不出手”的校园经历、课程作业,优化成HR爱看的专业表述,不用虚构、不用夸大,只把我真实的努力和能力,清晰、精准地展现出来。比如我之前写的“参与校园活动”,被优化成“参与校园春招宣传活动,负责线上社群运营,吸引50+同学咨询,助力活动落地执行”,瞬间从“打杂”变成了“有价值的经历”。优化完简历之后,我改变了投递策略,不再盲目海投,而是每天精准投递5-10家匹配度高的岗位,投递前,再用泡泡小程序AiCV简历王核对一遍简历和JD的匹配度,确保没有遗漏关键词。慢慢的,我开始收到面试邀约,虽然不多,但每一个邀约,都给了我莫大的鼓励,也让我慢慢摆脱了“连被拒绝都没资格”的焦虑。现在的我,虽然还没有拿到心仪的实习/春招offer,但我已经不再像之前那样焦虑内耗了。我慢慢明白,春招/实习投递,从来都不是一场“速战速决”的战役,而是一场“耐心+方法”的比拼。那些投递没有回应的日子,那些自我怀疑的深夜,那些焦虑内耗的瞬间,其实都是成长的一部分。我知道,现在还有很多和我一样的同学,正被困在“投递无回应”的焦虑里,每天在等待中内耗,在自我否定中挣扎。我想对你说:请你一定不要放弃,也不要否定自己。投递没有回应,不是你不够好,只是你的简历还没有被HR看到,只是你还没有找对方法,只是属于你的机会,还没有到来。如果你也和我一样,因为简历问题,投递屡屡碰壁,不妨试试泡泡小程序AiCV简历王,它能帮你快速优化简历,提升投递命中率,让你不再因为“简历太烂”而错失机会;如果你正处于焦虑内耗中,不妨停下来,整理一下自己的心态,优化一下自己的简历,调整一下投递策略,慢慢来,不着急。春招/实习这条路,确实很难,每个人都有自己的“失眠时刻”,每个人都有自己的焦虑和迷茫。有人焦虑等待的煎熬,有人焦虑面试的翻车,有人焦虑自我怀疑的内耗,而我,曾焦虑于“连被拒绝的资格都没有”。但我相信,只要我们不放弃、不内耗,找对方法、精准发力,总有一天,我们会收到属于自己的面试邀约,会拿到心仪的offer。在这里,我想把自己的经历分享出来,不是为了抱怨,也不是为了炫耀,只是想告诉每一个正在焦虑的你:你不是一个人在战斗,牛客上有很多人和你一样,在默默努力、在默默坚持,我们都懂你的焦虑,都懂你的无力,都懂你的自我怀疑。不妨把这里当成一个情绪出口,说出你春招/实习投递中最焦虑的一件事——是等待的煎熬?是自我怀疑的内耗?还是被对比的焦虑?是投递无回应的无力?还是面试翻车的挫败?说出来,不用伪装,不用坚强,这里有人懂你,有人陪你一起加油,一起熬过这段最难的日子。最后,想对所有正在春招/实习投递路上挣扎的同学说:请相信,你付出的每一份努力,都不会白费;你熬过的每一个深夜,都不会被辜负。那些投递无回应的日子,那些焦虑内耗的瞬间,终会变成你上岸路上的底气。愿我们都能摆脱焦虑,找准方向,精准发力,早日拿到心仪的实习/春招offer,不负努力,不负自己!
春招 / 实习投递,你最...
点赞 评论 收藏
分享
评论
6
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务