三国演义

  • 未来人工智能将进一步改变人类生活的方方面面。
    2017年,《国务院关于印发新一代人工智能发展规划的通知》指出,我国新一代人工智能发展的战略目标为,“到2030年人工智能理论、技术与应用总体达到世界领先水平,成为世界主要人工智能创新中心,智能经济、智能社会取得明显成效,为跻身创新型国家前列和经济强国奠定重要基础”。
  • 清华大学交叉信息研究院计算机科学实验班(姚班)和人工智能班(智班)教学团队
  • 每一章均配备习题与编程实验,让同学们在实践中进一步深化对原理与内容的理解。
  • 适用于高中人工智能课程教材,以及人工智能教育培训教材,亦可作为大众普及读物。
新 闻
大(da) / 事 / 件

姚期智院士领衔 清华大学推出面向高中生的人工智能教材

2020年(nian)1月7日上午,由(you)(you)图(tu)灵奖得主(zhu)(zhu)、中国科学院(yuan)院(yuan)士、清(qing)(qing)华(hua)大(da)(da)学交叉信(xin)息研究院(yuan)院(yuan)长姚(yao)期(qi)智(zhi)领衔主(zhu)(zhu)编(bian)的(de)教(jiao)材(cai)《人工智(zhi)能(neng)(高(gao)中版(ban))》,在清(qing)(qing)华(hua)大(da)(da)学信(xin)息技术大(da)(da)楼举(ju)办正式出版(ban)签约仪式。姚(yao)期(qi)智(zhi)院(yuan)士,图(tu)灵奖得主(zhu)(zhu)John Hopcroft(约翰·霍普(pu)克罗夫特)院(yuan)士,以及清(qing)(qing)华(hua)大(da)(da)学出版(ban)社(she)社(she)长宗俊(jun)峰出席签约仪式并致辞。签约仪式由(you)(you)教(jiao)材(cai)副(fu)(fu)主(zhu)(zhu)编(bian)、交叉信(xin)息院(yuan)智(zhi)班项目主(zhu)(zhu)任黄隆波(bo)副(fu)(fu)教(jiao)授主(zhu)(zhu)持。

影 响 力
学 / 者 / 寄(ji) / 语
  • 姚期智
    图灵奖得主、中国科学院院士
    清华大学交叉信息研究院院长

    ”人工智能已成为本世纪最重要的新兴科学之一,其重要程度可与前两个世纪中数学、物理所占据的角色一样,会对各个学科产生无比深远的影响。如何让中学生在科学启蒙阶段接受正确的人工智能观念,是中国也是全世界正在探究的问题。
    我们有责任共同解决这一问题。”
  • John Hopcroft
    美国科学院、美国工程院
    美国艺术与科学院三院院士

    ”世界正在发生颠覆性改变,而人工智能就是这一转变的核心动力,如何教育下一代去理解并为未来的工作做好准备,是非常重要的,并且这类教育工作启动得越早越好。未来世界最宝贵的财富是人才,从国家层面来讲,人才培养尤为重要。该教材将对中国的教育产生“根本性的影响”。”
  • 宗俊峰
    清华大学出版社社长

    ”该教材将是人工智能教育和教材出版中里程碑式的引领,这一基础教材对于促进高中与大学教学的有机衔接、推动全民智能教育项目及中小学人工智能相关课程建设的开展具有非常重要的意义。清华大学出版社将与交叉信息研究院强强联手、密切合作,为广大中学生推出此精品教材。”

人工智能(高中版)第一版 · 章节概要

主(zhu)编:姚期智(zhi)    出版社:清(qing)华大(da)学出版社

目录
  • 第一章:搜索
  • 第二章:机器学习
  • 第三章:线性回归
  • 第四章:决策树、梯度提升和随机森林
  • 第五章:神经网络
  • 第六章:计算机视觉
  • 第七章:自然语言处理
  • 第八章:马尔可夫决策过程与强化学习
  • 第一章:搜索

    1.双向A*算法

    书本里介绍的(de)(de)A*算法(fa)是单向搜(sou)索,即从初(chu)识状(zhuang)态(tai)开(kai)始,一直搜(sou)到(dao)目(mu)标状(zhuang)态(tai)。双向A*算法(fa)是对单向A*算法(fa)的(de)(de)改进,即从初(chu)识状(zhuang)态(tai)和目(mu)标状(zhuang)态(tai)同时开(kai)始分别(bie)进行A*搜(sou)索,直到(dao)相遇。

    2.局部搜索:爬山(shan)法和模拟退(tui)火算(suan)法

    书本(ben)里(li)介绍里(li)解(jie)释的搜索算法(fa)主要属(shu)于系统性的搜索,其特点是保存了一条从(cong)初(chu)始(shi)位置(zhi)至目标的路(lu)径,并记录(lu)了每个节点是否被访问过。因此,当问题的规(gui)模(mo)很(hen)大的时候(hou),其搜索效率会比较低。因此,当我们不需要到达目标的路(lu)径,而(er)(er)只需要目标本(ben)身时,我们可以(yi)只保存和利用(yong)当前(qian)节点的信息,寻找更加接近目标的下(xia)一个邻接节点,从(cong)而(er)(er)到达最终(zhong)的目标,这种方法(fa)叫做(zuo)局部搜索。

    局部(bu)(bu)搜索是(shi)解(jie)(jie)(jie)决最优化问题的(de)(de)一(yi)种算法。局部(bu)(bu)搜索从一(yi)个初(chu)始解(jie)(jie)(jie)出(chu)发,然(ran)后依次搜索解(jie)(jie)(jie)的(de)(de)邻域;如果邻域内最优的(de)(de)解(jie)(jie)(jie)优于(yu)当(dang)前解(jie)(jie)(jie),则(ze)移(yi)动至邻域内最优解(jie)(jie)(jie)并继续执行搜索,否则(ze)返回(hui)当(dang)前解(jie)(jie)(jie)。局部(bu)(bu)搜索的(de)(de)优点(dian)(dian)是(shi)简单(dan)、灵活及易(yi)于(yu)实现(xian),缺点(dian)(dian)是(shi)容易(yi)陷入局部(bu)(bu)最优,且解(jie)(jie)(jie)的(de)(de)质量与最初(chu)解(jie)(jie)(jie)和(he)邻域的(de)(de)结构密切相关(guan)。爬山(shan)法和(he)模拟退火算法是(shi)局部(bu)(bu)搜索的(de)(de)两(liang)种典型算法。

    爬山算(suan)法(fa)是一(yi)种经典的(de)局部(bu)搜索(suo)算(suan)法(fa),是对(dui)深度(du)优(you)先搜索(suo)的(de)一(yi)种改(gai)进。它(ta)通过(guo)启发(fa)式的(de)方法(fa),对(dui)局部(bu)的(de)空(kong)间进行(xing)有(you)限的(de)探索(suo),从而在每一(yi)步中找到(dao)局部(bu)最优(you)解。爬山法(fa)是一(yi)个(ge)简单的(de)循环(huan)过(guo)程,不断向估计值增高(gao)的(de)方向进行(xing)移(yi)动,并在所有(you)临界状态的(de)估值函数均低于当前(qian)状态时终止。

    图1.12 局部最优解与全局最优解

    爬山算(suan)法避免了遍历(li)全(quan)部节点,在(zai)一(yi)定程(cheng)度上提高了效率,但往往只能(neng)找到一(yi)个局部最(zui)优(you)(you)解(jie),而不(bu)能(neng)保证全(quan)局最(zui)优(you)(you)解(jie)(图1.12)。为了解(jie)决此问题(ti),可以(yi)在(zai)随机(ji)生(sheng)成的初始节点多(duo)次调用爬山算(suan)法,并选取多(duo)次返回值的最(zui)优(you)(you)值,从而达(da)成效率与(yu)最(zui)优(you)(you)解(jie)之间的一(yi)种平(ping)衡。

    爬山法的(de)缺陷在于其永远不会“走下坡”,因此可能被困在局部(bu)最(zui)优解。相反,如果在状态空(kong)间中(zhong)随机游走,则虽然最(zui)终能够找到全局最(zui)优解,但是效(xiao)率(lv)非常低。模拟退火(huo)算(suan)法的(de)思(si)想借鉴(jian)了(le)物理中(zhong)的(de)固体退火(huo)原(yuan)理,将两种搜索方式有效(xiao)地结合了(le)起(qi)来。

    模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法由Metropolis在(zai)1953年提出(chu),是局(ju)部搜(sou)索(suo)算法的(de)(de)(de)一种扩展。Kirkpatrick等(deng)人在(zai)1983年成功地(di)将模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法应用于(yu)求(qiu)解(jie)组合优(you)化问(wen)(wen)题(ti)(ti)。模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法被广泛地(di)应用于(yu)运(yun)筹研究领域的(de)(de)(de)优(you)化问(wen)(wen)题(ti)(ti)求(qiu)解(jie),如排程(cheng)(cheng)问(wen)(wen)题(ti)(ti)、旅(lv)行(xing)(xing)商问(wen)(wen)题(ti)(ti)、特征(zheng)提取、多目标问(wen)(wen)题(ti)(ti)等(deng)等(deng),对于(yu)许多非(fei)凸优(you)化问(wen)(wen)题(ti)(ti)、NP问(wen)(wen)题(ti)(ti)都能(neng)(neng)够提供较(jiao)好的(de)(de)(de)近(jin)(jin)似解(jie)。模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法的(de)(de)(de)基本思想是使用温(wen)(wen)度(du)函数作为参数,控制(zhi)搜(sou)索(suo)的(de)(de)(de)随(sui)机(ji)程(cheng)(cheng)度(du)。模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法为每一个(ge)状(zhuang)态赋予了(le)一个(ge)能(neng)(neng)量,当(dang)温(wen)(wen)度(du)较(jiao)高时,粒(li)子(zi)的(de)(de)(de)行(xing)(xing)为接近(jin)(jin)随(sui)机(ji)游(you)动(dong),有较(jiao)大概率(lv)“走上坡”到达能(neng)(neng)量更(geng)高的(de)(de)(de)状(zhuang)态;而当(dang)温(wen)(wen)度(du)逐渐(jian)降(jiang)低时,粒(li)子(zi)的(de)(de)(de)热(re)运(yun)动(dong)逐渐(jian)减弱,系统的(de)(de)(de)能(neng)(neng)量下降(jiang),粒(li)子(zi)的(de)(de)(de)行(xing)(xing)为逐渐(jian)变(bian)得“保守”,更(geng)倾向于(yu)停留在(zai)局(ju)部的(de)(de)(de)最(zui)优(you)解(jie)当(dang)中。这样,模拟(ni)(ni)退(tui)(tui)火(huo)(huo)(huo)算法通过(guo)控制(zhi)温(wen)(wen)度(du)函数不(bu)断下降(jiang),调(diao)整随(sui)机(ji)搜(sou)索(suo)的(de)(de)(de)概率(lv),避(bi)免了(le)困(kun)在(zai)局(ju)部最(zui)优(you)解(jie)的(de)(de)(de)同时,也提高了(le)搜(sou)索(suo)的(de)(de)(de)效率(lv)。

  • 第二章:机器学习

    1. 关于reCAPTCHA公司在全球互联网用户的帮助下,构建巨(ju)大(da)数据集的故(gu)事,可(ke)以(yi)观(guan)看Ted视频(pin):Massive scale online collaboration: http://www.ted.com/talks/luis_von_ahn_massive_scale_online_collaboration

    2. MSCOCO在构(gou)建数据(ju)集方面有很多不错(cuo)的(de)思路,可以阅读它的(de)论(lun)文: http://arxiv.org/pdf/1405.0312.pdf

    3. 除了监督学习与无监督学习,机器学习领域还有自监督、半监督学习。可以参考如下的阅读材料:
    半监督:http://bdtechtalks.com/2021/01/04/semi-supervised-machine-learning/
    自监督:http://www.fast.ai/2020/01/13/self_supervised/
    http://lilianweng.github.io/lil-log/2019/11/10/self-supervised-learning.html
    想一想,自监督与无监督有什么区别呢?

    4. 神(shen)(shen)经网络(luo)的(de)泛化性(xing)是一(yi)个令人着(zhe)迷的(de)科(ke)研领域。人们发(fa)现(xian),在训练阶段,神(shen)(shen)经网络(luo)可(ke)以(yi)非常(chang)容易地拟合任何噪声数(shu)(shu)据(ju),但是这(zhei)样做(zuo)会损失泛化性(xing)能。另一(yi)方面,如果训练数(shu)(shu)据(ju)是真(zhen)实(shi)世(shi)界(jie)的(de)数(shu)(shu)据(ju),神(shen)(shen)经网络(luo)往(wang)(wang)往(wang)(wang)会选择不这(zhei)么做(zuo),而是采(cai)取(qu)更好(hao)方式学习到(dao)数(shu)(shu)据(ju)的(de)特点,从(cong)而在测试数(shu)(shu)据(ju)中也有很好(hao)的(de)表现(xian)。可(ke)以(yi)阅读如下论文(wen)了(le)解一(yi)些基本的(de)实(shi)验: http://arxiv.org/abs/1611.03530

    5. 目(mu)前机(ji)器学习最(zui)热门的研究领域之一就是大规模的神经网络训练。可以参(can)考(kao)OpenAI公(gong)司(si)的主页(http://openai.com/),他们介绍了他们训练的很多大模型(xing)的表现(xian)效果。例如(ru),DALL·E模型(xing)可以同(tong)时对(dui)图(tu)片和(he)文字进行智(zhi)能的处理。

    6. 对于Imagenet数据集(ji),如果不用深度(du)学习,传(chuan)统方法(fa)会怎(zen)么做分类问题?它(ta)们的局限性在哪(na)里?

    7. 如(ru)(ru)果我们(men)有(you)多个不同的损失(shi)函(han)(han)数(shu),应(ying)该如(ru)(ru)何把(ba)他们(men)结(jie)合起来对函(han)(han)数(shu)进行优化?多个损失(shi)函(han)(han)数(shu)和一个损失(shi)函(han)(han)数(shu)相比,哪个实际效果会更好(hao)?

    8. 在(zai)实(shi)际训(xun)练的(de)(de)时候,我们对(dui)模(mo)型的(de)(de)表现进(jin)行观察(cha)之后,在(zai)什(shen)(shen)么情(qing)况(kuang)下认为(wei)(wei)模(mo)型是(shi)过拟合(he)了?什(shen)(shen)么情(qing)况(kuang)下认为(wei)(wei)模(mo)型是(shi)欠拟合(he)的(de)(de)?什(shen)(shen)么情(qing)况(kuang)下认为(wei)(wei)数据(ju)不(bu)足,增加数据(ju)可能能够改善(shan)模(mo)型的(de)(de)表现?

  • 第三章:线性回归

    1. 尝(chang)试(shi)自己用Python写代码,使用梯(ti)度下降(jiang)发和随机梯(ti)度下降(jiang)发优化(hua)一个简(jian)单(dan)的函数。梯(ti)度下降(jiang)法什(shen)么时候找不到全局(ju)最优解?

    2. 对于非凸函数,什么情(qing)况下(xia)随机梯度下(xia)降法(fa)一(yi)定能够找到全局最(zui)优解呢?尝(chang)试画一(yi)画,举几(ji)个例(li)子。

    3. Softmax巧妙地把向量(liang)变成了一(yi)个概率。这样可能会导(dao)致(zhi)什(shen)么问(wen)题呢?

    4. 如果(guo)我们把岭回(hui)(hui)归(gui)(gui)和套索回(hui)(hui)归(gui)(gui)使用(yong)的正则化(hua)函数(shu)加到(dao)一起(qi)使用(yong),会(hui)得到(dao)什(shen)么结果(guo)?

    5. 岭(ling)回归和(he)套索回归分(fen)别使用(yong)了‖w‖_2^2和(he)〖‖w‖〗_1作为正则化函数。我们(men)能(neng)不能(neng)使用(yong)别的函数?有(you)可能(neng)会有(you)什么效果?

    6. 在使(shi)(shi)用(yong)梯度下降法(fa)的(de)时候,我们(men)对函(han)数进行了(le)统一的(de)光滑(hua)性假(jia)设,所以(yi)对应(ying)的(de)也使(shi)(shi)用(yong)了(le)固定的(de)步(bu)长进行优(you)(you)(you)化(hua)。在实际(ji)优(you)(you)(you)化(hua)过程中,可是,函(han)数的(de)不(bu)(bu)同局部区域的(de)光滑(hua)性不(bu)(bu)同,我们(men)其实应(ying)该使(shi)(shi)用(yong)不(bu)(bu)同的(de)步(bu)长进行优(you)(you)(you)化(hua),这样优(you)(you)(you)化(hua)速度会更快一些(xie)。想一想,有什(shen)么办法(fa)可以(yi)让算法(fa)根据当前优(you)(you)(you)化(hua)的(de)情(qing)况自动地调整步(bu)长呢?(不(bu)(bu)一定要非常准(zhun)确(que),非常准(zhun)确(que)是不(bu)(bu)可能的(de))

    7. 关于优化领域,著(zhu)名(ming)学者Yurii Nesterov的著(zhu)作Introductory Lectures on Convex Optimization是非常(chang)好的入门读物,有兴趣可以参考(kao)。

    8. 套(tao)索(suo)回归与压缩感(gan)知(zhi)(http://en.wikipedia.org/wiki/Compressed_sensing)有着千丝万缕的关(guan)系(xi),可以阅(yue)读压缩感(gan)知(zhi)的相关(guan)材料(liao),理解(jie)两(liang)种方法的异同(tong)。

    9. 为什(shen)么说岭回(hui)归与(yu)套索回(hui)归对应的(de)函数都是(shi)凸(tu)函数?

    10. 正则化的(de)方法不一(yi)定总是能够给机器学习(xi)算法带来(lai)好处。想想为(wei)什么(me)?

  • 第四章:决策树、梯度提升和随机森林

    1.如果以最小化二分类错误率为目标,我们使用f_j=∑_(i∈I_j)▒I[w_j^*≠y_i ] ,来表示叶子j贡献的目标函数值,其中w_j^*为叶子j上数量最多的类别标签。则分类树的分割条件的评价指标为 gain(j,x_p,t)=1/N [f_j-f_j1-f_j2 ] 然而,在一些经典的决策树算法中,训练二分类任务却常常使用基尼系数f_j=p_j0 (1-p_j0 )+p_j1 (1-p_j1 )=2p_j0 (1-p_j0 )(其中p_j0和p_j1分别是叶子j上的正负样本比例,且p_j0=1-p_j1)或是交叉熵f_j=-p_j0 log⁡〖p_j0 〗-p_j1 log⁡〖p_j1 〗代替f_j=∑_(i∈I_j)▒I[w_j^*≠y_i ] 。注意到基尼系数和交叉熵仅仅与正负样本比例有关,因此使用它们做评价标准时需要考虑叶子上的样本量,故评价指标变为 gain(j,x_p,t)=1/N [|I_j | f_j-|I_j1 | f_j1-|I_j2 | f_j2 ]
    请思考使用基尼系数或交叉熵有何优势?

    2. 决策树(shu)有(you)许多(duo)变种,其中一种是用(yong)(yong)线(xian)性(xing)模(mo)型代(dai)替叶(ye)子(zi)上(shang)的常(chang)数(shu)预(yu)测值的回(hui)归(gui)(gui)树(shu),我(wo)们称为分段线(xian)性(xing)树(shu)。普(pu)通的回(hui)归(gui)(gui)树(shu)对所有(you)落在(zai)叶(ye)子(zi)j上(shang)的数(shu)据(ju)(ju)点都只提(ti)供(gong)一个(ge)相同(tong)的预(yu)测值w_j。分段线(xian)性(xing)树(shu)则在(zai)每个(ge)叶(ye)子(zi)j上(shang)为数(shu)据(ju)(ju)点x_j提(ti)供(gong)预(yu)测值k_j^T x_j+b_j。请思考在(zai)叶(ye)子(zi)上(shang)使用(yong)(yong)线(xian)性(xing)模(mo)型有(you)何优缺点?

    3.本章提供的示例数据中,特征均为数值型或是仅有两种取值的离散型。对于有m种取值情况的离散型特征,可以对每一种取值都生成一个单独的分支。另一种选择是,从所有取值情况中选出一个子集S,并以数据的该特征值是否在S中作为分割条件。这样做可以保持决策树是一个二叉树结构,但是要选出最优的集合S比较困难,因为一共需要考虑2^(m-1)-1可能的子集S。幸运的是,对于最小化均方误差的回归树,我们可以利用一些统计量对特征的所有取值进行排序,然后快速地找出最优的S。对于特征p,我们按照以下统计量 s_k=(∑_(i∈I_j)▒〖y_i I[x_(i,p)=k] 〗)/(∑_(i∈I_j)▒I[x_(i,p)=k] )
    将它的所有取值排个序。换言之,对于一个特征p的取值k,s_k是所有特征p取值为k的数据的标签的均值。请证明,一定存在一个k^*,集合S^*={k|s_k≤s_(k^* ) }是所有2^(m-1)-1个集合中最优的选择。
    提示:假设存在k_1,k_2,k_3,且s_(k_1 )≤s_(k_2 )≤s_(k_3 ),如果k_1,k_3∈S,k_2∉S,或者k_1,k_3∉S,k_2∈S,则一定可以通过调整k_1,k_2,k_3中某一个与S的隶属关系来获得相同或更大的分割增益。

    4. 我(wo)们提到过GBDT也(ye)可以(yi)使(shi)(shi)用(yong)随(sui)机(ji)森林中的样(yang)本采(cai)(cai)样(yang)方(fang)法,即每(mei)个决策树(shu)只随(sui)机(ji)采(cai)(cai)样(yang)一(yi)部(bu)分(fen)的数据进行训练。这可以(yi)加快(kuai)每(mei)个树(shu)的训练速度(du)。但是(shi)如果采(cai)(cai)样(yang)率(lv)太低(di),会导致训练数据不能被很(hen)好(hao)地(di)拟合,每(mei)个迭代训练误差(cha)的下降速度(du)缓慢。随(sui)机(ji)森林中每(mei)棵树(shu)的样(yang)本采(cai)(cai)样(yang)中,每(mei)个数据点(dian)都被赋予了相(xiang)同(tong)的被采(cai)(cai)样(yang)到的概率(lv)。你认为GBDT是(shi)否有更合适(shi)的采(cai)(cai)样(yang)方(fang)法,使(shi)(shi)得(de)即使(shi)(shi)采(cai)(cai)样(yang)率(lv)较低(di)的情况下,也(ye)能让每(mei)棵树(shu)较好(hao)地(di)降低(di)训练误差(cha)?

    5.对于二分类问题,GBDT常用的损失函数是交叉熵
    l(G(x),y)=-y ln⁡p(x)-(1-y) 〖ln(1-〗⁡〖p(x))〗 其中p(x)=1/(1+e^(-G(x) ) )表示样本(x,y)预测为正样本的概率。请推导出使用以上损失函数时的在GBDT第n+1轮迭代中的每个样本的负梯度表达式。

    历史回顾
    决策树是一个古老的模型,其历史可追溯到1964年Morgan和Sonquist的论文[1]。在多年的发展过程中,许多决策树的训练算法被提出,比较著名的包括CART[2]、ID3[3]、C4.5[4]等等。此外还产生了许多决策树模型的变种。决策树一开始是在统计学领域被提出,但是并没有引起广泛的注意,当时人们认为它容易过拟合。一直到后来,随着CART等具有剪枝的算法被提出,决策树才逐渐在机器学习领域被广泛使用。本章介绍的算法是CART在回归问题下的情形。
    随机森林和梯度提升树都可以追溯到一个更早的集成学习算法,AdaBoost。这三者的发展历史中有一些曲折的故事。AdaBoost由Yoav Freund提出[20],人们发现它效果很好,而且很不容易过拟合。于是计算机科学家和统计学家们试图探究AdaBoost泛化能力背后的理论原理,其中最主流的一套理论被称为间隔(margin)理论[22]。随机森林的作者Breiman一开始也从间隔理论的角度来完善对AdaBoost的解释,但是发现理论和实验结果没有办法匹配[21]。于是Breiman放弃了对AdaBoost间隔理论的研究,转而研究自己提出的新算法,就是随机森林[23]。人们也对间隔理论失去了信心。于此同时,Friedman等统计学家试图从统计学的角度,把AdaBoost解释成一个加性拟合的过程[24],即每次训练一个子模型,使得整个集成模型不断地往训练目标靠拢。这一观点当时也颇具争议,但却成为了梯度提升方法[7]的雏形。
    有趣的是,进入21世纪之后,在中外一些计算机学者的共同努力下[25,26,27],AdaBoost的间隔理论在沉寂了若干年之后被重新重视并完善,解释了之前Breiman遇到的障碍。目前,通过间隔理论,对AdaBoost的泛化能力我们已经有了比较充分的了解。但是随着XGBoost[8]、LightGBM[9]和CatBoost[10]等GBDT开源工具的实现,GBDT今天在应用领域的影响力已经远远超过了AdaBoost。虽然GBDT的理论解释不如AdaBoost完善,但是其效果更胜一筹。
    从这些故事可以看出,科学研究的过程并不是一帆风顺的,常常会遇到挫折。虽然如此,一些当时不被认可或是遇到瓶颈的研究,也许会在多年之后重新获得它们的价值。

    进阶知识点及相关阅读材料
    限于篇幅及前置知识的限制,我们不能在本章中详细介绍决策树及其集成算法的所有知识点。这里列出一些关键的或是具有启发性的知识点,并提供相关阅读材料,鼓励有兴趣的读者自行阅读学习。

    决策树
    本章正文内容中不涉及到具有超过2个类别值的离散型特征参与决策树的训练。延伸习题3中列出了一种处理离散型特征的方式。还有一种比较常用的方式,是在训练之前通过一些编码方法将离散型特征转化成数值型特征。例如,对于一个有m种取值的离散型特征,可以用m个取值为0/1的数值特征来表示,如果一个数据的该离散型特征取值情况为第k种,则对应的数值特征的第k个取值为1,其余取值全部为0。这种编码方式我们称为独热编码(one-hot encoding)。此外,还有一些基于数据标签的编码方式,CatBoost非常好地支持了这种编码[10]。
    此外,训练数据不总是完整的,有时可能存在某些数据点的某些特征值缺失的情况。对于类别特征,我们可以把缺失值当成一种额外的类别来处理。对于数值特征,常用的方式是在训练之前进行填充,例如用所有数据该特征的平均值代替缺失值。这些都属于独立于算法之外的预处理。决策树利用它的结构特点,可以比较方便地处理缺失值。例如,在CART算法[2]中,如果一个分割条件使用了有缺失值的特征,就需要为它准备一个替代分割条件,该条件使用的特征没有或很少有缺失值。
    考虑到目前决策树主要被应用在集成模型中,因此本章在介绍决策树时会考虑到集成模型中训练决策树的常用方式。其中按层训练和按叶训练的区别通常只有在集成模型中才会需要被考虑。这是因为集成模型训练许多决策树,因此需要限制每个决策树的规模大小,防止训练时间过长,这也起到了缓解过拟合的作用。经典的单棵决策树训练算法,通常不直接限制决策树的规模,因此按层训练和按叶训练并不会有区别。它们会先训练一个很大的决策树,然后通过后剪枝的方式来缓解过拟合。关于经典的决策树算法,包括CART、ID3、C4.5等等的详细介绍,参见[2][3][4]。
    决策树应用在机器学习中已经有几十年的历史,Wei-Yin Loh[5]对决策树几十年的发展历史做了详细的总结,并列出了在这个过程中决策树的各种变种。

    随机森林
    本章对随机森林的介绍相对简短,仅提供了算法和直观的理解。随机森林的核心思想涉及到偏差-方差分解。一个模型的产生涉及到一些随机性,例如训练集的采集其实是从数据的实际分布中进行随机采样,同时算法本身也可能具有一定的随机性。偏差指的是一个模型在这些随机性之下,其输出的期望值与数据标签真实值的差距。方差指的是模型在这些随机性之下输出的变化程度。偏差-方差分解的思想是一个模型的泛化误差可分解为偏差与方差之和。[12]的第2章中有关于偏差-方差分解的定义及推导。可以证明,随机森林通过综合许多差异较大的决策树,降低了模型整体的方差,进而得到了良好的泛化性能。[11]的第15章中给出了具体的证明过程。

    梯度提升与GBDT
    这一部分本章仅介绍了使用一阶梯度信息的算法。目前主流的GBDT工具都使用了二阶梯度信息,由于这涉及到函数的泰勒展开,本章不做介绍。有相关基础知识的读者可阅读XGBoost的论文[8],其中有对使用二阶梯度的GBDT的详细介绍。
    由于GBDT需要训练较多的决策树,目前主流GBDT工具都会采用一些方法对决策树的训练过程进行加速。在决策树的训练中,主要的时间开销在分割条件的评估上。假设我们有N个数据点,对于数值类型的特征,或是使用某些编码方式的类别特征,很容易就会有接近N种不同的取值情况。如果我们一一考虑所有可能的分割点,假设决策树按层训练,那么每训练一层就要完整地扫描一遍数据。一种常用的加速方法是通过对特征构建直方图。例如,一个数值型特征的范围是[0,1],那么我们可以按照某种方式把这[0,1]的区间分成若个子区间,然后只考虑子区间的边界值作为候选的分割点。每个子区间需要累积一些统计值来帮助对分割条件进行评估。一般来说,子区间的数目不需要太多,几十个就能取得不错的效果。关于直方图加速的细节可以参考论文[18]和LightGBM的文档[19]。
    在延伸习题中我们提出了一个关于决策树样本采样的问题。除了普通的用于随机森林的等概率采样,近几年有一些针对GBDT的采样方式被提出。这些方法利用数据的梯度信息来估算样本的重要性,从而决定了每个样本的采样概率,其中包括GOSS[9]、MVS[17]等等。这些采样方法可以允许GBDT在比较低的数据采样率之下(例如0.2),仍然保持较好的准确率,从而可以较大程度加速GBDT的训练。有兴趣的读者可阅读相关论文[9][17]。
    GBDT在表格类型的数据上的性能领先于神经网络。但是它也有一些缺陷,例如它不能够很自然地处理离散型特征,需要通过一些统计信息,或是手动的编码。而神经网络可以通过嵌入的方式学习出离散型特征每一个类别值的向量表示。GBDT不能够很好地处理图像、文本等具有空间或者序列依赖性的数据,而深度神经网络在这方面要成熟得多。此外,当有新的训练数据出现时,GBDT还不能够很方便地进行在线更新,因为决策树的结构一旦训练好就被固定下来。而神经网络的参数可以通过梯度回传对新数据进行微调。基于这些缺陷,近些年出现了许多将决策树、GBDT与神经网络结合[13][14],或是试图使用决策树构建深度模型的新算法[15][16]。目前看来这些算法都还没有被广泛的应用,但是它们指出了一些有意思的探索方向。

    参考文献:
    [1] Morgan J N, Sonquist J A. Problems in the analysis of survey data, and a proposal[J]. Journal of the American statistical association, 1963, 58(302): 415-434.
    [2] Breiman L. Classification and regression trees[M]. Routledge, 2017.
    [3] J.Ross Quinlan. Induction of decision trees. Machine Learning, 1(1):81–106, 1986.
    [4] J Ross Quinlan. C4. 5: programs for machine learning. Elsevier, 2014.
    [5] Loh W Y. Fifty years of classification and regression trees[J]. International Statistical Review, 2014, 82(3): 329-348.
    [6] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.
    [7] Friedman J H. Greedy function approximation: a gradient boosting machine[J]. Annals of statistics, 2001: 1189-1232.
    [8] Chen T, Guestrin C. Xgboost: A scalable tree boosting system[C]//Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. ACM, 2016: 785-794.
    [9] Ke G, Meng Q, Finley T, et al. Lightgbm: A highly efficient gradient boosting decision tree[C]//Advances in Neural Information Processing Systems. 2017: 3146-3154.
    [10] Prokhorenkova L, Gusev G, Vorobev A, et al. CatBoost: unbiased boosting with categorical features[C]//Advances in Neural Information Processing Systems. 2018: 6638-6648.
    [11] Friedman J, Hastie T, Tibshirani R. The elements of statistical learning[M]. New York: Springer series in statistics, 2001.
    [12] 周志华. 机器学习[M]. 清华大学出版社, 2016. [13] Ke G, Xu Z, Zhang J, et al. DeepGBM: A deep learning framework distilled by GBDT for online prediction tasks[C]//Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019: 384-394.
    [14] Tanno R, Arulkumaran K, Alexander D, et al. Adaptive neural trees[C]//International Conference on Machine Learning. PMLR, 2019: 6166-6175.
    [15] Zhou Z H, Feng J. Deep forest: towards an alternative to deep neural networks[C]//Proceedings of the 26th International Joint Conference on Artificial Intelligence. 2017: 3553-3559.
    [16] Feng J, Yu Y, Zhou Z H. Multi-layered gradient boosting decision trees[C]//Advances in neural information processing systems. 2018: 3551-3561.
    [17] Ibragimov B, Gusev G. Minimal Variance Sampling in Stochastic Gradient Boosting[C]//Advances in Neural Information Processing Systems. 2019: 15087-15097.
    [18] Tyree S, Weinberger K Q, Agrawal K, et al. Parallel boosted regression trees for web search ranking[C]//Proceedings of the 20th international conference on World wide web. 2011: 387-396.
    [19] http://github.com/microsoft/LightGBM/blob/master/docs/Features.rst
    [20] Freund Y, Schapire R E. A decision-theoretic generalization of on-line learning and an application to boosting[J]. Journal of computer and system sciences, 1997, 55(1): 119-139.
    [21] Breiman L. Prediction games and arcing algorithms[J]. Neural computation, 1999, 11(7): 1493-1517.
    [22] Schapire R E, Freund Y, Bartlett P, et al. Boosting the margin: A new explanation for the effectiveness of voting methods[J]. The annals of statistics, 1998, 26(5): 1651-1686.
    [23] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.
    [24] Friedman J, Hastie T, Tibshirani R. Additive logistic regression: a statistical view of boosting (with discussion and a rejoinder by the authors)[J]. The annals of statistics, 2000, 28(2): 337-407.
    [25] Wang L, Sugiyama M, Yang C, et al. On the margin explanation of boosting algorithms[C]//COLT. 2008: 479-490.
    [26] Gao W, Zhou Z H. On the doubt about margin explanation of boosting[J]. Artificial Intelligence, 2013, 203: 1-18.
    [27] Grønlund A, Kamma L, Larsen K G, et al. Margin-based generalization lower bounds for boosted classifiers[C]//Advances in Neural Information Processing Systems. 2019: 11963-11972.

  • 第五章:神经网络

    1. 残差(cha)网络(luo)(http://arxiv.org/abs/1512.03385)是一个非常优秀的网络(luo)结构,通过在不同的网络(luo)层之间(jian)加(jia)入(ru)跳跃连(lian)接,可(ke)以大(da)(da)大(da)(da)降低网络(luo)的优化(hua)难度,提(ti)高泛化(hua)效果。阅读相关的论(lun)文,考虑一下,如果我(wo)们需要对(dui)某(mou)个跳跃连(lian)接的强度系数(默认是1,即把(ba)输入(ru)复(fu)制一遍)求导数,应(ying)该怎么计算(suan)该导数呢?

    2. 反向传(chuan)(chuan)播可(ke)以通过很多(duo)很多(duo)层(ceng)的网络(luo)从输出传(chuan)(chuan)到(dao)输入,但这并(bing)不(bu)是(shi)最复杂的计算(suan)导数的例子(zi)。人们还研究过如(ru)何针对神经(jing)网络(luo)整(zheng)个优化(hua)过程求(qiu)导,换(huan)句话说,如(ru)果(guo)神经(jing)网络(luo)有(you)100层(ceng),优化(hua)了1000步,则导数需(xu)要(yao)传(chuan)(chuan)播1000000次!如(ru)何保证这么长的传(chuan)(chuan)播路(lu)径导数计算(suan)不(bu)出现(xian)问(wen)题呢?可(ke)以参考http://arxiv.org/abs/1502.03492

    3. Distill.pub这个网(wang)站有(you)很多关于机(ji)器学习,尤其是神(shen)经(jing)网(wang)络的(de)可视化内容,通过观看(kan)视频和(he)图(tu)片,会对(dui)神(shen)经(jing)网(wang)络的(de)工作机(ji)理有(you)更(geng)好的(de)认(ren)识。

    4. 神经网(wang)络(luo)分为很(hen)多种,卷积神经网(wang)络(luo)、图神经网(wang)络(luo),以及(ji)我们(men)介(jie)绍(shao)的全(quan)连接神经网(wang)络(luo)。查阅相关资料,思(si)考一(yi)下这些(xie)神经网(wang)络(luo)有(you)哪些(xie)不同(tong),各自(zi)有(you)什(shen)么特(te)点,适合(he)处理(li)什(shen)么问题呢?

    5. 我们提(ti)到了,多(duo)层(ceng)线性网络从表达能力(li)的(de)(de)(de)角度来(lai)看,和(he)线性函(han)(han)数(shu)是(shi)(shi)一样的(de)(de)(de)。线性函(han)(han)数(shu)一般是(shi)(shi)容易优(you)(you)化(hua)的(de)(de)(de),因为如果(guo)使(shi)用了平方损(sun)失(shi)函(han)(han)数(shu)或其他常见损(sun)失(shi)函(han)(han)数(shu),得(de)到的(de)(de)(de)优(you)(you)化(hua)函(han)(han)数(shu)往往是(shi)(shi)凸(tu)的(de)(de)(de)。那么多(duo)层(ceng)线性网络对应的(de)(de)(de)优(you)(you)化(hua)函(han)(han)数(shu)是(shi)(shi)不(bu)是(shi)(shi)也是(shi)(shi)凸(tu)的(de)(de)(de)呢?在优(you)(you)化(hua)的(de)(de)(de)过程中会不(bu)会出现(xian)局部最优(you)(you)点?

    6. 除了ReLU,Sigmoid,了解一下(xia)还有(you)什(shen)么(me)激活函(han)数,它们各有(you)什(shen)么(me)特点?

    7. 常用的(de)神(shen)经网(wang)(wang)络除了残差(cha)网(wang)(wang)络,还(hai)有密集网(wang)(wang)络(http://arxiv.org/abs/1608.06993)等等。对于具(ju)体的(de)问题(ti)设计最合适的(de)神(shen)经网(wang)(wang)络结构(gou)是一个非常热门的(de)研究课题(ti)。如何自动调整神(shen)经网(wang)(wang)络结构(gou)?可以阅读相(xiang)关文(wen)献(xian)了解最新进展 http://en.wikipedia.org/wiki/Neural_architecture_search

    8. 我们知道神(shen)(shen)经网络(luo)可以(yi)有(you)数百万甚至更多的(de)神(shen)(shen)经元。假如你可以(yi)控制神(shen)(shen)经网络(luo)中某一个神(shen)(shen)经元,你有(you)没有(you)可能据此影(ying)响神(shen)(shen)经网络(luo)针对某些(xie)输(shu)入的(de)输(shu)出?

    9. 神经网(wang)络(luo)在训(xun)练的过程中,有两个常用的部件叫做(zuo)Batch Normalization和Dropout。阅读相关论文(wen)了解它们(men)的工作(zuo)机(ji)理。 http://arxiv.org/abs/1502.03167 http://jmlr.org/papers/v15/srivastava14a.html

    10. 神经网络神经元非常非常多,有没有可(ke)能(neng)对它进行压缩,使得(de)(de)只使用一小部分的神经元,就可(ke)以得(de)(de)到几乎一样的预测(ce)性能(neng)? http://arxiv.org/abs/1510.00149

  • 第六章:计算机视觉

    本书讲述了最(zui)基本的(de)(de)计算(suan)机视(shi)觉(jue)(jue)的(de)(de)概(gai)念,包(bao)括图(tu)像的(de)(de)形成、滤波、卷积、边缘检测(ce)和(he)卷积神经网络等内(nei)容(rong)。这(zhei)些概(gai)念是进一步学习更加前沿和(he)广泛(fan)计算(suan)机视(shi)觉(jue)(jue)问(wen)题(ti)的(de)(de)基础。为(wei)了满足感兴趣(qu)的(de)(de)读(du)者,我们在这(zhei)里(li)为(wei)大(da)家推(tui)荐一些拓(tuo)展阅读(du)资料。这(zhei)些内(nei)容(rong)覆盖的(de)(de)范围要远大(da)于本书所(suo)讲述的(de)(de)内(nei)容(rong)。

    1.多(duo)伦(lun)多(duo)大学计算机(ji)视觉(jue)课(ke)(ke)程CSC 420 Introduction to Image Understanding CSC420是由Sanja Fidler教授所(suo)开设的(de)图(tu)像理解入门课(ke)(ke)程。该课(ke)(ke)程介绍了更(geng)加完整(zheng)的(de)当代(dai)计算机(ji)视觉(jue)基础。这(zhei)门课(ke)(ke)程注重(zhong)基础知识,内(nei)容相比本书更(geng)加全面,但不(bu)涉(she)及过(guo)多(duo)高级内(nei)容。 这(zhei)门课(ke)(ke)程2019年的(de)版本可(ke)以通过(guo)这(zhei)个(ge)网址访问: http://www.cs.toronto.edu/~fidler/teaching/2019Fall/CSC420.html

    2.斯坦福大(da)学计算机视觉(jue)课(ke)(ke)程(cheng) CS131 Foundations and Applications CS131是由多(duo)位教授(shou)(shou)在斯坦福大(da)学开设(she)的(de)计算机视觉(jue)课(ke)(ke)程(cheng)。其2020年的(de)版本是由Juan Carlos Niebles和Jiajun Wu两位教授(shou)(shou)共同开设(she)。这门课(ke)(ke)程(cheng)相比于多(duo)伦多(duo)计算机视觉(jue)课(ke)(ke)程(cheng)更(geng)加注重视觉(jue)的(de)应用,例如物(wu)(wu)体分割(ge),动(dong)态物(wu)(wu)体识别,聚(ju)类等等。学习这门课(ke)(ke)程(cheng)可以对如何用计算机视觉(jue)工具(ju)解决(jue)具(ju)体问题(ti)有更(geng)多(duo)的(de)帮助。 这门课(ke)(ke)程(cheng)2020年的(de)版本可以通过这个网址访问: http://vision.stanford.edu/teaching/cs131_fall2021/index.html

    3.Rick Szeliski所写(xie)的(de)(de)《Computer Vision: Algorithms and Applications》 教材(cai)。这是一本(ben)涵盖(gai)大多数计(ji)算机视觉(jue)知(zhi)识的(de)(de)教材(cai),其内容从(cong)经典的(de)(de)计(ji)算机视觉(jue)知(zhi)识到(dao)近期比较新的(de)(de)深度学习知(zhi)识都(dou)有(you)覆盖(gai)。这本(ben)教材(cai)广泛地(di)被国外大学本(ben)科、研究生计(ji)算机视觉(jue)课程所采用。

    如果读者希望更加(jia)深入了解计算机视觉知识,我们推荐从(cong)简单的(de)课程(cheng)开始(shi)逐(zhu)渐(jian)学(xue)(xue)习,推荐从(cong)多伦多大学(xue)(xue)CSC420开始(shi)。Rick Szeliski的(de)教材可(ke)以作(zuo)为一个字典式的(de)参考书,不(bu)必沿着其章(zhang)节(jie)逐(zhu)一学(xue)(xue)习。

    计算机视觉 拓展习题

    1.根据(ju)常识(shi),我们知(zhi)道一条笔直的公路的左右边缘看起来会在远处汇聚到一个点。请根据(ju)小孔相(xiang)机坐标变换,证明(ming)三(san)维(wei)世界中的一组平行线,具(ju)有同(tong)一个消失点(Vanishing Point)

    图1 消失点(Vanishing Point)示意图

    2. 假(jia)设一(yi)个(ge)(ge)单通道灰(hui)度图(tu)像I的(de)大(da)(da)小(xiao)(xiao)(xiao)是HxW,我们用一(yi)个(ge)(ge)大(da)(da)小(xiao)(xiao)(xiao)为hxw卷积滤(lv)波(bo)器f对(dui)其进行卷积操作,得(de)到了输出图(tu)像O.假(jia)设我们已知最后损(sun)失(shi)函数(shu)(shu)相(xiang)(xiang)对(dui)于(yu)输出图(tu)像O的(de)偏(pian)(pian)导(dao)数(shu)(shu)∂l/∂O。它是一(yi)个(ge)(ge)和输出图(tu)像大(da)(da)小(xiao)(xiao)(xiao)相(xiang)(xiang)同(tong)的(de)矩阵。请(qing)尝试推导(dao)损(sun)失(shi)函数(shu)(shu)相(xiang)(xiang)对(dui)于(yu)输入(ru)的(de)偏(pian)(pian)导(dao)数(shu)(shu)∂l/∂I,和损(sun)失(shi)函数(shu)(shu)相(xiang)(xiang)对(dui)于(yu)滤(lv)波(bo)器的(de)偏(pian)(pian)导(dao)数(shu)(shu)∂l/∂f。

    3. 高(gao)斯微分滤波器(qi)的标准差(cha)。我们在本书正文的图(tu)6.20中展示(shi)了高(gao)斯微分滤波器(qi)的效果(guo)。不过这仅仅是一(yi)组特定的标准差(cha)σ_1=1,σ_2=2。请尝试一(yi)些不同的σ_1 σ_2,并总结一(yi)下你发现(xian)了什么?

  • 第七章:自然语言处理

    参考书与网课资料
    本教材着重以计算的角度介绍了自然语言处理的入门知识。自然语言处理是人工智能领域的重要组成,也是相关专业本科教育的必修方向之一。学有余力并对自然语言处理领域有着浓厚兴趣的同学,可以提前参考相关大学教材和课程。这里,笔者作简单推荐。

    教材:
    这里推荐美国斯坦福大学教授Dan Jurafsky(中文名 任韶堂)和科罗拉多大学教授James H. Martin所著的NLP领域经典教科书《Speech and Language Processing》。 Dan Jurafsky教授也在其个人网站公开了部分章节的电子版:http://web.stanford.edu/~jurafsky/slp3/ 该教材也有中译版,《自然语言处理综论(第二版)》,由电子工业出版社出版。

    课程:
    很多高校也公开了各自自然语言处理课程的教案,作业(包括代码)和讲课视频,这里推荐三个公开课程:

    1. 斯坦(tan)福(fu)大(da)学(xue)(xue)CS124:该(gai)课程(cheng)是(shi)面(mian)向(xiang)斯坦(tan)福(fu)大(da)学(xue)(xue)本科生(sheng)的(de)自然语(yu)言处理基础课程(cheng),课程(cheng)网址为 http://web.stanford.edu/class/cs124/ 。 由(you)于斯坦(tan)福(fu)大(da)学(xue)(xue)执行quarter学(xue)(xue)制(一学(xue)(xue)年3个(ge)quarter)因此课程(cheng)较短。

    2. 加(jia)州大学伯克(ke)利分校 Info256:该课程(cheng)是面向伯克(ke)利本科生的自(zi)然(ran)语言课程(cheng),课程(cheng)相对更加(jia)完(wan)整。http://people.ischool.berkeley.edu/~dbamman/info256.html

    3. 斯坦(tan)(tan)福(fu)大学 CS224n:该(gai)课程是面向斯坦(tan)(tan)福(fu)大学高年级本(ben)(ben)科(ke)生和研究生的(de)(de)自(zi)(zi)然(ran)语言(yan)进阶课程,着(zhe)重介绍深(shen)度(du)学习技(ji)(ji)术(shu)在自(zi)(zi)然(ran)语言(yan)处(chu)理(li)中的(de)(de)应用,也更(geng)强调自(zi)(zi)然(ran)语言(yan)技(ji)(ji)术(shu)的(de)(de)前沿技(ji)(ji)术(shu)的(de)(de)讲解。对于编程基础(chu)更(geng)好,对自(zi)(zi)然(ran)语言(yan)处(chu)理(li)基本(ben)(ben)概念掌(zhang)握较为牢固(gu),且对深(shen)度(du)学习技(ji)(ji)术(shu)有(you)着(zhe)浓厚(hou)兴趣的(de)(de)同学可以参考。http://web.stanford.edu/class/cs224n/

    拓展阅读
    本教材着重从计算和统计建模的角度入手,阐述了自然语言处理领域的一般方法。但是,笔者这里想强调,计算和统计规律并不是自然语言的全部。语言有自己的内在逻辑和发展规律,也有自己内在的美感和历史感。统计计算确实是当代NLP领域的重要工具,虽然正是由于大数据和深度学习的兴起, NLP领域才有了巨大突破,这些技术也确实解决了许多的现实生活中的难题。但是,人是怎么理解语言的呢?数据统计方法是否是解决一切语言理解问题的万能钥匙呢?不同的学者有不同的看法,学界尚未有定论。这里我也想给有兴趣的同学介绍分析语言的不同角度。 语言有自己的独立学科,叫语言学(Linguistics),强调分析语言的内在逻辑和规律。在统计机器学习技术推广之前,自然语言处理领域的研究多是由语言学家(Linguist)参与。例如现代自然语言处理的奠基人之一,麻省理工大学退休教授,Noam Chomsky的开山之作《句法结构》(Syntactic Structures)也是语言学的著作。语言学虽然相对门槛较高,但是作为一个学科本身,也非常适合高中生参与,感受语言的魅力。比如国际语言学奥林匹克竞赛(International Linguistic Olympiad,IOL)就是与数学国际奥林匹克(IMO),物理国际奥林匹克竞赛(IPhO),信息学国际奥赛(IOI)等学科奥赛并列的12项国际中学生奥赛之一。中国从2012开始派队参赛,也取得了优异的成绩。这里,笔者抛砖引玉,介绍一些语言学相关的入门书籍,推荐有兴趣的同学深入阅读。

    1. 《食物语言学》任韶堂 Dan Jurafsky, 上海文艺出版社
    这本书是斯坦福大学Dan Jurafsky教授的另一专著。与传统教材的严谨表述不同,这本书用比较诙谐轻松的文字,讲述了一些有趣的语言现象,也从词源和历史的角度阐述了语言的变化,比如这本书中,Dan Jurafsky教授发现,在美国,菜的价格和菜名中所用的单词有着很强的关系:正面含糊词(delicious, tasty, terrific)每出现一次,平均价格就下降9美分;诱人形容词(rich, chunky, zesty)则意味着下降2美分。在比如,一些日常生活的食材,从名称就可以看出其奇异身世,如西方普遍使用以ketchup称番茄酱,这个怪异的英文单词,其实来源于闽南语的“鱼露”。“chup” 是闽南语中“酱”的音,而“ket”是“腌鱼”的意思。材料虽完全不同,语言却留下了历史的痕迹。这本书适合有兴趣的同学拓展阅读。

    2. 《语言学的邀请》塞缪尔·早川 Samuel Hayakawa / 艾伦·早川 Alan Hayakawa,北京大学出版社
    概书是非常优秀的语言学入门书籍,从语言本身,到语言背后的情感,社会和人与人的关系全面的介绍了语言的各个方面。全书从最难能可贵的是,书作者在很多举例上努力采用更靠近中国语言环境下的例子,使整个书的更加容易被中国的读者接受。这本书作为《大学的邀请》系列丛书中的一本,非常适合有兴趣的高中生阅读。

    3. 《教我如何不想她——语音的故事》朱晓农 / 焦磊,商务印书馆
    “叫我如何不想她”是中国著名语言学家刘半农先生的诗篇,后由另一个著名语言学家赵元任先生谱写成曲广为传唱。这本书作为一个科普书籍,介绍了另一个有趣的领域,语音学,的入门知识——汉语的发音是如何演变的?音标和元音是怎么发展而来的?文字和发音有什么内在联系?整本书以科普为主,以诙谐的语调简述了很多语音学的常识和小故事。作为科普课外读物推荐有兴趣的高中生阅读。

  • 第八章:马尔可夫决策过程与强化学习

    本(ben)章中介绍了马(ma)尔可(ke)夫决策过程以及强(qiang)化学(xue)习(xi)的(de)(de)一(yi)些(xie)核心基础(chu),包(bao)括严格的(de)(de)定义和具体(ti)的(de)(de)算法。人们在核心框架的(de)(de)基础(chu)上,不断的(de)(de)探索这些(xie)方向的(de)(de)前(qian)沿,并将理论(lun)与(yu)算法设计进(jin)一(yi)步(bu)往前(qian)推进(jin)。下面,我们向读(du)者们推荐一(yi)些(xie)扩(kuo)展的(de)(de)学(xue)习(xi)材料,对(dui)强(qiang)化学(xue)习(xi)感(gan)兴趣的(de)(de)读(du)者可(ke)以进(jin)一(yi)步(bu)的(de)(de)学(xue)习(xi)。

    1. Suton与(yu)Barto合著的(de)(de)Reinforcement Learning: An Introduction, MIT Pres, 2018。这本(ben)书(shu)提(ti)供了一(yi)个非常全面的(de)(de)介绍(shao),包括强化学习(xi)的(de)(de)历史、基本(ben)定义、以及不同场(chang)景下(xia)的(de)(de)关(guan)键算法并(bing)附有(you)证明。在书(shu)本(ben)的(de)(de)后几(ji)章中,它也提(ti)出了强化学习(xi)与(yu)心理学和脑科(ke)学的(de)(de)联系,并(bing)简(jian)要(yao)介绍(shao)了强化学习(xi)在对弈(yi)游戏中的(de)(de)进展。

    2. Bertsekas教授(http://www.mit.edu/~dimitrib/home.html)著有多本强(qiang)(qiang)化(hua)学(xue)习的(de)书(shu),包括(kuo)Reinforcement Learning and Optimal Control, Athena Scientific, 2019与Rollout, Policy Iteration, and Distributed Reinforcement Learning, Athena Scientific, 2020,从最优化(hua)控(kong)制的(de)角度更深(shen)入地介绍了强(qiang)(qiang)化(hua)学(xue)习的(de)核心理论及算法。他同(tong)时(shi)也(ye)共享了多份强(qiang)(qiang)化(hua)学(xue)习相关的(de)授课(ke)讲义与视(shi)频。

    3. 网(wang)上有不少关(guan)于(yu)强(qiang)(qiang)化学(xue)习的(de)优秀的(de)本科/研究生(sheng)课程资(zi)源,如Silva教授的(de)强(qiang)(qiang)化学(xue)习课程(http://www.davidsilver.uk/teaching/)与(yu)Levine教授的(de)深度强(qiang)(qiang)化学(xue)习课程。它(ta)们比较系统地介绍了强(qiang)(qiang)化学(xue)习的(de)核心知识(shi)及相应的(de)算法与(yu)实现(xian)。

    补充习题

    假设一个移动基站通过一个无线信道将用户的B个数据包传输给用户。每一个时刻基站可以尝试传输1个数据包。但是由于无线信道的状态的变化,每个时刻传输的成功率并不是一个定值。具体来说,每个时刻,信道独立地以相同的概率处于“好”和“坏”两个状态。当信道好的时候,如果基站采用传输功率1,那么传输的成功率为p1;当信道坏的时候,如果基站采用传输功率1,传输的成功率为p2

    图1: 基站通过无线信道向用户传输数据

    假(jia)(jia)设(she)B个(ge)数据包需要在T>B时刻(ke)内(nei)传输完成,并(bing)假(jia)(jia)设(she)系(xi)统的(de)目标是希望最小化总的(de)折扣能耗。(i)请将问题(ti)用马尔可夫决策过(guo)程进行(xing)描(miao)述,包括状(zhuang)态与奖励值的(de)定义、状(zhuang)态转移(yi)概率与目标的(de)设(she)定。(ii)通(tong)过(guo)Python变成用值迭代求解。

    图2展(zhan)示了CartPole-v1环境(jing),杆(gan)(gan)子的一头连接(jie)着手推(tui)车,手推(tui)车沿(yan)着无(wu)摩擦的轨(gui)道移动。杆(gan)(gan)子的初始状态(tai)为直立状态(tai),可行动作为对(dui)推(tui)车施加+1或-1的力来控制系统,目的是防止杆(gan)(gan)子跌(die)落。当杆(gan)(gan)子与垂直线(xian)的夹角(jiao)超(chao)过15度或手推(tui)车距中心位(wei)置超(chao)过2.4个单位(wei)以(yi)上(shang)的距离时,环境(jing)结束。

    用(yong)DQN算法求解最优策(ce)略(lve),画(hua)出训练的(de)return以及网络(luo)loss。其(qi)中,DQN的(de)网络(luo)结(jie)构为(wei)3层(ceng)全连接(jie)网络(luo)(非线性激(ji)活函数为(wei)ReLU函数),隐层(ceng)维度大小为(wei)128,采用(yong)ε-greedy策(ce)略(lve)进(jin)行探索。Replay buffer的(de)大小为(wei)1000,折扣因(yin)子γ为(wei)0.9。

    图2: CartPole-v1环境[ref]

  • xml地图 | sitemap地图
    吴亦凡范丞丞合影
    分享到:QQ空间新浪微博腾讯微博人人网微信
    江西一村全年无蚊重庆发现吃虫植物 杨幂 逆战 普京就河南严重内涝致慰问电 起风了 觉醒年代 用尽我的一切奔向你 奔跑吧 网恋被骗八百多万 崩坏3 做回自己 江西一村全年无蚊重庆发现吃虫植物 魔道祖师下坠Falling 觉醒年代 三国演义 天龙八部 海底小纵队 大赢家 梦幻西游 龙之谷玛莎拉蒂 37年积蓄家中发霉 起风了 生死狙击 一念永恒 斗破苍穹 千古玦尘 热爱就一起 一念永恒 修罗武神烟火里的尘埃 英雄联盟 河南此轮强降雨已致73人遇难 英超直播 old town road 樱花 只是太爱你 张哲瀚 张哲瀚 韩国泡菜中文译名 寒门崛起7 rings 冰雪奇缘 捷豹 樱花 我和我的家乡 廖秋云获举重银牌 转播错误中国地图 What If Love 宝马 萌探探探案 德云斗笑社 谢楠吴京 三国杀 蔡徐坤 诸葛亮 鲁迅 武动乾坤 赛尔号 | 下一页
    Baidu
    sogou
    百度 搜狗 360