1. 人工智能 1.1. “人工智能”这个词听起来就是电影里的意象 1.1.1. 电影《星际迷航:下一代》中栩栩如生的机器人“数据少校” 1.1.2. 电影《2001太空漫游》中的哈尔9000 1.1.3. 电影《她》中的人工智能系统萨曼莎 1.1.4. 漫威系列漫画和电影中钢铁侠的管家贾维斯 1.2. 许多人希望现实世界中能有人工智能的东西出现,他们多半就是想要一个能满足所有需求的机器人管家 1.2.1. 脸书的马克·扎克伯格就曾开发过一个基于人工智能的家庭自动化系统,他将其命名为“贾维斯” 1.3. 自己特别想要得到的东西,人们就很容易将想象和现实混为一谈 1.4. 计算机科学家和普罗大众(包括从事技术工作的大学生)对人工智能的看法的不同 1.4.1. 一个将不智能的计算机器叫作“智能机器”的世界 1.4.2. 欣然接受人工设备(计算机)与真正的智能生物(人类)同步配合运行而给现实带来的可能性 1.5. 数学最了不起的一点,就是它可以让你看到这个世界运行的底层规律 1.5.1. 许多事情的运行都是按照数学规律来的:水晶按规则的形状生长,蝉卵在地下休眠,直到土壤温度合适才出土,等等 1.5.2. 并不是世界上的所有事情都跟计算有关 2. 广义人工智能 2.1. 广义人工智能是好莱坞式的人工智能 2.2. 与好莱坞电影里那些有知觉的机器人 2.2.1. 有些可能想要统治世界 2.2.2. 有些可能不想 2.3. 内置意识的计算机、永生,或者那些像人类一样“思考”的机器有关 3. 狭义人工智能 3.1. 机器学习、深度学习、神经网络和预测分析都是时下流行的狭义人工智能概念 3.2. 狭义人工智能是一种用于预测的数学方法 3.2.1. 人工智能的一切都跟定量预测有关,它其实就是加强版的统计工具 3.3. 狭义人工智能能回答任何一个答案基于数字原理的问题,而且可以给出最有可能正确的答案 3.4. 工作原理是分析一个已知的数据集,在数据集中识别数据模式和事件概率,并把这些数据模式和事件概率编写成计算模型 3.4.1. 所谓计算模型,就是只需扔数据进去,它就能吐出答案 3.5. 现今每一个人工智能系统的工作原理都有合乎其逻辑的解释 3.5.1. 理解它们的计算逻辑就能揭开人工智能的神秘面纱,就如拆开电脑可以了解硬件一样 4. 游戏 4.1. 人工智能多用在游戏领域 4.1.1. 一些著名的风险投资家、科技巨头他们大部分人从小就是《龙与地下城》的游戏迷 4.2. 自从艾伦·图灵在一篇发表于1950年的论文中首次提出“图灵测试”的概念之后,计算机科学家们都用国际象棋作为机器“智能”的标志 4.2.1. 半个世纪以来,人们一直在尝试制造一台可以打败人类棋手的机器 4.2.2. 只要计算机通过,就能被视作拥有智力,但事实并非如此 4.2.3. 图灵论证的哲学基础是不牢靠的 4.2.3.1. 哲学家约翰·塞尔提出的一个思想实验——中文房间(Chinese Room) 4.3. 第一个井字棋程序诞生于1952年 4.3.1. 可以部署一个算法模型,即一组规则或步骤,让计算机在游戏中一直赢棋或和局 4.4. IBM的“深蓝”在1997年击败了国际象棋冠军加里·卡斯帕罗夫 5. 中文房间 5.1. 数字计算机是一种只会处理符号,但并不理解符号的含义或解释的设备 5.2. 人类则不同,人类在思考时要做的事情远不止这些 5.2.1. 人脑中有带意义的想法、情感和精神内容 5.3. 形式化的符号本身是不足以形成精神内容的,因为它们本质上就没有任何含义(或解释,或语义),除非在符号系统以外,由人类为它们赋予意义 5.4. 塞尔主张处理和运用符号不等于理解符号,这一点可体现在现今大热的语音交互技术上 5.5. 语音接口在2017年非常时兴,但它们还远远不够智能 6. AlphaGo 6.1. 至少从1965年起,计算机科学家和围棋爱好者就一直在研究围棋的技巧模型 6.1.1. 围棋一共有10^170 种可能的棋面 6.1.2. 第一个计算机化的围棋程序诞生于1968年 6.1.3. 计算机科学界有一个子领域专门研究围棋叫计算机围棋 6.2. 智能游戏格式(Smart Games Format) 6.2.1. SGF 6.2.2. 表明了棋手的身份、棋局进行的地点、棋手每一步棋的落法和棋局的终局结果 6.3. AlphaGo的设计者们积累了庞大的数据集,里面有3 000万个SGF棋谱文件 6.3.1. 这个数据集不是随机生成的,而是由真人对弈产生的 6.3.2. 只要有业余围棋爱好者或职业棋手在网上玩围棋游戏,他们落棋的数据就会被存储起来 6.3.3. 运营不同在线围棋游戏网站的人决定打包他们保存的游戏数据,在网上公开 6.3.4. 最终,这些数据包被收集到一起,成了AlphaGo团队的3 000万局棋的数据 6.4. 专业的棋手会花大量时间在电脑上下围棋,这是他们的训练方式 6.4.1. 3 000万局棋的数据里面就有世界顶尖棋手的数据 6.4.2. 人类投入了几百万个小时的劳动,才创建了这些训练数据 6.5. 大部分关于AlphaGo的报道,却只关注它那神奇的算法,而不关注多年来在幕后默默无闻并且无偿创建训练数据的人 6.6. 2017年,人工智能程序AlphaGo以3比0打败围棋世界冠军柯洁,它常常被当作例子,以佐证广义人工智能将在未来若干年内实现 6.6.1. AlphaGo是由人类编写的、在硬件上运行的程序,就像写的“Hello,world”程序一样 6.6.2. 特别想要某事发生,不代表这件事就真会发生 6.7. AlphaGo得益于计算机硬件和软件的非凡发展,它是一个非凡的数学成就 6.7.1. AlphaGo的设计团队解决了一个难度极高的数学题,几十年来,最聪明的人类都在试着解决这个问题 6.7.2. 工作原理 6.7.2.1. 所有完美信息博弈都有一个最优值函数v*(s),它能从玩家落子的位置(或状态s)推断出在所有参与博弈的玩家都做到了完美表现的情况下,博弈的结果将是什么。要解决这些博弈游戏,可以通过在搜索树中递归调用最优值函数(搜索树含有大约bd个可能的行动序列,其中b表示博弈的宽度,即每一步棋的合法落子个数,d则表示博弈的深度,即博弈的步数长度)。 6.7.3. “蒙特卡洛搜索”(Monte Carlo search)的方式 6.7.3.1. 从3 000万局棋的数据中挑出一组比较可能赢棋的棋步 6.7.3.2. AlphaGo将大量计算方法层叠在一起,每一步棋都选择赢面最大的走法 6.8. 一旦了解AlphaGo这种程序在数学和物理方面的本质,我们就会陷入对哲学和未来的思考 6.8.1. AlphaGo并不是一台智能机器 6.8.1.1. 它没有意识。它只会做一件事:玩电脑游戏 6.8.1.2. 它利用蛮力和许多人的共同努力,来打败一个围棋高手