● 本書為本叢書中的第四冊。
● 人工智能作為引領(lǐng)未來的戰(zhàn)略性技術(shù),世界各國都高度重視。近年來,人工智能已經(jīng)成為國家、研究機構(gòu)、企業(yè)、高校關(guān)注的焦點。隨著大數(shù)據(jù)時代的到來,以及計算能力的提升,人工智能在技術(shù)領(lǐng)域的突破日新月異。本書精心挑選了五個實踐項目,將帶領(lǐng)讀者們一邊理解原理,一邊編寫代碼,以理論與實踐相結(jié)合的方式認(rèn)識人工智能。另外,為了能夠滿足不同層次讀者的需要,設(shè)計了多條學(xué)習(xí)路徑,使不同層次的讀者都能體驗人工智能的神奇。零基礎(chǔ)的讀者,僅通過閱讀本書就能快速地了解用到的算法;對編程感興趣的讀者,可了解書中介紹的每一種算法,并根據(jù)給出的Python代碼,配合注釋與講解,嘗試一步一步編寫AI算法;沒有編程基礎(chǔ)的讀者,可以通過可視化拖拽式的方法體驗AI系統(tǒng);有編程經(jīng)驗的讀者,可以通過DIY方式搭建自己的AI系統(tǒng)。
Talkischeap,showmethecode,大名鼎鼎的Linux系統(tǒng)創(chuàng)始人林納斯·本納第克特·托瓦茲(LinusBenedictTorvalds)在2000年給編寫Linux系統(tǒng)核心的成員群發(fā)了一封郵件,里面提到了這句話,翻譯成中文就是多說無益,給我看你的代碼!這句名言在計算機科學(xué)屆廣為流傳并奉為金句。計算機作為一門實踐性很強的學(xué)科,理解理論后動手寫出可運行的、能看到成果的代碼才是硬道理。人工智能是計算機科學(xué)中應(yīng)用場景多的子學(xué)科之一,這更需要學(xué)習(xí)者在理解原理后,動手實踐、應(yīng)用算法解決實際問題。正所謂紙上得來終覺淺,絕知此事要躬行。
所以在2018年的夏天,俞勇教授組建了我們這支編寫團隊,開始嘗試編寫針對青少年的項目實踐教程。初的內(nèi)容包括圖像上色、英語語法單選題與角斗士桌游。在教程中,我們努力用淺顯的語言將復(fù)雜的人工智能算法講明白,并且提供了相應(yīng)的代碼和可在線交互的展示。一些中學(xué)生看了我們編寫的這些教程之后給出了一致的好評,這也讓我們產(chǎn)生了將其拓展為一套給青少年看的關(guān)于人工智能的叢書的想法。2019年初,我們給這套叢書加入了更多關(guān)于實踐的內(nèi)容,引導(dǎo)讀者一邊理解原理,一邊編寫代碼,理論與實踐相結(jié)合地認(rèn)識人工智能。在本書中,我們精心安排了5個兼顧項目的有趣程度、使用技術(shù)的流行程度,以及盡可能涵蓋更多知識的項目。編寫本書的過程中,我們也努力精簡知識,僅介紹與項目任務(wù)相關(guān)的必要知識,希望能夠讓零基礎(chǔ)的讀者,僅通過閱讀本書也能快速地了解用到的算法。對每一種算法,我們都會給出python代碼實現(xiàn),配合注釋與講解,引領(lǐng)讀者一步一步編寫人工智能算法。
5個項目各由我們編寫團隊中的一到兩位編者負(fù)責(zé),每周俞勇教授與張偉楠教授都會與編者們開例會、審閱進度,并討論可以改進的地方。在編寫教材的同時,我們還與實驗平臺的開發(fā)人員合作,提供了線上可交互的展示,方便讀者理解項目與算法。編寫本套叢書前后歷時近一年,俞勇教授、張偉楠教授與編者們投入了大量的心血,希望能幫助青少年理解并自己實現(xiàn)人工智能算法,培養(yǎng)對人工智能的興趣,為將來更深入地探索人工智能打下基礎(chǔ)。
從本書中可以讀到
我們將通過5個有趣的項目,帶領(lǐng)大家在理解原理的同時,動手編寫代碼,實現(xiàn)自己的人工智能應(yīng)用。本書的每一部分對應(yīng)一個項目,它們分別是:
圖像識別:圖像識別是近幾年人工智能浪潮中,發(fā)展快、技術(shù)成熟、落地早的算法,如車牌識別、人臉識別的諸多基于圖像識別的技術(shù)正在改變著我們的生活。在這個項目中,你將了解機器如何處理圖像數(shù)據(jù),學(xué)習(xí)并編寫圖像識別的兩個經(jīng)典算法:K近鄰與卷積神經(jīng)網(wǎng)絡(luò),并解決手寫數(shù)字識別以及物體識別問題。
圖像風(fēng)格遷移:圖像風(fēng)格遷移是一個非常有趣的項目。利用該技術(shù),人們可以將任意一張圖片轉(zhuǎn)換成其他的風(fēng)格。一些熱門的圖像處理軟件中就提供了類似功能,比如將照片轉(zhuǎn)化成馬賽克風(fēng)格甚至是梵高的畫作風(fēng)格。在本項目中,你將嘗試實現(xiàn)3種圖像風(fēng)格遷移算法。
文本生成:與文本相關(guān)的智能技術(shù)隨著人工智能浪潮也得到了快速發(fā)展。在這個項目中,你將了解機器處理文本數(shù)據(jù)的方法,并學(xué)習(xí)和編寫3個用于文本生成的算法。使用該算法,可以讓機器生成古詩甚至是文章。
角斗士:角斗士是一個熱門的桌面游戲。在這個項目中,你將學(xué)習(xí)并使用各類搜索算法,制作角斗士游戲的AI。與上面3個項目不同的是,本項目中你將次接觸到教機器作出決策,讓機器作出正確的決策是邁向真正智能的重要一步。
紅綠燈調(diào)度:大城市中如何緩解交通擁堵是一個廣受關(guān)注的問題。在這個項目中,就是使用強化學(xué)習(xí)算法來優(yōu)化紅綠燈的控制,以達到緩解擁堵的目的。強化學(xué)習(xí)是近幾年非常熱門的領(lǐng)域,大名鼎鼎的AlphaGo就是使用強化學(xué)習(xí)算法戰(zhàn)勝了所有人類棋手。你將了解強化學(xué)習(xí)算法的基本概念,并嘗試編寫強化學(xué)習(xí)算法來控制路口的紅綠燈。
如何使用這本書
本書沒有嚴(yán)格的閱讀順序要求,你可以選擇自己感興趣的項目直接閱讀,若提到了其他項目中的概念均會給出提示。
除了算法原理,本書還包含了大量示例代碼。如果想要理解這些代碼,你需要有一些python基礎(chǔ)編程知識,包括變量、循環(huán)、函數(shù)、類、庫的使用等。如果想要入門python,你可以訪問伯禹學(xué)堂中的python基礎(chǔ)課程(www.boyu.ai/pythonbasics)。本書的所有代碼都基于Anaconda35.2.0版本用python3實現(xiàn),Anaconda是一個免費的python發(fā)行版,包含了大量常用的庫,非常易于安裝,強烈建議你在學(xué)習(xí)過程中安裝使用。項目中的代碼示例可以在github.com/boyuai/textbook下載。另外,本書配有實驗平臺(www.boyu.ai/playground),為書中涉及的項目提供一個交互式的學(xué)習(xí)體驗。對每個任務(wù),我們提供了體驗、調(diào)試、理解源碼、源碼填空、改進源碼5個階段。不同基礎(chǔ)背景的讀者可以選擇不同的階段入門:零基礎(chǔ)的讀者可以通過體驗算法了解人工智能的魅力,基礎(chǔ)較好的讀者可以自己編寫代碼改進算法。我們希望你通過閱讀本書,至少可以達到理解項目內(nèi)容、掌握算法原理和能夠進行基本的算法實現(xiàn)的程度。若你對學(xué)習(xí)人工智能的積極性非常強,希望你能在實驗平臺上多多地嘗試改進代碼,并創(chuàng)造屬于自己的人工智能算法。
本書的內(nèi)容僅包含5個項目的知識以及代碼。如果希望系統(tǒng)地學(xué)習(xí)人工智能算法,建議閱讀本套叢書的第三本《人工智能技術(shù)入門:讓你也看懂的AI內(nèi)幕》;如果對人工智能的發(fā)展歷史與未來展望感興趣,建議閱讀本套叢書的本《從人腦到人工智能:帶你探索AI的過去和未來》;如果對人工智能在生活中的具體應(yīng)用感興趣,建議閱讀本套叢書的第二本《人工智能應(yīng)用:酷炫的AI讓你腦洞大開》。
致謝
本書的主要參與編寫人員有16位,俞勇教授策劃并確定本書架構(gòu)、內(nèi)容組織及審核,張偉楠博士對全書內(nèi)容進行專業(yè)指導(dǎo)及審核,張惠楚與秋聞達編寫部分,蘇起冬與徐逸凡編寫第二部分,侯博涵與蔡亞星編寫第三部分,趙寒燁與任云瑋編寫第四部分,錢蘇澄編寫第五部分。書中的卡通插畫的設(shè)計與繪制由陳子薇完成。感謝陳子薇繪制本書的卡通插圖,實驗平臺由王思捷、馮思遠開發(fā),并感謝任侃、沈鍵及潘哲逸在編寫時提供的幫助。
俞勇,上海交通大學(xué)電子信息與電氣工程學(xué)院教授、博士生導(dǎo)師,中國計算機學(xué)會計算機教育專業(yè)委員會常務(wù)理事。 先后獲和上海市教學(xué)成果獎9項、上海市優(yōu)秀教材獎2項,并獲國務(wù)院特殊津貼、全國模范教師、全國師德標(biāo)兵、上海市五一勞動獎?wù)隆氫搩?yōu)秀教師特等獎、上海市教學(xué)名師、上海市模范教師、上海交通大學(xué)受學(xué)生歡迎教師等榮譽。入選首批國家高層次人才特殊支持計劃教學(xué)名師。
教學(xué)方面,主編教材及著作6本、譯著2本。先后主持*教育教學(xué)改革項目2項,主持國家精品課程數(shù)據(jù)結(jié)構(gòu)及上海市程序設(shè)計類基礎(chǔ)課程教學(xué)團隊,主持*質(zhì)量工程項目4項,發(fā)表教育教學(xué)研究論文6篇,率隊奪得ACM國際大學(xué)生程序設(shè)計競賽世界冠軍3次。
科研方面,主要從事數(shù)據(jù)與知識管理研究。先后承擔(dān)10多個國際會議、研討會等程序委員和主席,國際期刊編輯。先后主持10多項國家自然科學(xué)基金和863項目、30多項企業(yè)合作項目,發(fā)表重要國際會議和期刊論文近300篇,被引用11000余次。指導(dǎo)的博士生獲全國優(yōu)秀博士學(xué)位論文提名獎1次、上海市優(yōu)秀博士學(xué)位論文獎1次,指導(dǎo)的碩士生獲上海市優(yōu)秀碩士學(xué)位論文獎2次。
前言 1
第1部分圖像識別
章圖像識別的基礎(chǔ)知識 10
第二章K近鄰算法 22
第三章卷積神經(jīng)網(wǎng)絡(luò) 29
第2部分圖像風(fēng)格遷移
第四章圖像風(fēng)格遷移基礎(chǔ)知識 52
第五章色彩的模仿 K近鄰算法 53
第六章像素級別梯度優(yōu)化 58
第七章生成對抗網(wǎng)絡(luò) 72
第3部分文本生成
第八章文本生成基礎(chǔ)知識 98
第九章n元語法模型 從數(shù)數(shù)開始 102
第十章循環(huán)神經(jīng)網(wǎng)絡(luò) 107
第十一章編碼與解碼 seq2seq
第4部分角斗士棋
第十二章角斗士棋基礎(chǔ)知識 128
第十三章常用的搜索算法 133
第5部分紅綠燈調(diào)度
第十四章紅綠燈調(diào)度基礎(chǔ)知識 152
第十五章馬爾可夫決策過程 155
第十六章Q-learning 160
第十七章DeepQ-Network 165
第十八章智能紅綠燈的代碼實現(xiàn) 170
結(jié)語 187
附錄一思考與實踐解答參考 188
附錄二參考文獻 191