编者注:本文作者系出门问问 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中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建