初探强化学习:置信区上界解决多臂老虎机问题

强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,**强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。**这个方法具有普适性,因此在其他许多领域都有研究,例如博弈论、控制论、运筹学、信息论、仿真优化、多主体系统学习、群体智能、统计学以及遗传算法。在运筹学和控制理论研究的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。在最优控制理论中也有研究这个问题,虽然大部分的研究是关于最优解的存在和特性,并非是学习或者近似方面。在经济学和博弈论中,强化学习被用来解释在有限理性的条件下如何出现平衡。
在机器学习问题中,环境通常被规范为马可夫决策过程(MDP),所以许多强化学习算法在这种情况下使用动态规划技巧。传统的技术和强化学习算法的主要区别是,后者不需要关于MDP的知识,而且针对无法找到确切方法的大规模MDP。
强化学习和标准的监督式学习之间的区别在于,它并不需要出现正确的输入/输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。强化学习中的“探索-遵从”的交换,在多臂老虎机问题和有限MDP中研究得最多。 -----------(来自维基百科)

以上述多臂老虎机为例,我们假设有10台机器,每台机器的奖励分布情况不同。进行10000次游戏,如何选择机器才能达到最大收益?
为了简化问题,我们把奖励大于我们一次游戏投入,(即收益)记为得分1,否则记为0。(可能不是很恰当,不过作为说明的例子应该没问题)
为了训练,当然需要一个数据集,这里假设我们有一个模拟数据集(10000 * 10)。大致如下:
在这里插入图片描述
解释下这个模拟数据集如何看:假设我们进行了第一次游戏,即第0行,如果我们选择了机器编号为1,5,9则得分1,其他得分0,依次类推…
如果我们进行了随机选择,看下收益情况还有10000此游戏中每个机器选择的次数:

import pandas as pd
import numpy as np
dataset = pd.read_csv('Machine.csv')

import random
machine_selected = []  #用于存储每一轮游戏选择的机器。
final_score = 0    #用于存储第n轮之前的总得分。
for n in range(10000):
    machine_num = random.randrange(10)
    machine_selected.append(machine_num)
    score = dataset.values[n,machine_num
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值