本書是人工智能與大數(shù)據(jù)技術大講堂叢書中的*本書。全書貫穿*簡體驗的講授原則,并模擬實際課堂的教學風格,通過幽默風趣的大白話語言,手把手帶領讀者由淺入深、循序漸進地進行學習,讓他們在身臨其境的教學氛圍中,輕松、愉悅地掌握人工智能技術領域的基礎知識,從而跨入人工智能的大門。本書的閱讀門檻極低,只需要讀者具備初步的數(shù)理知識和計算機操作技能即可順利學習;本書的學習曲線非常平滑,前面章節(jié)中的知識點都為后續(xù)章節(jié)的學習做好了鋪墊,讓讀者的學習毫無障礙;本書通過圖書 視頻 GitHub 微信公眾號 學習管理平臺 群 專業(yè)助教的立體化學習解決方案及大量線上、線下互動,讓讀者可以體驗到遠超過同類圖書的學習效果。
本書共8章。第1章給出了切實可行的學習建議;第2章介紹了開發(fā)環(huán)境;第3~5章是專為人工智能和大數(shù)據(jù)而優(yōu)化的知識要點,手把手帶領讀者從零基礎開始學習編程;第6章與第7章從不同的角度手把手帶領讀者完成*簡單的卷積運算(深度學習的基礎算法);第8章帶領讀者解讀一個案例中的部分源碼(來自于*流行的深度學習框架TensorFlow)。
本書適合對人工智能、機器學習、深度學習和計算機視覺感興趣的讀者閱讀,尤其適合零基礎和弱基礎的讀者學習。閱讀本書不要求讀者有太多的編程基礎與高等數(shù)學基礎。
本書特色:
多位資深的人工智能算法工程師和研究員合力打造
地平線創(chuàng)始人余凱等6位人工智能領域的知名專家點評并推薦
新智元(全球領先的人工智能專業(yè)媒體)大力支持并推薦
圖書 36課時視頻 GitHub 公眾號 學習管理平臺 群 專業(yè)助教立體化學習解決方案
全面貫徹Learning by doing與Understanding by creating的學習理念
貫穿*簡體驗講授原則,模擬實際課堂的教學風格,用幽默風趣的大白話進行講解,手把手帶領讀者輕松、愉悅地學習
注重初學者關懷,營造舒暢的學習體驗;提供立體化解決方案;無須費時搭建環(huán)境,開箱即用;對每行焦點代碼進行了字符級趣味解讀
從Python入門講起,平滑過渡到深度學習的基礎算法卷積運算,*終完成谷歌官方的圖像分類與目標檢測兩個實戰(zhàn)案例
業(yè)內6位大咖力薦:
全球范圍內自動駕駛處理器領域的領跑者地平線創(chuàng)始人/CEO 余凱
領先的計算機視覺服務商Yi 創(chuàng)始人/CEO 張默
清華大學計算機系學術委員會主任/IEEE Fellow 孫富春
神策數(shù)據(jù)創(chuàng)始人/CEO 桑文鋒
天津大學智能與計算學部副主任/人工智能學院院長 胡清華
新智元創(chuàng)始人兼CEO 楊靜
為什么要寫這本書?
一只阿法狗為全世界打開了一條窄窄的門縫,通往未來之門就此展現(xiàn)。以深度學習之名,人工智能第三次興起。人類社會已經進入了人工智能與大數(shù)據(jù)時代。大數(shù)據(jù)與概率統(tǒng)計的相關知識、工具已經從某個領域的專業(yè)課成為當代社會的通識課。當下,主動擁抱新變化,積極學習新知識愈發(fā)顯得重要。很多人積極投入熱情、時間和金錢后,沒能堅持多久,就中斷了學習。也有很多人對此表示觀望,甚至自我放棄,覺得自己的基礎不足以把握這次機會。
學習本應是一件輕松愉快的事,這是因為探索與解釋是人類的天性。專業(yè)學習通常還是投入產出比極高的一件事,尤其是當代社會,真才實干者通常會獲得合理而豐厚的回報。
但是很多計算機類的書籍,不僅沒能幫助初者更高效地進入專業(yè)領域,反而浪費了讀者的時間,打擊了初學者的積極性。這是因為,很多書的作者幾乎沒有對初學者關懷的意識,沒有設身處地地為初學者考慮,沒有量身定制地為初學者優(yōu)化。甚至很多書中的內容僅僅是對官方文檔的搬運。
本書嘗試介紹一個新的學習主張,用以幫助初學者輕松而高效地入門人工智能這一專業(yè)領域,同時也可以用來衡量一個學習資源是否可以幫助初學者,輕松高效地從入門級別成長為專業(yè)的合格人才。
僅憑一本書,確實很難幫助零基礎、弱基礎的讀者入門人工智能,因此本書的作者團隊準備了一套叢書人工智能與大數(shù)據(jù)技術大講堂,給讀者提供零基礎入門人工智能的解決方案。通過該解決方案,可以幫助讀者成為合格的人工智能算法工程師。即使讀者最終沒有完成整個叢書的學習,而是只學習了前半部分,也可以很好地理解和適應人工智能與大數(shù)據(jù)時代。
本書特色
? 貼心:本書是市場上同類書籍中學習門檻極低的書籍,只要讀者具備基本的數(shù)學能力與計算機操作能力,就能輕松、高效地入門人工智能算法。從第一行代碼到最后一個要點,讀者只需要按順序學習,即可順利理解和掌握,而無須額外搜索和查找。
? 完整:通過圖書 視頻 GitHub 微信公眾號 學習管理平臺 群 專業(yè)助教構成完整的學習資源,建立立體化的學習模式,通過從最低門檻到專業(yè)崗位的全路徑設計學習計劃,以及大量線上、線下互動,形成完整的學習解決方案。
? 生動:本書將課堂互動搬到書中,現(xiàn)場感十足。書中以輕松幽默的語言 生動的故事情節(jié)講解每個知識點,以保障讀者全程都可以輕松學習,從而避免由于枯燥和晦澀而導致學習的中斷。本書將學習知識點的過程轉換為與知識點交朋友的過程,全方位呵護、培養(yǎng)和提高初學者的學習興趣、學習熱情和學習動力。
? 易懂:本書全面貫徹learning by doing的學習理念。因為具象的代碼比抽象的概念更易于理解和掌握,所以本書將抽象的理論知識融入具象的代碼中,再通過對代碼運行結果進行分析和總結,從而提煉理論,幫助初學者掌握重要的概念和原理,并以易懂的語言將核心知識點以細粒度的分解示例進行詳盡講解。
? 透徹:本書全面貫徹understanding by creating的學習理念,通過手把手帶領讀者完成精心設計的原創(chuàng)示例代碼進行學習,對基礎且重要的核心理論進行多角度講解,讓讀者循序漸進地體驗和總結應用,最終達到對精要知識點的透徹理解,從而建立學習信心,為后續(xù)的學習打下堅實的基礎。
? 實用:本書通過精心設計的知識點與大量的原創(chuàng)示例,帶領讀者體驗知識的價值。讀者在理解重要原理的基礎上,可以親手實現(xiàn)代碼,熟練運用理論分析,解決實際問題,從而以最少的時間和最低的成本,真切感受算法的魅力。
本書內容
本書共8章,分為3篇。
第1篇 語法篇
第1章零基礎入門AI解決方案,介紹了專為初學者關懷而提出的學習新主張,給出了具體可操作的學習建議,并提供了后續(xù)學習的精選優(yōu)質資源。
第2章環(huán)境搭建,介紹了開發(fā)環(huán)境的選擇、搭建策略及具體操作步驟。
第3章零點一基礎入門Python,以實用性極強的案例為主線,極為詳盡地講解了入門人工智能中深度學習與大數(shù)據(jù)分析所需要的Python編程基礎知識。
第4章最簡體驗數(shù)字圖像,在第3章的基礎上,手把手帶領讀者學習數(shù)據(jù)可視化的常用工具Matplotlib。
第5章最簡體驗數(shù)組,在第4章的基礎上,手把手帶領讀者學習數(shù)字圖像處理、深度學習計算及大數(shù)據(jù)分析等多個領域的重要基礎工具Numpy。
第2篇 算法篇
第6章最簡體驗卷積運算,從最簡單易懂的示例開始,循序漸進地講解了卷積運算的原理和實現(xiàn)代碼,以及卷積運算在深度學習算法中的作用。
第7章綜合案例之滑動窗口示意圖,換一個角度認識和理解卷積運算,同時幫助讀者進一步熟練掌握Python和Matplotlib。
第3篇 綜合篇
第8章源碼解讀,帶領讀者綜合使用前面章節(jié)中所掌握的基礎知識,解讀最經典的示例源碼。解讀源碼既是重要的工作能力,也是主要的學習手段,所以需要讀者很好地掌握。
本書示例代碼說明
本書在示例代碼的組織與呈現(xiàn)方式上進行了專門設計,盡可能地幫助讀者輕松高效地掌握每一個重要知識點。
? 每個示例代碼文件的編號與書中的插圖編號相同,以方便讀者查找、參閱。
? 每個示例代碼文件分為兩部分:鋪墊代碼與焦點代碼。鋪墊代碼來自于前面的示例,是已經掌握的舊知識點;焦點代碼則是為了方便讀者快速定位的新知識點。
例如,下圖所示便為第8章圖8-31所對應的示例代碼。
其中,鋪墊代碼來自于示例8-29,而焦點代碼只有一行,這樣讀者既可以復習舊知識點,與舊知識點建立聯(lián)系,又可以迅速抓住重點,高效地學習新知識點。
本書讀者對象
本書適合以下讀者閱讀:
? 對人工智能和機器學習感興趣的讀者;
? 對深度學習和計算機視覺感興趣的讀者;
? 對大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學感興趣的讀者;
? 講授人工智能、機器學習、深度學習、大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學課的老師(提供師資培訓與教案);
? 希望提升自己通用競爭力的讀者。
閱讀本書的讀者只需具備以下條件:
? 初步的數(shù)理知識;
? 基本的電腦操作能力;
? 智能手機操作能力。
即使不能滿足上述條件,也可以通過本書作者團隊提供的專業(yè)助教補齊相關基礎。
本叢書中的每本書與其他同類圖書的最大不同在于切實注重讀者的學習體驗。我們真誠地希望得到廣大讀者的閱讀反饋,以便于我們不斷地改進和迭代,從而不斷地提升讀者的學習體驗和學習效果。
由于是第1版圖書,雖然作者團隊為此已經投入了累計上萬小時的工作量,對書中的內容經過了反復測試和迭代改進,但仍然難免偶有謬誤或講述不確切、不清楚和不順暢的地方。我們在此邀請各位讀者積極地參與到本書的售后反饋活動中。您在閱讀本書時若有疑問或者發(fā)現(xiàn)了書中的疏漏,都可以在本書的GitHub頁面指出,或者直接發(fā)送相關的問題描述至微信公眾號AI精研社,也可以根據(jù)公眾號的菜單提示添加值班客服或助教以獲得幫助,我們將及時做出解答,并盡快將疏漏更新在勘誤表中。我們歡迎一切關于本書的意見、建議、問題、指正、討論和其他各類反饋。
本書作者
本書由清華大學的張光華博士,以及AI精研社的賈庸和李巖主筆編寫。其他參與策劃、設計、編寫與審校的人員(按姓名拼音排序)還有阿珠(中國科學院自動化所)、寶爾金(中國科學院自動化所)、陳瀟、丁火(中國科學院自動化所)、豐子一、何戈文(佛羅里達大學)、何嘉慶、黃向生(中國科學院自動化所)、黃子凌[清華大學(中國臺灣)]、胡曉野、賈子嫻、靳博洋、李賡飛、綾夜、林靈鋒(中國科學院深圳先進技術研究院)、劉聰(中南大學)、李燚、李玉惠(恒安嘉新)、盧建東、唐唐、王立寧(阿里巴巴)、王鑫(萬摩數(shù)字)、吳憲君、吳軼男、徐鐵豐、楊海華(百度)、葉虎(騰訊)、殷榮(中國科學院信息工程研究所)、余欣航(北京大學前沿交叉學科研究院)、張家歡、張夢、張宇泰(京東之家)。在此一并感謝!
致謝
在策劃整個叢書與本書的寫作過程中得到了很多前輩、專家和行業(yè)領袖的指導、支持和幫助。作者團隊的家人與諸多好友也為此投入了大量的時間和精力。在此向他們表達誠摯的謝意!
還要特別感謝賈庸的人生合伙人壞媽!寫作本書占用了賈庸大量原本屬于家庭的時間,而壞媽不僅承擔了照顧家庭、教育小壞的全部責任,還不斷地鼓勵他。為了表達對壞媽的感激,見證賈庸對壞媽的愛戀,在這里專門撒下這把狗糧:管他宏觀與微觀,只有你與我有關!
在此還要特別感謝負責本書的編輯!潤物細無聲的催稿,郵件秒回的響應速度,不厭其煩的修改和完善,這都是本書得以更加完善的重要因素。
還要感謝本書的作者團隊,以及叢書的策劃團隊與技術、內容和教學支持團隊!
此外還有很多匿名小伙伴和熱心網友也給出了極有價值的反饋,也在此一并表示感謝!
最后感謝各位讀者,尤其是那些為本書提出意見或建議,以及反饋疏漏的讀者!
作者于北京
第1篇 語法篇
第1章 零基礎入門AI解決方案.... 2
1.1 AI極簡史(選修)... 2
1.2 AI極簡介... 3
1.2.1 認識顏色:表征學習與深度學習... 3
1.2.2 該往哪邊旋轉: 決策科學... 4
1.2.3 轉起來:控制論... 5
1.2.4 自動駕駛與AI三大領域... 5
1.2.5 有關AI三大領域的解釋說明... 6
1.3 史上最輕松的入門AI完整解決方案... 6
1.3.1 興趣模塊... 7
1.3.2 入門AI所需基礎模塊... 9
1.3.3 入門模塊及其他... 11
1.4 入門好資源... 12
1.4.1 慕課(MOOC)... 12
1.4.2 框架... 13
1.4.3 社區(qū)... 13
1.4.4 數(shù)據(jù)集... 14
1.4.5 論文... 14
1.4.6 公司... 15
1.5 學習新主張(最重點)... 15
1.5.1 什么是體驗... 16
1.5.2 什么是最簡... 17
1.5.3 最簡體驗主張... 18
1.6 如何使用本書(純小白請重點閱讀)... 19
1.6.1 高效學習本書的首要原則... 19
1.6.2 什么是要點... 19
1.6.3 對純零基礎學習者的建議... 20
1.6.4 使用本書GitHub提高學習效率(敲黑板級別的重點)... 20
1.7 網絡詞匯簡寫與昵稱... 24
1.8 小結... 26
第2章 環(huán)境搭建.... 27
2.1 最簡體驗Jupyter Notebook. 27
2.1.1 手機上最簡體驗Jupyter 28
2.1.2 計算機上最簡體驗Jupyter 29
2.1.3 Notebook中運行Python代碼... 30
2.1.4 Notebook的最基本概念Cell 31
2.1.5 移動Cell 32
2.1.6 揭秘HelloWorld Cell 34
2.1.7 為啥要用Jupyter Notebook(選修)... 34
2.1.8 Notebook服務與社區(qū)文化(選修)... 35
2.1.9 Jupyter與MyBinder(選修)... 36
2.2 Azure Notebook簡介... 37
2.3 Google Colaboratory簡介... 39
2.4 Windows下安裝Anaconda. 42
2.5 Linux下安裝Anaconda. 43
2.6 Mac下安裝Anaconda. 47
2.7 本地啟動Jupyter Notebook. 47
2.8 小結... 51
2.9 習題... 52
2.9.1 基礎部分... 52
2.9.2 擴展部分... 53
第3章 零點一基礎入門Python.. 54
3.1 最簡體驗print方法... 54
3.2 更多print玩法... 59
3.3 最簡體驗Python變量... 63
3.4 最簡體驗Python列表與遍歷... 65
3.5 最簡體驗Python字典... 67
3.6 項目實戰(zhàn):智能通訊錄... 69
3.7 分支語法if 71
3.7.1 最簡體驗分支if 71
3.7.2 在智能通訊錄中使用分支語法... 73
3.7.3 智能通訊錄0.2. 75
3.8 小結... 78
3.8.1 真正掌握了嗎... 78
3.8.2 真的能用嗎... 79
3.8.3 真的智能嗎... 80
3.8.4 開發(fā)環(huán)境與協(xié)作學習... 81
3.9 習題... 83
3.9.1 基礎部分... 83
3.9.2 擴展部分... 83
第4章 最簡體驗數(shù)字圖像.... 84
4.1 最簡體驗像素... 84
4.1.1 嵌套使用列表... 84
4.1.2 列表取元素... 86
4.1.3 嵌套使用遍歷... 88
4.1.4 print進階... 89
4.1.5 數(shù)值... 90
4.1.6 使用數(shù)據(jù)list最簡體驗像素... 92
4.2 最簡體驗代碼畫圖... 94
4.2.1 最簡體驗圖像操作... 95
4.2.2 最簡體驗plot 97
4.2.3 最簡體驗marker 100
4.2.4 更多marker屬性... 102
4.3 點與線... 104
4.3.1 兩點之間,線段最短... 104
4.3.2 畫更多的線... 106
4.3.3 點與線:最簡體驗面向對象... 108
4.4 高效交流,協(xié)作學習... 110
4.5 正式認識Matplotlib. 112
4.6 小結... 115
4.7 習題... 115
4.7.1 基礎部分... 115
4.7.2 擴展部分... 115
第5章 最簡體驗數(shù)組.... 117
5.1 最簡體驗NumPy. 117
5.1.1 從list到array. 117
5.1.2 Notebook技能之Run all 120
5.1.3 生成一個array. 121
5.1.4 操作array中的元素... 123
5.2 基于數(shù)組進行畫圖... 125
5.2.1 最簡體驗imshow()方法... 125
5.2.2 改進圖像顯示效果... 128
5.2.3 像素級操作圖像... 130
5.2.4 精準體驗像素... 132
5.3 最簡體驗Figure與Axes. 135
5.3.1 最簡體驗容器... 135
5.3.2 Python方法的返回值... 137
5.3.3 最簡體驗figure的size. 141
5.3.4 設置figure的size. 142
5.3.5 保存圖像... 143
5.3.6 正式認識plt與mpl:Python包與模塊的導入... 144
5.4 小結... 148
5.5 習題... 148
5.5.1 基礎部分... 148
5.5.2 擴展部分... 148
第2篇 算法篇
第6章 最簡體驗卷積運算.... 150
6.1 最簡體驗維度... 150
6.1.1 數(shù)組的形狀... 150
6.1.2 最簡體驗數(shù)組維度... 152
6.2 最簡體驗向量... 154
6.2.1 從1 1=2開始,輕松理解向量... 154
6.2.2 最簡體驗向量運算... 156
6.2.3 向量乘法... 158
6.3 最簡體驗一維卷積... 160
6.3.1 滑動窗口... 160
6.3.2 一維卷積... 162
6.4 卷積得到的是什么... 163
6.4.1 特征與學習... 163
6.4.2 特征的組合... 165
6.4.3 最簡體驗特征... 167
6.4.4 歸一化Normalization. 169
6.4.5 歸一化續(xù)(純小白慎入)... 171
6.5 小結... 172
6.6 習題... 173
6.6.1 基礎部分... 173
6.6.2 擴展部分... 173
第7章 綜合案例之滑動窗口示意圖.... 174
7.1 正式認識subplots()方法... 174
7.1.1 最簡體驗subplots()方法... 174
7.1.2 最簡體驗axs對象... 176
7.1.3 最簡體驗Axes坐標軸... 179
7.1.4 坐標軸ticks. 182
7.2 滑動窗口示意圖0.1版... 186
7.2.1 技術問答范本... 186
7.2.2 起始、終止和步長... 188
7.2.3 坐標軸tickline. 191
7.2.4 坐標軸ticklabel 194
7.3 最常用圖像元素之文本框... 196
7.3.1 最簡體驗plt.text()方法... 196
7.3.2 微調文本框... 199
7.3.3 滑動窗口示意圖0.2版... 200
7.4 小結... 202
7.5 習題... 203
7.5.1 基礎部分... 203
7.5.2 擴展部分... 203
第3篇 綜合篇
第8章 源碼解讀.... 206
8.1 TensorFlow示例代碼解讀... 206
8.1.1 basic classification示例簡介... 206
8.1.2 最簡體驗數(shù)據(jù)集... 209
8.1.3 Fashion MNIST數(shù)據(jù)集的label 214
8.1.4 批量查看圖像... 217
8.2 源碼解讀... 220
8.2.1 最簡體驗源碼解讀... 220
8.2.2 解惑ticks的set與get 222
8.3 基于Notebook服務的開發(fā)環(huán)境復現(xiàn)... 224
8.3.1 Cell內安裝TensorFlow.. 224
8.3.2 最簡體驗Terminal 227
8.3.3 體驗便捷精準復現(xiàn)... 229
8.3.4 一鍵復現(xiàn)目標檢測... 231
8.4 小結... 236
8.5 習題... 237
8.5.1 基礎部分... 237
8.5.2 擴展部分... 237
后記.... 238