关于机器学习
机器学习是一门数学,事实上我在大二并没有继续深入学习这方面的打算,看的越多,越意识到自己在数学方面的不足。
既然是介绍,那么首先,得说一下机器学习的好处。嗯,可以装逼。
你可以快乐的甩出一堆名词—— 朴素贝叶斯算法,贝叶斯统计正则化,诸如此类。
现在很火的alpha🐶,也是机器学习的实用案例嘛。
但是,这也是一个大坑,这个东西的充分不必要条件有,傅立叶变换,概率论(这个我不会),一些线性或非线性的运算等等。
嗯,欢迎跳坑。
那么我就用alpha🐶做例子好了,它通过线性训练局域特征,产生一个快速走棋的策略,通过深度训练,产生另一个策略,然后自我对弈,大规模训练。对弈时则使用训练好的网路判断局部每一个点获胜概率。
具体来说,离线学习可以分为三个阶段:
第一阶段:利用3万多幅专业棋手对局的棋谱来训练两个网络。一个是基于全局特征和深度卷积网络(CNN)训练出来的策略网络(Policy Network)。其主要作用是给定当前盘面状态作为输入,输出下一步棋在棋盘其它空地上的落子概率。另一个是利用局部特征和线性模型训练出来的快速走棋策略(Rollout Policy)。策略网络速度较慢,但精度较高;快速走棋策略反之。
第二阶段:利用第t轮的策略网络与先前训练好的策略网络互相对弈,利用增强式学习来修正第t轮的策略网络的参数,最终得到增强的策略网络。这部分被很多“砖”家极大的鼓吹,但实际上应该存在理论上的瓶颈(提升能力有限)。这就好比2个6岁的小孩不断对弈,其水平就会达到职业9段?
第三阶段:先利用普通的策略网络来生成棋局的前U-1步(U是一个属于[1, 450]的随机变量),然后利用随机采样来决定第U步的位置(这是为了增加棋的多样性,防止过拟合)。随后,利用增强的策略网络来完成后面的自我对弈过程,直至棋局结束分出胜负。此后,第U步的盘面作为特征输入,胜负作为label,学习一个价值网络(Value Network),用于判断结果的输赢概率。价值网络其实是AlphaGo的一大创新,围棋最为困难的地方在于很难根据当前的局势来判断最后的结果,这点职业棋手也很难掌握。通过大量的自我对弈,AlphaGo产生了3000万盘棋局,用来训练价值网络。但由于围棋的搜索空间太大,3000万盘棋局也不能帮AlphaGo完全攻克这个问题。
目前机器学习主要的应用领域有,计算机视觉,数据挖掘等。
至于这次的课程,除了知道什么是机器学习,你是学不到什么的,嗯,认真要学的话,请上网易云课堂,斯坦福大学公开课,已经有汉化了。