强化学习

机器学习-深度学习-强化学习

若如初见. 提交于 2019-12-01 17:05:54
仅供学习使用 机器学习的核心,从数据中自动学出规律。 深度学习是一个框架,受到了人工神经网络的启发。 深度学习模型: 更加强大的表达能力、具备层次表示能力、全局的泛化能力、迁移学习能力 机器学习领域的两个大类: 有监督学习 D=(X,y) 学习X->y的学习关系 数据既有特征,又有标签。 学习映射关系。 线性映射关系、非线性映射关系。 svm 无监督学习 D=(X) 寻找X中的特征或者规律 营销领域,给用户分类。个性化营销 聚类k-means 强化学习 AlphaGo 常见的机器学习算法 监督学习 线性回归、逻辑回归(分类问题)、朴素贝叶斯、决策树、随机森林、SVM、神经网络 无监督学习 PCA、K-means、GMM、LDA 矩阵分解、xgboost 区别: 回归问题:输出数连续数值,例如:股价、温度、身高、气温 分类问题:输出是类别,例如:阴晴、好坏。图像识别、文本分类。类别之间没有大小关系 区别概念: 特征、标签、样本 标量、向量、矩阵、张量 机器学习建模流程: 数据源 数据预处理:去噪、填补空白、数据对齐 特征工程:Feature Engine 建模 验证 端到端的方法:跳过特征工程,直接用数据预处理到建模 强化学习 一种学习策略,和遗传算法同范畴吧。(个人理解) 来源: https://www.cnblogs.com/xuehuiping/p/11694965.html

【强化学习】阶段总结

二次信任 提交于 2019-11-30 19:57:59
马尔可夫决策过程 MDP 基于模型的动态规划方法(Model-Based,DP) 策略搜索 策略迭代 值迭代 无模型的强化学习方法(Model-Free) 蒙特卡洛方法(MC):效率不高,但是能够展现 model-free 类算法的特性; 时序差分方法(TD,Important) :直接从 episode 学习,不需要了解模型本身,即 model-free;可以学习不完整的 episode,通过自身的引导(bootstrapping),猜测 episode 的结果,同时持续更新这个猜测; TD vs. MC MC 没有偏差(Bias),但是有着较高的方差(Variance) 更好的收敛性质 对初始值不太敏感 使用简单 TD 较低的方差,但是有一定程度的偏差 通常比 MC 更加高效 TD(0) 收敛到 V π (s) 对初始值更加敏感 MC 算法试图收敛至一个能够最小化状态价值与实际收获的均方差的解决方案; TD 算法收敛到一个根据已有经验构建的最大可能的马尔可夫模型的状态价值,也就是说 TD 算法首先根据已有经验估计状态空间的转移概率,同时估计某一个状态的即时奖励,最后计算该 MDP 的状态函数。 换句话说: MC 方法并不利用马尔可夫性质,故在非马尔可夫环境中更有效率; TD(0) 利用马尔可夫性质,在马尔可夫环境中更有效率。 总结以上内容: MC vs. TD Monte

掌握动态规划,助你成为优秀的算法工程师

余生颓废 提交于 2019-11-30 18:08:25
1.导论 相信很多同学已经在为今年的校招做准备了,随着AI的火热,越来越多的同学涌入了算法的行当之中。那去年校招的算法岗是有多火热?在知乎上看到这么一条帖子,先不说内容哈,足足400w+的阅读量啊。 不光是计算机或软件专业的学生,很多电子,通信,自动化等相关专业的同学也吸引了进来。当然,这应该是件好事。但是相当一部分同学,在学习的过程中,尤其是刚入门的时候,可能会有这样一个疑问:算法工程师的算法,为什么不是指《算法导论》中的算法(以下称为经典算法,用以区分),而是指机器学习里的算法。都叫算法(Algorithm),但好像不是一回事啊,两者有什么关系,又有什么区别呢? 本文试图通过动态规划这一经典算法中的重要内容,同时又在机器学习算法中有着广泛的应用,来简单探讨一下这两种“算法”。 2.动态规划 首先,动态规划(Dynamic Programming)是《算法导论》中的重要章节,同时也是在机器学习算法中有着非常重要应用的一种优化算法。可以说是,无论是否是算法工程师都应该掌握的一种算法。再功利一点说,动态规划也是诸多面试官特别喜欢考的一种题型,下面就带大家稍微温故一下。 按照教材[1]的介绍,动态规划通常需要按如下4个步骤来进行设计: 刻画一个最优解的结构特征。 递归地定义最优解的值。 计算最优解的值,通常采用自底向上的方法。 利用计算出信息构造一个最优解。 简单点说

强化学习

£可爱£侵袭症+ 提交于 2019-11-30 05:55:21
强化学习笔记(一) 1 强化学习概述 随着 Alpha Go 的成功,强化学习(Reinforcement Learning,RL)成为了当下机器学习中最热门的研究领域之一。与常见的监督学习和非监督学习不同,强化学习强调智能体(agent)与环境(environment)的交互,交互过程中智能体需要根据自身所处的状态(state)选择接下来采取的动作(action),执行动作后,智能体会进入下一个状态,同时从环境中得到这次状态转移的奖励(reward)。 强化学习的目标就是从智能体与环境的交互过程中获取信息,学出状态与动作之间的映射,指导智能体根据状态做出最佳决策,最大化获得的奖励。 2 强化学习要素 强化学习通常使用马尔科夫决策过程(Markov Decision Process,MDP)来描述。MDP数学上通常表示为五元组的形式,分别是状态集合,动作集合,状态转移函数,奖励函数以及折扣因子。 近些年有研究工作将强化学习应用到更为复杂的MDP形式,如部分可观察马尔科夫决策过程(Partially Observable Markov Decision Process,POMDP),参数化动作马尔科夫决策过程(Parameterized Action Markov Decision Process,PAMDP)以及随机博弈(Stochastic Game,SG)。 状态(S)

面试总结——强化学习

半城伤御伤魂 提交于 2019-11-29 21:52:35
多臂老虎机和强化学习算法的差别 策略:是强化学习机的核心,代表着决策进行的方式。它可能是一个表格,一个函数或者一个复杂的深度神经网络。 奖励信号:一个数值 , 代表着强化学习机采取行动后的即时奖励。 最大化所得奖励是强化学习机的最终目标,为了完成这个目标,我们不断地调整策略。 价值函数:一个函数,用于描述给定状态下的可能获得的远期奖励。 这样看来,一个较小的但恒定的常数有可能会优于浮动范围很大的结果。当然,也可能是相反的情况。 相比于目前流行的深度学习以及类似的需要大量训练数据来生成模型的监督学习方法,强化学习一个重要的不同点是利用训练的数据去 评估 下一步的行动(action),而不是仅仅指示(instruct)出正确的行动。 多臂老虎机本质上是一类简化的强化学习问题, 这类问题具有非关联的状态(每次只从一种情况输或赢中学习),而且只研究可评估的反馈 。假设有一台N个摇臂老虎机,每拉一个摇臂都会有一定的概率获得回报,这样我们有了N种可能的行动(每个摇臂对应一种action),并且 每次行动的结果只和当前的状态关联而不受历史行动的结果影响(每次拉摇臂的回报只和老虎机设置的概率相关,之前输赢的结果不会影响本次行动) 。定义这种问题是具有 单一状态的马尔科夫决策过程 。 单步强化学习任务对应了一个理论模型,即" K-摇臂赌博机" , K -摇臂赌博机有K 个摇臂

强化学习基础

£可爱£侵袭症+ 提交于 2019-11-29 21:02:07
原地址:https://www.jianshu.com/p/f4409a8b7f71 本文结构: 定义 和监督式学习, 非监督式学习的区别 主要算法和类别 应用举例 1. 定义 强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决 decision making 问题,即自动进行决策,并且可以做连续决策。 它主要包含四个元素,agent,环境状态,行动,奖励, 强化学习的目标就是获得最多的累计奖励。 让我们以小孩学习走路来做个形象的例子: 小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。 小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。 2. 和监督式学习, 非监督式学习的区别 在机器学习中,我们比较熟知的是监督式学习,非监督学习,此外还有一个大类就是强化学习: 强化学习和监督式学习的区别: 监督式学习就好比你在学习的时候,有一个导师在旁边指点,他知道怎么是对的怎么是错的,但在很多实际问题中,例如 chess,go,这种有成千上万种组合方式的情况,不可能有一个导师知道所有可能的结果。 而这时

强化学习第六章

杀马特。学长 韩版系。学妹 提交于 2019-11-29 15:00:50
1、上下文管理器(结合 yield使用) @contextmanager def timer(name): with timer('Timer PolicyEval'): 那么在with下的一段代码会自动生成上下文 2、策略迭代由策略评估和策略提升两部分组成,每一次迭代都会经过这两部分,策略评估的损失函数是当前的价值和之前算的价值的平方差,策略提升通过选择价值中高得那一个动作作为下一轮策略迭代的策略。    策略评估中就会把值函数收敛到一定程度,然后根据值函数的最大值改进策略。当策略不再发生变化的时候,停止迭代。 (策略评估部分:) for i in range(1, agent.s_len): # for each state ac = agent.pi[i] transition = agent.p[ac, i, :]   value_sa = np.dot(transition, agent.r + agent.gamma * agent.value_pi)   new_value_pi[i] = value_sa# value_sas[agent.policy[i]]diff = np.sqrt(np.sum(np.power(agent.value_pi - new_value_pi, 2))) 价值迭代是先使得价值函数收敛,没有管策略函数,它每次选的是最优价值

强化学习第三四章

懵懂的女人 提交于 2019-11-29 13:57:57
1、梯度下降选择固定步长可能产生的情况:收敛、发散、重复的在两个数之间跳跃 2、np.zeros_like(x) 生成一个shape和x一样的全为0的数组 3、plt.counter画等高线图 4、tensorflow的scope 变量命名空间 (1)若tf.Variable(初始值,name=' ')这种方式,每一个scope都会对名字产生影响   若tf.variable_scope('123')这种方式, 只有variable_scoope这种会对名字产生影响 (2)在同一个scope内,当同样名字的name_scope再次被声明的时候,scope的名字不会直接被复用,而是会通过改名创建全新的scope    当同样名字的variable_scope再次声明的时候,scope直接复用了 5、tensorflow进行图运算之前需要:(1)创立回话层with tf.Session() as sess (2)初始化所有的变量sess.run(global_variables_initializer())                 (3) sess.run([运算1,运算2],feed_dict={}) feed_dict是输入参数 若要访问计算图,两步 (1)graph=tf.get_default_graph() (2) print(graph.get_operations

百度PaddlePaddle:

[亡魂溺海] 提交于 2019-11-29 03:50:19
百度正式发布PaddlePaddle深度强化学习框架PARL 近日,百度 PaddlePaddle 正式发布了深度强化学习框架 PARL,同时开源了基于该框架的、在 NeurIPS 2018 强化学习赛事中夺冠的模型完整训练代码。 项目地址如下:https://github.com/PaddlePaddle/PARL PARL 框架的名字来源于 PA ddlepaddle R einfocement L earning,是一款基于百度 PaddlePaddle 打造的深度强化学习框架。PARL 与现有强化学习工具和平台相比,具有更高的可扩展性、可复现性和可复用性,支持大规模并行和稀疏特征,能够快速 对工业级应用案例的验证。 为了帮助用户快速搭建可以和环境交互的机器人,PARL 抽象出数个基础类,包括 Model、Algorithm、Agent 等。 Model 类负责强化学习算法中的网络前向计算(forward)部分,通常嵌套在 Algorithm 类中。 Algorithm 类则定义了网络的更新机制(backward),通常属于一个 Agent。 Agent 类负责和环境进行交互,负责数据 I/O,并且收集数据训练集下的 algorithm。 通过这样的设计方案,PARL 保证了算法的可扩展性:针对同一个场景,用户想调研不同的网络结构对算法效果影响的时候,比如调研 RNN

8.22-8.29强化学习 学习心得

眉间皱痕 提交于 2019-11-28 22:15:46
学习心得 这一周都在学习强化学习的有关内容,前五章的学习都比较顺畅,到了第六章碰到了小困难,David Silver的第六个视频讲解的不是很清晰,公式一多,脑子就比较混乱了。后来又看了别人的学习笔记,才变得清晰了一些。下面是我对所学算法的理解。 算法理解 1.DP(动态规划) 动态规划又分为策略迭代和价值迭代。 策略迭代: 从一个初始策略 π 和初始价值函数 V 开始,基于该策略进行完整的价值评估过程得到一个新的价值函数,随后依据新的价值函数得到新的贪婪策略,随后计算新的贪婪策略下的价值函数,整个过程反复进行。 价值迭代: 价值迭代的目标仍然是寻找到一个最优策略,它通过贝尔曼最优方程从前次迭代 的价值函数中计算得到当次迭代的价值函数,在这个反复迭代的过程中,并没有一个明确的策略参与,由于使用贝尔曼最优方程进行价值迭代时类似于贪婪地选择了最优行为对应的后续状态的价值,因而价值迭代其实等效于策略迭代中每迭代一次价值函数就更新一次策略的过程。 2.MC(蒙特卡罗强化学习) 蒙特卡罗强化学习不依赖状态转移概率,直接从经历过的完整的状态序列中学 习,使用的思想就是用平均收获值代替价值。 3.TD(时序差分强化学习) 在TD learning中,算法在估计某一个状态的价值时,用的是离开该状态时的即时奖励Rt+1与下一个状态St+1的预估状态价值乘以折扣因子组成