Questions tagged «reinforcement-learning»

机器学习领域与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。

5
强化学习中的Q函数和V函数是什么?
在我看来,函数可以轻松地由函数表示,因此函数对我来说似乎是多余的。但是,我是强化学习的新手,所以我想我做错了。VVVQQQVVV 定义 Q学习和V学习是在马尔可夫决策过程的背景下进行的。甲MDP是一个5元组与(S,A,P,R,γ)(S,A,P,R,γ)(S, A, P, R, \gamma) SSS是一组状态(通常是有限的) AAA是一组动作(通常是有限的) P(s,s′,a)=P(st+1=s′|st=s,at=a)P(s,s′,a)=P(st+1=s′|st=s,at=a)P(s, s', a) = P(s_{t+1} = s' | s_t = s, a_t = a)是通过动作从状态到状态的概率。ssss′s′s'aaa R(s,s′,a)∈RR(s,s′,a)∈RR(s, s', a) \in \mathbb{R}中的是通过动作从状态到状态后的立即奖励。(在我看来,通常只有重要)。ssss′s′s'aaas′s′s' γ∈[0,1]γ∈[0,1]\gamma \in [0, 1]被称为折扣因子,它确定是关注即时奖励(),总奖励()还是某种权衡。γ=0γ=0\gamma = 0γ=1γ=1\gamma = 1 一个政策ππ\pi,根据强化学习:简介由萨顿和巴托是一个功能(这可能是概率)。π:S→Aπ:S→A\pi: S \rightarrow A 根据Mario Martins的幻灯片,函数为 ,并且Q函数为 VVVVπ(s)=Eπ{Rt|st=s}=Eπ{∑k=0∞γkrt+k+1|st=s}Vπ(s)=Eπ{Rt|st=s}=Eπ{∑k=0∞γkrt+k+1|st=s}V^\pi(s) = E_\pi \{R_t | s_t = …

1
为什么xgboost比sklearn GradientBoostingClassifier快得多?
我正在尝试通过50个具有100个数字特征的示例训练一个梯度提升模型。XGBClassifier我的机器43秒内把手500棵树,而GradientBoostingClassifier只处理10棵(!)以1分2秒:(我没有理会试图种植500棵树,因为它会需要几个小时。我使用的是相同的learning_rate,并max_depth设置, 见下文。 是什么使XGBoost如此之快?它是否使用了sklearn家伙不知道的用于梯度增强的新颖实现方式?还是“偷工减料”并种植浅树? ps我知道这个讨论:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey,但是那里找不到答案... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

5
AlphaGo的政策网络和价值网络之间的区别
我正在阅读有关Google AlphaGo的高级摘要(http://googleresearch.blogspot.co.uk/2016/01/alphago-mastering-ancient-game-of-go.html),并且遇到了“政策”一词。网络”和“价值网络”。在较高的层次上,我了解到策略网络用于建议行动,价值网络用于“减少搜索树的深度[并估计]每个位置的获胜者,而不是一直搜索到游戏结束。” 这两个网络对我来说似乎是多余的。如果策略网络未使用价值网络修剪其策​​略,该怎么做?显而易见,价值网络是一种深度学习神经网络。政策网络只是理论上的抽象,而不是实际的神经网络吗?价值网络的目标变量似乎是赢/输。策略网络是否有目标变量?如果是这样,那是什么?策略网络试图优化什么? 可以在以下位置找到《自然》杂志上发表的Google论文的完整pdf:https: //vk.com/doc-44016343_437229031?dl = 56ce06e325d42fbc72


1
什么是“体验重播”及其好处?
我一直在阅读Google的DeepMind Atari 论文,并且试图理解“体验重播”的概念。许多其他强化学习论文(尤其是AlphaGo论文)中都有经验重播,所以我想了解它的工作原理。以下是一些摘录。 首先,我们使用一种称为经验重播的生物学启发机制来对数据进行随机化,从而消除观察序列中的相关性并平滑数据分布的变化。 然后,本文阐述如下: 虽然存在其他用于在强化学习环境中训练神经网络的稳定方法(例如,神经拟合Q迭代),但这些方法涉及从头进行数百次迭代的网络重复训练。因此,与我们的算法不同,这些方法效率低下,无法在大型神经网络中成功使用。我们使用图1所示的深度卷积神经网络对近似值函数进行参数化,其中是迭代 Q网络的参数(即权重)。为了执行体验重播,我们在每个时间步长存储座席的体验。Q (s ,a ; θ一世)问(s,一种;θ一世)Q(s, a; \theta_i)θ一世θ一世\theta_i一世一世iËŤ=(秒Ť,一Ť,[RŤ,秒t + 1)ËŤ=(sŤ,一种Ť,[RŤ,sŤ+1个)e_t = (s_t, a_t, r_t, s_{t+1})ŤŤt在数据集中。在学习期间,我们对经验样本(或小批)应用Q学习更新,这些样本是从存储的样本池中随机抽取的。迭代处的Q学习更新使用以下损失函数:dŤ= { e1个,… ,eŤ}dŤ={Ë1个,…,ËŤ}D_t = \{e_1, \dots, e_t \}(s ,a ,r ,s′)〜ü(D )(s,一种,[R,s′)〜ü(d)(s, a, r, s') \sim U(D)一世一世i 大号一世(θ一世)= E(s ,a ,r ,s′)〜ü(D )[ ( r + γ最高一种′Q (小号′,一′; θ-一世)- Q …

4
无需人工数据库的AlphaGo(以及其他使用强化学习的游戏程序)
我不是该主题的专家,我的问题可能很幼稚。它源于一篇文章,旨在了解AlphaGo计划中使用的强化学习的功能和局限性。 AlphaGo程序的构建除其他外(蒙特卡洛对树木的探索等),是从庞大的人类围棋游戏数据库中训练出来的神经网络,然后通过发布其版本来增强神经网络。多次针对自己进行编程。 现在我不知道会发生什么事情,我们试图建立一个没有人类数据库的程序,即从Go的基本程序开始,只知道规则和一些探索树木的方法,然后与自己竞争以改善其神经网络。经过多次对抗之后,我们会达成一个能够与最优秀的人类选手竞争或击败的程序吗?如果是这样,那么需要多少游戏(数量级)?还是相反,这样的程序会融合到更弱的玩家身上吗? 我认为尚未进行实验,因为AlphaGo太新了。但是,答案可能对专家来说是显而易见的。否则,任何有根据的猜测都会使我感兴趣。 对于“简单”游戏,也可以问同样的问题。如果我们使用与AlphaGo大致相同的强化学习技术,但不使用人类数据库,则对于Chess程序,我们最终会获得一个能够击败最优秀的人的程序吗?如果是这样,速度有多快?已经尝试过了吗?或者,如果不是国际象棋,跳棋,或更简单的游戏呢? 非常感谢。

1
简易自驾遥控车的监督学习与强化学习
我正在建造一辆遥控自驾车,很有趣。我正在使用Raspberry Pi作为车载计算机。我正在使用各种插件,例如Raspberry Pi摄像头和距离传感器,以获取有关汽车周围环境的反馈。我正在使用OpenCV将视频帧转换为张量,并且正在使用Google的TensorFlow构建一个复杂的神经网络来学习道路边界和障碍物。我的主要问题是,我应该使用监督学习来教汽车驾驶,还是应该提供目标和罚则并进行强化学习(即,尽可能快地到达B点,而不撞到任何东西并停留在道路边界内)?以下是我提出的利弊清单。 监督学习专家: 学习算法的输入非常简单。汽车学会将视频帧张量和传感器距离读数与前,后和角轮位移相关联 我可以或多或少地教导汽车完全按照我的意愿驾驶(当然,不要过度安装) 之前,我已经做过很多有监督的学习问题,而且这种方法似乎很适合我现有的技能 监督学习的弊端: 目前尚不清楚如何教授速度,并且正确的速度是任意的,只要汽车的行驶速度不会太快而偏离道路。我想我可以在训练中快速开车,但这似乎是一种粗略的方法。也许我可以在训练期间手动添加一个常量变量,该变量对应于该训练课程的速度,然后在部署学习算法时,我根据所需的速度设置此变量? 强化学习的优点: 如果我以赛车别人的自动驾驶汽车为特定目的来制造汽车,那么强化学习似乎是告诉我的汽车“尽可能快地到达那里”的自然方法。 我已经读到RL有时会用于无人驾驶无人机,因此从理论上讲,它应该在汽车中更容易使用,因为我不必担心上下 强化学习的弊端: 我觉得强化学习将需要很多额外的传感器,坦率地说,我的脚踏车内部没有那么多空间,因为它也需要安装电池,Raspberry Pi和面包板 最初,汽车的行为会非常不稳定,以至于它可能会自行毁坏。学习也可能花费不合理的长时间(例如,数月或数年) 以后我不能加入明确的规则,例如,停在玩具红灯前。通过监督学习,我可以将许多SL算法(例如,用于识别交通信号灯的Haar Cascade分类器)合并到可配置的规则引擎中,以在每个视频帧之间进行评估。因此,即使交通信号灯可能不是驾驶算法训练的一部分,如果规则引擎看到了红色的交通灯,它也将能够超越驾驶SL算法。RL似乎太连续了,无法执行此操作(即仅在终端状态下停止) 我没有应用强化学习的丰富经验,尽管我绝对想学习

3
是否有适用于python的好的即用型语言模型?
我正在为一个应用程序制作原型,我需要一个语言模型来计算一些生成的句子的困惑度。 我可以随时使用经过训练的python语言模型吗?简单的东西 model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 我看过一些框架,但找不到我想要的。我知道我可以使用类似: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) 这在Brown Corpus上使用了很好的图林概率分布,但是我正在一些大型数据集(例如1b单词数据集)上寻找精心设计的模型。我可以真正相信一般领域的结果(不仅是新闻)
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

2
合作强化学习
我已经有一个针对单个代理的有效实现,该代理正在处理动态定价问题,目的是使收入最大化。但是,我要解决的问题涉及到几种可以相互替代的不同产品,因此,用独立学习者对所有产品进行动态定价似乎是不正确的,因为一种产品的价格会影响另一种产品的回报。目标将是对它们全部进行动态定价,以使每个单独收入的总和最大化。Q (λ )问(λ)Q(\lambda) 我一直在做一些研究,试图找到一些可以通过这种方式应用强化学习的东西,但是我发现许多多代理实现更多地关注于竞争性游戏,而不是合作性游戏,或者它们假设其他代理的知识不完整(我会完全在这种情况下每个代理的知识)。是否以这种方式对合作学习进行了充分研究/记录的应用?

2
在国际象棋中实现时间差异
我一直在开发一个国际象棋程序,该程序使用alpha-beta修剪算法和一个评估功能,该功能使用以下功能来评估位置:材料,国王安全性,移动性,典当结构和被困件等..我的评估功能是源自 F(p )= w1个⋅ 材料+ w2⋅ 国王安全+ w3⋅ 流动性+ w4⋅ 典当结构+ w5⋅ 被困件F(p)=w1个⋅材料+w2⋅国王安全+w3⋅流动性+w4⋅典当结构+w5⋅被困的碎片f(p) = w_1 \cdot \text{material} + w_2 \cdot \text{kingsafety} + w_3 \cdot \text{mobility} + w_4 \cdot \text{pawn-structure} + w_5 \cdot \text{trapped pieces} 其中是分配给每个特征的权重。在这一点上,我想使用时间差异来调整评估函数的权重,在此情况下,代理会与自己竞争,并在此过程中从其环境中收集训练数据(这是强化学习的一种形式)。我阅读了一些书籍和文章,以期了解如何在Java中实现此功能,但它们似乎是理论性的,而不是实用的。我需要有关如何根据以前的游戏自动调整评估功能权重的详细说明和伪代码。www


4
强化学习书籍
一段时间以来,我一直在尝试了解强化学习,但是以某种方式,我无法直观地看到如何编写强化学习程序来解决网格世界问题。您能为我推荐一些教科书,以帮助我建立清晰的强化学习概念吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.