编者注:本文作者系出门问问 NLP 工程师李理,他在这篇文章详细叙述了AlphaGo 人工智能背后的细节。 前言:人生如棋 回顾一下我的人生,似乎和棋是有一些关联的。编者注:本文作者出门问问 1

本文主要是介绍编者注:本文作者系出门问问 NLP 工程师李理,他在这篇文章详细叙述了AlphaGo 人工智能背后的细节。 前言:人生如棋 回顾一下我的人生,似乎和棋是有一些关联的。编者注:本文作者出门问问 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

探寻AlphaGo的强大力量:深度学习寻找Alpha

广发金融工程研究

  摘要

  通过深度学习对大量的历史交易数据进行学习,建立股票价格的短期预测模型,从而选择未来一段时间收益期望高的股票,获取超额收益。从2011年以来,对冲策略的累积收益率为269.1%,年化收益为25.5%。

  1. 深度学习原理

  1.1 深度学习改变世界

  2016年3月,AlphaGo和李世石之间的围棋人机大战震惊了世界。人工智能轻而易举地在人类智慧最后的高地战胜了人类顶级棋手。

  这只是人工智能时代的一个缩影。近年来,深度学习以一种前所未有的力量改变着我们的科技和生活,创造一个个新的记录。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  1.2 深度学习原理

  为了说明深度学习的原理,我们先从最简单的分类问题开始。

  下图左侧有两类不同的点,红点和蓝点。我们目的是构建一个分类器,判断未知类别的点(无色点)是属于红色一类还是蓝色一类。从机器学习的角度出发,我们可以基于已知类别的红色点和蓝色点,建立起一条分类的线(右图虚线),将整个平面分成两份,这一过程被称为模型训练。对于一个新的类别未知的点,我们就可以根据该点和分界虚线的相对位置,判断该点应该是属于红色一类还是蓝色一类。如果点落在分界线的左侧,则更有可能是红点;如果点落在分界线的右侧,则更有可能是蓝点。

  在这个问题中,点的横纵坐标是机器学习的“输入”,颜色是“输出”。分类问题是通过建立起分类模型,对于不同的输入,计算出最可能的输出。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  对于稍微复杂一点的问题,线性分类器就不好用了。如下图左侧的点,我们不可能找到一条直线,将两种颜色的点分开。因此,这个问题是线性不可分的。

  但是,如果我们能够找到一种方式,将平面上这些点映射到另一个空间中,就有可能找到一个超平面,将这两类点划分开。这个新的空间被称为“特征空间”,点在新空间的坐标被称为“特征”。一个好的原始数据到特征空间的映射会使特征空间的分类问题变得简单,因此,我们一般通过已有的样本来获得这个映射,提取足够好的特征(根据样本进行模型训练)。这个映射一般都是非线性的,这种非线性分类器能够解决比较复杂的分类问题。机器学习方面的支持向量机(SVM)、人工神经网络(NN)都是基于这种原理。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  随着实际问题趋于复杂,人们发现,有时候将数据映射到特征空间还是不够。如果我们将特征空间的点映射到另一个特征空间,甚至进一步映射到新的特征空间,在新的特征空间中,原来不好解决的问题会变得容易解决。这种情况下,就有了多层的特征空间。

  深度学习就是这样一种模型,这种模型将原始的输入数据映射到特征空间(H1)之后,继续映射到更高层次的特征层(H2,H3,……)。隐含层的增多,极大的丰富了模型的表达能力。使得原来不可解决的问题变得容易解决。

  我们采用的深度学习模型是一个含有多个隐层(隐层数量大于等于2个)的神经网络模型。原始数据经过一层一层的抽象之后,最后进行分类。与普通的神经网络、支持向量机等机器学习算法相比,具有更好的性能。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  2. 深度学习Alpha策略

  2.1 策略原理

  本策略是周度调仓的深度学习预测策略。具体来说,每隔5个交易日进行一次建仓和平仓。根据深度学习预测模型,我们获得个股在T=5个交易日之后大幅上涨的预测得分。根据该因子挑选现货股票组合。

  多因子策略中,如果某因子与股票未来一段时间内的投资收益相关,则该因子可以作为Alpha因子。基于深度学习的交易策略就是借助深度学习对大量的历史交易数据进行学习,建立预测模型,从而获取Alpha因子,即深度学习模型的预测得分。预测得分越大,表示股票在未来一段时间的收益期望越高。

  基于深度学习的Alpha策略如下图所示,深度学习模型建立起当前时刻(t时刻)及此前时刻市场数据Xt以及一段时间后股票价格的变化Yt之间的关系,即使用信息Xt通过深度学习模型对此后的Yt进行预测,其预测得分可以作为Alpha策略的因子。

  建立起深度学习预测模型之后,对于每一个新的股票样本数据,可以预测股票在一段时间之后的上涨概率得分,根据该得分进行选股。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  3. 实证分析

  3.1 回测参数

  从中证800成份股里选择股票,组合规模为40只股票,等权构建多头组合,选用中证800指数进行对冲。

  回测区间为2011年1月1日至2016年9月30日。首先选取2006年1月1日至2010年12月31日的数据,训练深度学习预测模型。

  从2012年1月1日开始,每年都采用最近两年的数据,更新预测模型。

  策略回测时采用千分之2的双边交易成本。

  策略选取输入变量如下,一共有386个输入变量:

  日内的5分钟频的量价数据,包括:

  X1:收盘价序列

  X2:最高价序列

  X3:最低价序列

  X4:开盘价序列

  X5:买卖盘报价平均价格序列

  X6:成交量序列

  X7:委买委卖量之比序列

  日收盘价序列,包括:

  X8:前50个交易日的日收盘价格序列

  对输入变量进行数据清洗和标准化。

  选用的深度学习网络为包含两个隐层的网络,网络结构为[386, 400, 200, 2],模型含有386个输入变量,第一个隐层有400个节点,第二个隐层有200个节点,输出层有2个节点(输出依次表示预测价格是上涨或者下跌的得分)。

  首先通过无监督学习进行模型的训练,无监督学习的训练迭代次数为50次;然后训练有监督学习模型,有监督学习的迭代次数为400次。在Intel Xeon E5620,主频2.4GHZ的处理器下,单个预测模型的训练时间约为20小时。模型应用时,单个样本的预测耗时在5ms以内。

  3.2 实证结果

  2011年以来,对冲策略的累积收益率为269.1%,年化收益为25.5%,夏普比率为1.75。

  探寻AlphaGo的强大力量:深度学习寻找Alpha

  风险提示:

  量化模型胜率并非100%,市场环境改变等因素可能使得模型失效,历史表现也不能 代表未来,请特别注重风险,谨慎投资!具体报告参见广发金工团队发布的《深度学习股票多因子Alpha交易策略》。



附件:


AlphaGo一般指阿尔法围棋

阿尔法围棋(AlphaGo)是一款 围棋人工智能程序,由 谷歌(Google)旗下 DeepMind公司的 戴密斯·哈萨比斯、 大卫·席尔瓦,施恩·莱格与他们的团队开发。其主要工作原理是“ 深度学习”。这个程序在2016年3月与 围棋世界冠军、职业九段选手 李世石进行 人机大战,并以4:1的总比分获胜。不少职业围棋手认为,阿尔法围棋的棋力已经达到甚至超过围棋职业九段水平,在世界职业围棋排名中,其等级分曾经超过排名人类第一的棋手 柯洁。
2016年岁末,在国内棋类网站弈城网上出现了一个类似“围棋上帝”的账号(“围棋上帝”是指每一步都绝对正确,每一步都绝对算到,洞悉全局的一切),在2016年12月29日至31日的3天时间里,神秘高手连胜柯洁九段、 陈耀烨九段、朴廷桓九段、芈昱廷九段、唐韦星九段等高手。
2017年初, AlphaGo化身神秘网络棋手Master击败包括聂卫平、柯洁、朴廷桓、井山裕太在内的数十位中日韩围棋高手,在30秒一手的快棋对决中全部落败, 拿下了全胜的战绩。 [1]

深度学习

李世石与阿尔法围棋人机大战
阿尔法围棋(AlphaGo)是一款围棋 人工智能程序。其主要工作原理是“ 深度学习”。“深度学习”是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
这个程序主要包括4个部分:
1. 走棋网络(Policy Network),给定当前局面,预测/采样下一步的走棋。
2. 快速走子(Fast rollout),目标和1一样,但在适当牺牲走棋质量的条件下,速度要比1快1000倍。
3. 估值网络(Value Network),给定当前局面,估计是白胜还是黑胜。
4. 蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS),把以上这三个部分连起来,形成一个完整的系统。

两个大脑

阿尔法围棋(AlphaGo)是通过两个不同神经网络“大脑”合作来改进下棋。这些大脑是多层神经网络跟那些Google图片搜索引擎识别图片在结构上是相似的。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13 个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。
这些网络通过反复训练来检查结果,再去校对调整参数,去让下次执行更好。这个处理器有大量的随机性元素,所以人们是不可能精确知道网络是如何“思考”的,但更多的训练后能让它进化到更好。
第一大脑:落子选择器 (Move Picker)
阿尔法围棋(AlphaGo)的第一个神经网络大脑是“监督学习的策略网络(Policy Network)” ,观察棋盘布局企图找到最佳的下一步。事实上,它预测每一个合法下一步的最佳概率,那么最前面猜测的就是那个概率最高的。这可以理解成“落子选择器”。
第二大脑:棋局评估器 (Position Evaluator)
阿尔法围棋(AlphaGo)的第二个大脑相对于落子选择器是回答另一个问题。不是去猜测具体下一步,它预测每一个棋手赢棋的可能,再给定棋子位置情况下。这“局面评估器”就是“价值网络(Value Network)”,通过整体局面判断来辅助落子选择器。这个判断仅仅是大概的,但对于阅读速度提高很有帮助。通过分类潜在的未来局面的“好”与“坏”,AlphaGo能够决定是否通过特殊变种去深入阅读。如果局面评估器说这个特殊变种不行,那么AI就跳过阅读。

主要成绩

对战机器人

研究者让“阿尔法围棋”和其他的围棋人工智能机器人进行了较量,在总计495局中只输了一局,胜率是99.8%。它甚至尝试了让4子对阵CrazyStone、Zen和Pachi三个先进的人工智能机器人,胜率分别是77%、86%和99%。 [4]

对战人类

2016年1月27日,国际顶尖期刊《 自然》封面文章报道,谷歌研究者开发的名为“阿尔 
围棋人机大战现场
法围棋”(Alpha Go)的 人工智能机器人,在没有任何让子的情况下,以5:0完胜欧洲围棋冠军、职业二段选手 樊麾。在围棋人工智能领域,实现了一次史无前例的突破。计算机程序能在不让子的情况下,在完整的围棋竞技中击败专业选手,这是第一次。
2016年3月9日到15日,阿尔法围棋程序挑战世界围棋冠军李世石的 围棋人机大战五番棋在韩国 首尔举行。比赛采用 中国围棋规则,奖金是由Google提供的100万美元。最终阿尔法围棋以4比1的总比分取得了胜利。 [3-7]

围棋等级分

2016年7月18日,世界职业围棋排名网站GoRatings公布最新世界排名,谷歌旗下DeepMind的人工智能系统AlphaGo以3612分,超越3608分的柯洁成为新的世界第一。 [8]

设计团队

戴密斯·哈萨比斯(Demis Hassabis),人工智能企业家,DeepMindTechnologies公司创始人。4岁开始下 国际象棋,8岁自学编程,13岁获得国际象棋大师称号。17岁进入 剑桥大学攻读计算机科学专业。在大学里,他开始学习围棋。2005年进入 伦敦大学学院攻读神经科学博士,选择大脑中的海马体作为研究对象。两年后,他证明了5位因为海马体受伤而患上健忘症的病人,在畅想未来时也会面临障碍,并凭这项研究入选《科学》杂志的“年度突破奖”。2011年创办DeepMind Technologies公司,以“解决智能”为公司的终极目标。
大卫·席尔瓦 (David Silver), 剑桥大学计算机科学学士、硕士,加 
阿尔法围棋设计团队部分成员
拿大 阿尔伯塔大学计算机科学博士, 伦敦大学学院讲师,Google DeepMind研究员。
除上述人员之外,阿尔法围棋设计团队核心人员还有DeepMindTechnologies公司联合创始人施恩·莱格(Shane Legg)和穆斯塔法·苏莱曼(Mustafa Suleyman),黄世杰(Aja Huang)等。

发展方向

谷歌Deep mind首席执行官(CEO) 戴密斯·哈萨比斯宣布“要将阿尔法围棋(AlphaGo)和医疗、机器人等进行结合”。因为它是人工智能,会自己学习,只要给它资料就可以移植。
据韩国《 朝鲜日报》报道,为实现该计划,哈萨比斯2016年初在英国的初创公司“巴比伦”投资了2500万美元。巴比伦正在开发医生或患者说出症状后,在互联网上搜索医疗信息、寻找诊断和处方的人工智能APP(应用程序)。如果阿尔法围棋(AlphaGo)和“巴比伦”结合,诊断的准确度将得到划时代性提高。

社会评论

围棋世界冠军、中国职业围棋九段棋手 常昊:人工智能是社会发展和自然科学发展的必然。历史的车轮无法阻止,关键是怎么适应。有人觉得人类智慧的堡垒被打破,但是其实从另一方面说这也给围棋的推广发展和在文化挖掘的方面提供了一个很好的契机。
复旦大学计算机科学技术学院教授、博士生导师 危辉:人机大战对于人工智能的发展意义很有限。解决了围棋问题,并不代表类似技术可以解决其他问题,自然语言理解、图像理解、推理、决策等问题依然存在,人工智能的进步被夸大了。

神秘棋手

2016年岁末,在国内棋类网站弈城网上出现了一个类似“围棋上帝”的账号(“围棋上帝”是指每一步都绝对正确,每一步都绝对算到,洞悉全局的一切),在2016年12月29日至31日的3天时间里,神秘高手连胜柯洁九段、陈耀烨九段、朴廷桓九段、芈昱廷九段、唐韦星九段等高手。
在取得30连胜后,这位神秘人在弈城网上选择了休战,并于2017年1月1日晚登录腾讯围棋(野狐),又开始新的“踢场子”。当晚Master轻取亚洲电视快棋赛冠军李钦诚九段。
棋界人士对这位神秘人身份的猜测炸了锅,因为在棋界,除了“围棋上帝”,难以找到第二位具有如此棋力的高手。而唯一能找到的关于神秘人的资料就是他的名字叫做Master(不禁让人联想到了功夫熊猫里的乌龟”Master Wugui )
有说法是谷歌阿法狗(AlphoGo)再现,也有说法是棋风对不上,是另一个围棋AI。
1月4日晚间消息,DeepMind官方确认,在围棋网站上通过59场比赛横扫中日韩围棋高手的围棋程序 “Master”,同样出自 DeepMind ——这是在AlphaGo 的基础上,DeepMind 半年来在人工智能方面的重要进展。

0

0

这篇关于编者注:本文作者系出门问问 NLP 工程师李理,他在这篇文章详细叙述了AlphaGo 人工智能背后的细节。 前言:人生如棋 回顾一下我的人生,似乎和棋是有一些关联的。编者注:本文作者出门问问 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830954

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve