从围棋到移动DSP人工智能商用的最前沿

摘要:4比1获胜。这是人工智能与人类比拼棋力的最终战报。由谷歌旗下DeepMind公司研发的机器程序AlphaGO以大比分战胜了职业围棋九段选手李世石,继1997年IBM“深蓝”击败卡斯帕洛夫之后,人工智能取得的又一次颇具里程碑意义的胜利。但不止是围棋,人工智能其实早已实实在在的参与到我们的日常生活,每天打开手机看到的跟我们相关的广告,其中背后的移动DSP广告投放技术就是目前人工智能商用的最前沿领域之一。

人工智能科学家们一直以来对攻克棋类游戏十分着迷。从跳棋到国际象棋,他们不断证明计算机程序,或者说人工智能已经比任何一个人类棋手都要优秀。但围棋却是唯一没有被计算机攻克的棋类,被称作棋类游戏“最后的王冠”。

“深思”的AlphaGO

人们对于棋类游戏的破解从蛮力开始,计算机可以凭借远超人类的计算能力,推出在任何一种局面下的最优解。例如跳棋的可能性约为10的20次方,计算机可以枚举出所有走法;国际象棋大约为10的47次方,此时机器的计算能力开始捉襟见肘,好在科学家们有了新办法:程序可以在所有走棋的选项中,找出几个最佳解,然后将计算能力放在所选的几步棋产生的后续变化上。

计算机程序之所以可以这么做,是因为国际象棋有着较多的约束性规则和价值判断结构,比如马要走日字型,其杀伤力大于兵,而皇后可沿随意直行,价值更在二者之上。

相比之下,围棋的难点在于规则简单却变化惊人,它可产生的棋局达10的170次方,远超宇宙中所有原子的数量,而仅仅是黑白两子却又孕育出多变的战术,一步棋的价值,往往随着接下来的落子不同而不同。这些都不是由规则本身所约束形成的。

那么,如何让计算机程序像人类一样对弈?

AlphaGO使用了三个技术来实现:蒙特卡洛树搜索作为主架构、强化学习作为训练方法、深度的神经网络是学习工具。(这里不详细展开叙述,有兴趣的读者可以自行了解。)

AlphaGO相比之前围棋算法的突破在于使用了Deep Learning深度学习和一个高效的快速减枝算法,从过去的人教机器的策略变成机器自我学习。Deep learning起源于图像识别(类似于科幻电影中某安全局使用的天眼系统,利用摄像头全世界找人),而目前Deep learning在工业界使用最广领域之一是在线广告行业,在国内像BAT以及京东等平台的广告系统都在使用这门技术。

借助Deep Learning可以简单概括AlphaGO的工作原理:首先想要教机器程序学会下棋,得让他能自己理解围棋中蕴含的一般法则。为了做到这一点,AlphaGO需要大量的练习数据和处理数据的能力。

科学家们找了3000万份人类已知的棋谱,并让AlphaGO自己“左右互搏”,从而产生大量的样本数据。随后这些数据被灌注到AlphaGO的算法中,它由两个关键部分组成,决策网络(Policy Network)负责提炼围棋的特征、规则并总结经验,然后给出每一步的推荐走法;价值网络(Value Network)负责根据前者的推荐,来计算每步棋可能的获胜概率。由于围棋的可能性过大,所以价值网络通常只会审查几步之后的结果,选择最有可能赢得比赛的落子。

AlphaGO正是凭借科学家们在机器学习上的智慧,站到了与千年前发明围棋这项游戏的先贤们同样的高度,甚至更高。

AlphaGO本身是一个通用计算程序,意味着未来可以应用并拓展到更多的领域,而不只是下棋。事实上,人工智能早已进入了我们的生活中,在商业和学术上都有了广泛的应用。例如自动驾驶、人脸识别、翻译、图像分类,甚至于你每天上网时看到的广告,都有人工智能的身影在里面。

移动DSP中的人工智能

广告将是下一个因人工智能而变革的行业,目前最成熟的人工智能商业化应用就是在互联网及程序化广告行业,精准、高效的投放机制彻底改变了传统广告。相比人工智能,人的优劣势是短时间的记忆容量和准确度优先,而分类整理信息的速度有限。当需要处理的信息过于庞大、规则复杂、但目标清晰、可量化计算时,人工智能就有了发挥的空间。