终于想起我的公众号密码了,我已经忘记了上次更新是什么时候了,冒个泡。
先大概讲讲最近干了啥。
从去年年前开始,一直到初六,主要解决我妹妹的学习问题。今年就要高考了,成绩还是比较差,尤其理综,想要补救一下;
和她沟通,她说记不住,不会写啥的,我自己也去看了看数学和物理,做了几题她不会的,感觉还是她的基础不扎实,导致很多隐形条件找不出;找了一些我自己看过的关于如何学习的书给她看,不知道能够影响多少;很久没关注她的学习,发现学习思维固化了,也缺乏学习劲,所有希望都寄托在老师身上,不知道主动去找方法改变。可能和老师也有点关系吧,整体班级成绩都不是很好,只能靠她自己了。
我自己最近主要忙着写课,空闲时间零零散散学习了一些知识,年前我的计划是过年这段时间集中学一些算法和数学知识的,结果就是没结果。
这几天终于有时间学习了,主要研究了几个问题:
- 图片相似性
- 了解pytorch
- 了解强化学习
今天主要就是分享学习强化学习的感受。
传统的编程,我们为了解决一些问题,需要写很多的条件判断,针对不同的情况进行不同的处理,属于硬编码;
比如像语音识别,图片识别等比较复杂的问题,就很难写出来,因为情况太多了,除非程序能够自我学习。
而机器学习就善于处理对于传统方法而言太复杂或没有已知算法的问题。
之前了解了一些机器学习中的监督学习,大部分都是属于数学中的统计学习方法,虽然也非常有用,但是感觉和我想象中的还是有点差距。
这两天看了强化学习的部分内容,以及找了两个案例看,发现很有意思:
案例一:小男孩取玩具
来源:
https://blog.csdn.net/weixin_43283397/article/details/103228165
在一开始的时候假设小男孩不知道玩具在哪里,只有往左走和往右走,开始要走很多次才能找到玩具,随着找到玩具的次数越来越多,后面找玩具的速度会越来越快。里面用到的就是Q-Learning算法。
下面是用字符模拟的效果。
通过这个算法,好像有了上帝之眼,并且越来越厉害。
案例2:自动玩 FlappyBird 游戏
很早之前我写过一个通过伪AI玩游戏的程序,通过截图判断里面的障碍物,从而控制恐龙跳跃,这个效果不是很好,并且截图判断容易失误。
视频演示:http://mpvideo.qpic.cn/0bf2nmaf4aaapaafrzq54rqva26dlzvqaxqa.f10003.mp4?
感觉强化学习对应这个就非常适合,强化学习通过对环境的探索获得新数据,并利用新数据循环往复地更新迭代现有模型的机器学习算法,并且会越学习越厉害。
在这个https://github.com/CharlesPikachu账号(这个大佬有很多有意思的案例)找到一个非常有趣的案例,利用强化学习玩flappybird,里面的模型是训练好的,我把那个模型换了,从新自己训练试了一下,开始时,这个bird非常垃圾,开始就挂,一直挂了200多次,终于可以跑到第一个柱子前面,慢慢的,可以过第一个柱子,经过1700多次的训练,接近3小时,这个bird越来越厉害了,从1分都得不了,可以得到70多分,如果继续训练下去,应该可以非常厉害,打不死的小鸟,死的次数越多越nb。
视频演示:http://mpvideo.qpic.cn/0bc36aaagaaacuankfyqhrrfb4gdapyaaaya.f10002.mp4?
感兴趣的可以去学习一下,非常有意思。