打字猴:1.700508266e+09
1700508266
1700508267
1700508268 在核函数的技巧中,可以通过不构造的方式构造符合要求的核函数K(x, z)。这里有一个充要条件,就是让K(x, z)为正定核。设是定义在χ×χ上的对称函数,如果对任意对应的Gram矩阵是半正定矩阵,则称K(x, z)是正定核。
1700508269
1700508270 常用的核函数有多项式核函数
1700508271
1700508272
1700508273
1700508274
1700508275 高斯核函数(径向核函数)
1700508276
1700508277
1700508278
1700508279
1700508280 等。这些核函数都能够帮助x升维,进而达到线性可分的分类效果。由于只需要构建K(x, z),不需要构建(Φ)x,所以在训练中不给出样本的空间坐标,只给出它们之间的距离,同样能够成功学习出分类规则。这是SVM非常强大的地方。
1700508281
1700508282 数据科学家养成手册 [:1700503591]
1700508283 11.8.3 强化学习
1700508284
1700508285 与非监督学习和监督学习的工作方式不同,强化学习是一种极为重视反馈的学习过程(如图11-36所示)。非监督学习中的聚类,在我们设置了超参数(Hyperparameter)以后,就可以不对学习过程进行干预了(所以称为“非监督学习”)。对于监督学习,我们在一开始就为所有训练样本设置了标签,让算法根据标签进行分类条件的归纳。强化学习是一种基于与环境互动的学习方式。
1700508286
1700508287
1700508288
1700508289
1700508290 图11-36 强化学习流程
1700508291
1700508292 所谓强化学习是指从环境状态到行为映射的学习,以使系统行为从环境中获得的累积奖励值最大。
1700508293
1700508294 在训练主体的过程中,首先赋予主体对外界状态和奖励的感知能力。这里的“奖励”是指广义的奖励,如果是正值就是奖励(Reward),如果是负值就是惩罚(Penalty)。让主体具备感知“利”与“弊”的基本能力是一种很“高级”的学习方式。对周围一切能够被主体感知的因素,包括声音、图像、视频、文字、温度、湿度等,主体每次输出某个动作都会诱发环境产生奖励的反馈。主体通过一系列动作反馈的奖励积累来归纳在某个或某些状态下给予什么样的动作是最为“有利”或“正确”的。这就是强化学习的本质。
1700508295
1700508296 强化学习不是具体的一个算法,而是一类算法的解决方案总括。在这种思想的指导下,从20世纪50年代开始涌现出了一代又一代强化学习算法体系来解决相应的问题,例如马尔科夫决策过程(Markov Decision Process)、A-Learning、Q-Learning等著名的算法。
1700508297
1700508298 我们通过Q-Learning算法的过程来感觉一下强化学习的基本过程吧,看一下伪代码。
1700508299
1700508300 Initialize Q(S,A)arbitrarilyRepeart(for each episode)  Initialize S  Repeat(for each step of episode)  Choose A from S using policy derived from Q  Take action A, observe R,S’    Q(S,A)←Q(S,A)+α[R+γmaxa’(S’,A’)-Q(S,A)]    S→S’Until S is terminal
1700508301
1700508302 这段伪代码看上去不太容易理解,下面进行详细的分析。
1700508303
1700508304 首先,任意初始化一个Q函数的值。重复进行一个训练过程,直到S结束。这个S是指环境描述向量(State),S结束就是整个训练过程完毕的一个标识。例如,我们训练一个2D飞机游戏的外挂——AI自动打游戏机器人,S可以设定为游戏终止状态,例如通关、所有生命都消耗光(如图11-37所示)。
1700508305
1700508306
1700508307
1700508308
1700508309 图11-37 2D飞机游戏
1700508310
1700508311 然后,就是逐一对episode进行训练。这里的“episode”是指一段游戏中的状态。在每个状态中,会设置一个S(State)向量,在这种游戏中可以是基于游戏元素的向量(例如敌人的种类、坐标、发射的枪弹坐标等),也可以是基于像素的向量(例如直接把当前图像作为向量输入Q-Learning算法充当S状态)。此时,就可以对主体(飞机)输入动作A(Action)。动作A可以由人输入,也可以由机器通过某种策略输入——当机器学习到一定程度之后,这种方式会大大减少人对学习过程的干预。
1700508312
1700508313 在这个过程中,主体会有很多与环境S的互动,例如吃下一个加分的物品、发射枪弹消灭敌人或者躲避敌人的子弹等。在这个过程中,我们可以为这些反馈定义其R的值,对于一些小的、对通关有帮助的事情,R值可以为小一些的正数(例如每生还0.2秒加1分);而对于那些对通关帮助比较大的事情,我们可以定义为较大的正数(例如消灭一个杀伤力很强的敌人加50分)。反之,如果是对通关损害比较小的事情,就为其定义一个绝对值小一些的负数R(例如未能吃到一个威力比较大的武器减去20分);如果是对通关损害比较大的事情,则为其定义一个绝对值大一些的负数R(例如中弹死亡减去1000分)。每隔0.2秒(或其他时间间隔),状态S和Q(S, A)都要进行更新,更新的内容就是保证Q增大方向的策略评价。
1700508314
1700508315 在这个过程中通过不断学习和总结,最后Q(S, A)会得到一个“在S情况下采取某个A会有较大概率获得较大R”的策略,这个策略就是我们要学习的内容。
[ 上一页 ]  [ :1.700508266e+09 ]  [ 下一页 ]