强化学习

易经量化交易系统1

空扰寡人 提交于 2020-08-13 06:11:01
易经量化交易系统是一个完整的量化交易平台,提供基于深度元强化学习的交易策略,并且具有一整套回测平台,可以用于策略研发和实盘操作。 量化交易平台中,回测系统是一个关键的功能,易经量化交易系统的回测系统是基于BackTrader的回测系统,为量化交易研发中的性能评估,提供了一个易用回测系统,做量化交易研发,首先需要选择一个好的回测系统,所以我们先来向大家介绍这个回测系统。 环境配置 首先下载易经量化系统源码: git clone https://github.com/yt7589/iching.git 在易经量化交易系统中,已经在源码层级整合了BackTrader系统,所以无需单独安装,即可使用回测系统。 在源码的apps/fmml目录,创建bt_app.py: class BtApp ( object ) : def __init__ ( self ) : self . name = 'apps.fmml.BtApp' def startup ( self ) : print ( '回测系统示例程序 v0.0.1' ) 在apps/fmml/fmml_app.py中,启动这个应用: from apps . fmml . bt_app import BtApp class FmmlApp ( object ) : def startup ( self ) : app = BtApp (

模型加速 | 华为提出高效的模型加速框架(附源码)

ε祈祈猫儿з 提交于 2020-08-13 04:59:06
计算机视觉研究院专栏 作者:Edison_G 1.摘要 模型效率在计算机视觉领域中越来越重要。作者目前神经网络结构搜索的网络性能已经超越了人工设计的网络,搜索方法大致可以分为强化学习、进化算法以及梯度三种,有研究表明进化算法能比强化学习搜索到更好的模型,但其搜索耗时较多,主要在于对个体的训练验证环节费事。可以借鉴ENSA的权重共享策略进行验证加速,但如果直接应用于进化算法,超网会受到较差的搜索结构的影响,因此需要修改目前神经网络搜索算法中用到的进化算法。为了最大化上一次进化过程学习到的知识的价值,论文提出了连续进化结构搜索方法(continuous evolution architecture search, CARS)首先初始化一个有大量cells和blocks的超网(supernet),超网通过几个基准操作(交叉、变异等)产生进化算法中的个体(子网),使用Non-dominated 排序策略来选取几个不同大小和准确率的优秀模型,然后训练子网并更新子网对应的超网中的cells,在下一轮的进化过程会继续基于更新后的超网以及non-dominated排序的解集进行。另外,论文提出一个保护机制来避免小模型陷阱问题。 2.背景 卷积神经网络在识别、检测和分割等大量计算机视觉任务中取得了很大的进展。Over-parameterized的深层神经网络可以产生令人印象深刻的性能

机器学习项目失败的9个原因

纵然是瞬间 提交于 2020-08-13 04:56:55
本文总结了数据科学项目失败的最常见原因,希望能够帮助你避免陷阱。 1.问错了问题 如果你问了错问题,你将会得到错误的答案。比如金融业中的欺诈识别问题,这个问题最初可能是“这个特定的交易是否存在欺诈”。为了确定这一问题,你将需要一个包含欺诈和非欺诈交易示例的数据集。这个数据集可以在一组专门负责侦测欺诈行为的专家(SME)的帮助下生成。但是,由于专家们依据的是过去对欺诈行为的认识进行的标记,用该数据集训练的模型只会捕获符合旧模式欺诈,而对于新兴的欺诈方式,这一模型将无法识别。如果将问题改为“这个交易是否反常”,它只需寻找不符合“正常”签名的交易,依靠人类进一步分析预测的欺诈交易以验证模型结果即可。但这种方法的副作用是,它很可能会比以前的模型产生更多的误报。 2.试图用它来解决错误的问题 我们经常会忽视一个问题:我们费尽心思解决了一个问题,但是解决后是否能实现我们的目的。比如,你想出了用人工智能开发出一个将人的全身照传上网站就能根据提醒量身定做一套合身的衣服的项目。完成这个项目我们需要完成以下任务: ·开发AI/ML技术以确定照片中的身体测量值; ·设计并创建一个网站和手机应用,以便与客户进行互动; ·进行可行性研究以确定此产品是否有市场。 作为技术专家,我们最熟悉的就是产品设计与编码,因此我们可能想开始研究前两个任务

什么是马尔可夫决策过程

﹥>﹥吖頭↗ 提交于 2020-08-12 15:00:35
作者|Nathan Lambert 编译|VK 来源|Towards Data Science 关于马尔可夫决策过程的马尔可夫是什么? 马尔可夫是安德烈·马尔科夫(Andrey Markov),​​他是著名的俄罗斯数学家,以其在随机过程中的工作而闻名。 “马尔可夫”通常意味着在当前状态下,未来和过去是独立的。 建立Markovian系统的关键思想是无记忆。无记忆是系统历史不会影响当前状态的想法。用概率表示法,无记忆性转化为这种情况。考虑一系列动作产生的轨迹,我们正在寻找当前动作将带给我们的位置。长的条件概率可能看起来像: 现在如果系统是Markovian,则历史将全部包含在当前状态中。因此,我们的第一步分配要简单得多。 这一步是改变计算效率的规则。马尔可夫性质是所有现代强化学习算法的存在和成功的基础。 马尔可夫决策过程(MDP) MDP由以下定义: 状态集$s\in S。状态是代理程序所有可能的位置。在下面的示例中,它是机器人位置。 一组动作 \(a\in A\) 。动作是代理可以采取的所有可能动作的集合。在下面的示例中,这些动作的下方是{北,东,南,西}。 转换函数T(s,a,s')。T(s,a,s')保持MDP的不确定性。给定当前位置和给定动作,T决定下一个状态出现的频率。在下面的示例中,转换函数可能是下一个状态在80%的时间内处于目前动作方向,而在其他20

符号主义对深度学习的意义浅谈

南楼画角 提交于 2020-08-12 11:52:36
符号主义人工智能经历过古典时期的专家系统阶段, 中期的知识图谱阶段, 和近期深度学习和符号主义的再次联姻。 那么一个很重要的问题是符号主义为什么会复兴,它对当下的机器学习又有何意义? 参考阅读: Reconciling deep learning with symbolic artificial intelligence: representing objects and relations ​ www.sciencedirect.com 首先, 当下的深度学习有三个最主要的问题,很低的数据使用效率, 泛化能力, 可解释性,都可以从符号主义得到极大帮助。 这一点也不难理解, 所谓符号,多数指我们语言中那些经常被使用的抽象概念,这些概念再不同的任务和环境中被广泛使用组成新的概念,比如红色,圆形等,如果能够在不同任务中学习到这些最基本的元素, 那么无疑将极大的改善数据使用效率和泛化能力。同时, 从视频,声音等信息中提取出的这种符号,几乎一定是和我们的自然语言有所对应,和我们的认知概念有所对应,因此,提取这些符号将极大助力模型的可解释性。从这两个角度看, 符号的确可以解决深度学习的几个根本问题。 更加重要的是,符号的使用和我们的推理认知能力极为相关,这也是为什么在第一代的人工智能时代人们如此重视符号, 因为它是逻辑思维的载体,有了符号我们可以在符号基础上罗列各种运算,进行关系预测和推理等

618前端竞品分析研究(互动篇)

梦想的初衷 提交于 2020-08-12 08:45:06
作者:吉玉 智能化测试 在互动中经常需要维护 大量的状态 ,对这些状态进行 测试验证成本较高 ,尤其是当有功能变动需要回归测试的时候。为了降低开发测试的成本,在这方面使用 强化学习模拟用户行为 ,在两个方面提效: mock接口 :将学习过程中的状态作为服务接口的测试数据; 回归测试 :根据mock接口数据回溯到特定状态,Puppeteer根据强化学习触发前端操作,模拟真实用户行为; 什么是强化学习呢? 强化学习是机器学习的一个领域,它强调如何基于环境行动,获取最大化的预期利益。强化学习非常适用于近几年比较流行的电商互动机制:做任务/做游戏 -> 得到不同的奖励值 -> 最终目标大奖,在这类型的互动游戏中,奖励是可预期的,用户的目标是使得自己的奖励最大化。这个过程可以抽象为马尔科夫决策模型:玩家(agent)通过不同的交互行为(action),改变游戏(environment)的状态(state),反馈给玩家不同的奖励 (reward);这个过程不断循环迭代, 玩家的最终目标是奖励最大化。 接下来,我们使用比较简单的Q-learning,来实现类似的智能化测试目的。 Q-learning 对于不同状态下,Q-learning的Q(s,a)表示在某一个时刻的s状态下,采取动作a可以得到的收益期望,算法的主要思想是将state和ation构建一张Q-table来存储Q值

强化学习(十一) Prioritized Replay DQN

我的未来我决定 提交于 2020-08-11 19:52:30
    在 强化学习(十)Double DQN (DDQN) 中,我们讲到了DDQN使用两个Q网络,用当前Q网络计算最大Q值对应的动作,用目标Q网络计算这个最大动作对应的目标Q值,进而消除贪婪法带来的偏差。今天我们在DDQN的基础上,对经验回放部分的逻辑做优化。对应的算法是Prioritized Replay DQN。     本章内容主要参考了ICML 2016的 deep RL tutorial 和Prioritized Replay DQN的论文<Prioritized Experience Replay>(ICLR 2016)。 1. Prioritized Replay DQN之前算法的问题     在Prioritized Replay DQN之前,我们已经讨论了很多种DQN,比如Nature DQN, DDQN等,他们都是通过经验回放来采样,进而做目标Q值的计算的。在采样的时候,我们是一视同仁,在经验回放池里面的所有的样本都有相同的被采样到的概率。     但是注意到在经验回放池里面的不同的样本由于TD误差的不同,对我们反向传播的作用是不一样的。TD误差越大,那么对我们反向传播的作用越大。而TD误差小的样本,由于TD误差小,对反向梯度的计算影响不大。在Q网络中,TD误差就是目标Q网络计算的目标Q值和当前Q网络计算的Q值之间的差距。     这样如果TD误差的绝对值$|

Math4DS 直播 NO.3 |普林斯顿大学统计与机器学习中心教授王梦迪

柔情痞子 提交于 2020-08-11 18:18:46
Online Seminar on Mathematical Foundations of Data Science (Math for DS) [1]是在线的、每周举办的系列研讨会。研讨会旨在讨论数据科学、机器学习、统计以及优化背后的数学原理,邀请了北美诸多知名学者进行主题演讲。 @运筹OR帷幄 作为合作媒体,将在其B站持续为大家带来直播和回放。 Online Seminar on Mathematical Foundations of Data Science(Math4DS)是在线的、每周举办的系列研讨会,其内容涵盖数据科学、机器学习、统计以及优化背后的数学基础。 在线研讨会将在Zoom上进行,有关研讨会的公告和Zoom链接,可通过点击阅读原文,链接到国内镜像网址获得。 此外,『运筹OR帷幄』公众号平台会及时预告研讨会的最新消息,由于Zoom会议的人数上限,我们会在Bilibili为大家带来研讨会的直播和回放,诚邀各位参与和观看。 研讨会邀请到诸多知名学者进行主题演讲,目前受邀参加的有: Math for DS 第三期线上直播预告 主题: On the Statistical Complexity of Reinforcement Learning 嘉宾:王梦迪 时间:北京时间5月27日凌晨三点 地点:Zoom、『运筹OR帷幄』哔哩哔哩直播间 主题介绍 Recent

一个网站拿下机器学习优质资源!搜索效率提高 50%

风格不统一 提交于 2020-08-11 16:49:45
红色石头的个人网站: 红色石头的个人博客-机器学习、深度学习之路 ​ www.redstonewill.com 现在大家平时会遇到很多不错的机器学习资源,但是大多数情况下,资源比较分散,不方便集中管理和查阅。更重要的是往往很难找到一个系统完整的资源导航,形成系统的学习路线,方便搜索。 重磅!今天小编在网上“闲逛”的时候发现了一个超级棒的机器学习优质资源分类导航。至少节约大家 50% 的时间。 下面详细给大家介绍一下! 首先,放上这个机器学习优质资源分类导航的网站: https://madewithml.com/topics/ ​ madewithml.com 该网站整理收集了机器学习最佳的资源,并持续更新中。如果你正在寻找当前的热门内容,请查看主页。如果你在没有看到想要的主题,你可以使用顶部的搜索栏来搜索它。 该网站总共收集了 10 大主题内容,分别是: 框架 算法 自然语言处理 机器视觉 综合 概念 数据、模型和训练 全栈 工业 收藏 下面,分别来看一下! 1. 框架 这部分主要收集了一些编程用的框架,例如最常见的 Python、Numpy、TensorFlow 等。点开相应的框架,就会跳转到比较全面的关于该框架的资源。 例如 Python: 除了 Getting started,还有 Tutorials、Toolkits、Research、Recent 等,内容真的太丰富了。

如何教AI吃鸡?

天涯浪子 提交于 2020-08-11 10:51:37
导读: 光看标题,你可能会以为今天会聊一个休闲的话题,不不,今天我们将要认真聊的,是一个严肃的软件工程话题: 自动化测试。 具体来说,是 手机游戏的自动化测试。 不是别家的游戏,正是腾讯游戏,保证半点也没有标题党。(坚持看完有福利) 学过软件工程的同学应该都知道,软件工程是一门老师都可能随时不知道自己到底在讲什么的计算机专业课。不过,这不是本篇的重点。 软件工程告诉我们很多重要的事,其中一件事是 软件都有一个生命周期。 没错,一说软件开发,我们都会很自然想到写代码,但软件工程告诉我们,写代码远不是软件开发的全部工作,甚至还不一定是最重要的工作。 按照软件工程的说法,开发软件你得首先和客户谈笑风生,这叫需求分析,接着就是各种写不完的文档和开不完的研究会,都弄好以后,差不多就可以把“码农”找过来,把满头青丝编成代码。 你以为这就完了?没有!从软件编码到软件正式上线部署之间,有一个非常重要的阶段,叫 软件测试,俗称Debug。 Debug完了软件该上线了吧?NoNoNo,城里人的套路深着呢,还有QA和QC在前面等着。等着干嘛呢,翻来覆去地花式折腾你的程序,目标只有一个,加油努力把程序玩脱。 照一些软工书本的说法,软件开发 最重要的是需求,其次是测试,接着可能是什么三姑六婆 ,至于程序员死了都要爱的写代码环节,在软工书里经常是三甲不入的,没啥存在感。 当然了,理想很丰满,现实很骨感