從零開始構(gòu)建深度前饋神經(jīng)網(wǎng)絡(luò)(Python+TensorFlow 2.x)
定 價(jià):69.8 元
叢書名:人工智能與大數(shù)據(jù)技術(shù)大講堂
- 作者:張光華
- 出版時(shí)間:2021/12/1
- ISBN:9787111696155
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP18
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
2016年,一只阿法狗(AlphaGo)為全世界打開了一條窄窄的門縫,通往未來之路就此展現(xiàn)。
通過超強(qiáng)硬件和大量的數(shù)據(jù)積累,人工智能浪潮第三次興起。借助人工智能技術(shù),公安部門可以輕松抓捕潛逃多年的罪犯,“AI換臉”已經(jīng)成為普通用戶的娛樂方式之一,智慧城市、自動(dòng)駕駛開始在多個(gè)城市有試點(diǎn)……
GPT-3、Switch Transformer開啟了新的時(shí)代,而智源研究院的悟道2.0參量則高達(dá)1.75萬億。訓(xùn)練有素的結(jié)構(gòu)生物學(xué)家花費(fèi)上千萬美元?dú)v時(shí)多年的研究結(jié)果,AlphaFold v2.0在朝夕之間便完成預(yù)測(cè)。
今天,主動(dòng)擁抱新變化,積極學(xué)習(xí)新知識(shí),愈發(fā)顯得重要。很多人積極投入熱情、時(shí)間和金錢后,沒能堅(jiān)持多久就中斷了學(xué)習(xí)。也有很多同學(xué)對(duì)此表示觀望甚至放棄,覺得憑自己的基礎(chǔ)不足以把握這次機(jī)會(huì)。
誠(chéng)然,僅憑一本書很難幫助普通讀者深刻理解并熟練掌握深度學(xué)習(xí)中的全部知識(shí),因此“AI精研社”規(guī)劃了一個(gè)系列圖書,給出完整的解決方案,希望能幫助讀者循序漸進(jìn)、平滑而高效地成長(zhǎng)為合格的人工智能算法實(shí)踐者(practitioners)。
本書是“人工智能與大數(shù)據(jù)技術(shù)大講堂”系列圖書的第2部。本書從體驗(yàn)手寫數(shù)字(k近鄰算法)識(shí)別開始,循序漸進(jìn)地不斷加深讀者對(duì)神經(jīng)網(wǎng)絡(luò)模型的理解,進(jìn)而可以設(shè)計(jì)并實(shí)現(xiàn)自己的模型。另外,本書通過Python+NumPy從零開始構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,強(qiáng)化讀者對(duì)算法思想的理解,并通過TensorFlow構(gòu)建模型來驗(yàn)證讀者親手從零構(gòu)建的版本。
前饋神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的重要知識(shí),其核心思想是反向傳播與梯度下降。本書從極易理解的示例開始,逐漸深入,幫助讀者充分理解并熟練掌握反向傳播與梯度下降算法,為后續(xù)學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
本書延續(xù)理論與實(shí)踐并重的風(fēng)格,先以圖文方式講解算法思想,再以Python+NumPy實(shí)現(xiàn)算法,然后再給出TensorFlow實(shí)現(xiàn)的版本,幫助讀者不斷加深對(duì)核心的算法理解,同時(shí)提升實(shí)際動(dòng)手能力,從而鍛煉將算法思想轉(zhuǎn)化為程序代碼的能力。
圖書+視頻+GitHub/Gitee+微信公眾號(hào)+學(xué)習(xí)管理平臺(tái)+群+專業(yè)助教立體化學(xué)習(xí)解決方案
讓數(shù)學(xué)公式生動(dòng)易懂,讓算法描述簡(jiǎn)潔、清晰
讓公式與代碼一一對(duì)應(yīng),讓理論與實(shí)踐相互促進(jìn)
將算法轉(zhuǎn)換為程序,徒手搭建與TensorFlow搭建精準(zhǔn)匹配
前沿:采用Python+TensorFlow 2.6.0編寫,幫助讀者快速掌握前沿的深度學(xué)習(xí)框架。
透徹:先以通俗易懂的文字講解神經(jīng)網(wǎng)絡(luò)的核心算法思想,再以純Python代碼加深讀者對(duì)算法思想的理解,通過文字、數(shù)學(xué)表達(dá)和代碼三者對(duì)應(yīng)的方式幫助讀者理解。
原創(chuàng):通過大量的原創(chuàng)示例,對(duì)核心知識(shí)點(diǎn)進(jìn)行多角度詳解,幫助讀者透徹理解。
完整:構(gòu)建完整的學(xué)習(xí)資源,并通過全路徑學(xué)習(xí)計(jì)劃以及線上和線下互動(dòng),形成完整的立體化學(xué)習(xí)解決方案。
平滑:對(duì)理解和構(gòu)建前饋神經(jīng)網(wǎng)絡(luò)所需要的核心知識(shí)點(diǎn)進(jìn)行精心設(shè)計(jì),使得整個(gè)學(xué)習(xí)過程平滑而高效。
實(shí)踐:先以純Python代碼實(shí)現(xiàn)算法,再給出TensorFlow實(shí)現(xiàn),理論與實(shí)踐并重,幫助讀者提高實(shí)際動(dòng)手能力。
為什么要寫這本書
學(xué)習(xí)本應(yīng)該是一件輕松快樂的事,因?yàn)樘剿髋c解釋是人類的天性。
專業(yè)學(xué)習(xí)通常是投入產(chǎn)出比極高的一件事,尤其是在當(dāng)代社會(huì),真才實(shí)干者通?梢詮纳鐣(huì)獲得合理而豐厚的回報(bào)。因此,筆者希望能幫助初學(xué)者更高效地入門專業(yè)領(lǐng)域,在盡量精簡(jiǎn)安排知識(shí)點(diǎn)的同時(shí),避免晦澀難懂的語(yǔ)言打擊初學(xué)者的積極性。
筆者希望建立初學(xué)者關(guān)懷的意識(shí),設(shè)身處地地為初學(xué)者考慮,為初學(xué)者量身定制并優(yōu)化知識(shí)體系,而不是簡(jiǎn)單地搬運(yùn)官方文檔。
本書嘗試介紹一個(gè)新的學(xué)習(xí)主張,以幫助初學(xué)者輕松、高效地入門人工智能這一專業(yè)領(lǐng)域。
本書特色
* 前沿:書中的示例代碼基于新發(fā)布的(截至2021年9月1日)TensorFlow穩(wěn)定版本即2.6.0編寫,以幫助讀者快速掌握前沿的深度學(xué)習(xí)框架。
* 透徹:全面貫徹Learning by doing與Understanding by creating的學(xué)習(xí)理念,先以通俗易懂的文字講解核心算法思想,再以純Python代碼加深讀者對(duì)算法思想的理解,通過文字描述、數(shù)學(xué)表達(dá)和代碼實(shí)現(xiàn)三者對(duì)應(yīng)的方式幫助讀者理解核心算法思想的重要細(xì)節(jié)。
* 原創(chuàng):通過大量原創(chuàng)示例,對(duì)基礎(chǔ)且重要的核心知識(shí)點(diǎn)進(jìn)行多角度的詳細(xì)講解,幫助讀者透徹理解精要知識(shí)點(diǎn),從而建立學(xué)習(xí)信心,為后續(xù)學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
* 完整:通過“圖書+視頻+GitHub/gitee+微信公眾號(hào)+學(xué)習(xí)管理平臺(tái)+群+專業(yè)助教”的方式,構(gòu)建完整的學(xué)習(xí)資源,并通過全路徑學(xué)習(xí)計(jì)劃與線上線下互動(dòng),形成完整的學(xué)習(xí)解決方案。
* 平滑:專業(yè)知識(shí)學(xué)習(xí)的過程理應(yīng)是循序漸進(jìn)的。本書的第3章在強(qiáng)化第2章知識(shí)點(diǎn)的同時(shí)平滑地引入新的知識(shí)點(diǎn),第4章在強(qiáng)化第2章和第3章知識(shí)點(diǎn)的同時(shí)再引入新的概念,以此類推。本書對(duì)理解并構(gòu)建前饋神經(jīng)網(wǎng)絡(luò)所需要的核心知識(shí)點(diǎn)進(jìn)行精心設(shè)計(jì),使得整個(gè)學(xué)習(xí)過程平滑而高效。
* 實(shí)踐:幫助讀者逐步加深對(duì)算法思想理解的同時(shí),通過代碼實(shí)現(xiàn)算法思想,將理論轉(zhuǎn)化為可以運(yùn)行的程序。本書先以純Python代碼實(shí)現(xiàn)算法,再給出TensorFlow的實(shí)現(xiàn)版本,理論與實(shí)踐并重,從而幫助讀者提高實(shí)際動(dòng)手能力。
本書內(nèi)容
本書共9章,下面簡(jiǎn)要介紹各章內(nèi)容。
第1章介紹如何搭建學(xué)習(xí)和開發(fā)環(huán)境。
第2章帶領(lǐng)讀者體驗(yàn)k近鄰算法,幫助他們掌握機(jī)器學(xué)習(xí)的一些基本概念。
第3章循序漸進(jìn)地介紹模型的學(xué)習(xí)、訓(xùn)練及其他重要的基礎(chǔ)概念與算法思想,并以感知機(jī)為例,詳細(xì)講解模型參數(shù)。
第4章在第3章的基礎(chǔ)上引入深度學(xué)習(xí)中的重要思想方法之一——概率化解釋。
第5章在讀者充分理解單層神經(jīng)網(wǎng)絡(luò)算法思想的基礎(chǔ)上,使用TensorFlow實(shí)現(xiàn)對(duì)數(shù)幾率回歸模型,進(jìn)一步加深讀者對(duì)神經(jīng)網(wǎng)絡(luò)算法思想的理解,同時(shí)幫助他們初步掌握TensorFlow的相關(guān)API。
第6章詳細(xì)講解數(shù)據(jù)預(yù)處理和小批量等行之有效的深度學(xué)習(xí)實(shí)踐。
第7章在歸納總結(jié)第3~6章相關(guān)內(nèi)容的基礎(chǔ)上,引入計(jì)算圖這一重要工具,并通過TensorBoard查看TensorFlow的計(jì)算圖實(shí)現(xiàn)。
第8章介紹如何將單層神經(jīng)網(wǎng)絡(luò)平滑地?cái)U(kuò)展為兩層神經(jīng)網(wǎng)絡(luò)。
第9章在第8章的基礎(chǔ)上進(jìn)一步介紹如何將兩層神經(jīng)網(wǎng)絡(luò)擴(kuò)展為L(zhǎng)層神經(jīng)網(wǎng)絡(luò)。
附錄對(duì)神經(jīng)網(wǎng)絡(luò)算法涉及的線性代數(shù)的相關(guān)知識(shí)進(jìn)行簡(jiǎn)單的介紹,并提供相應(yīng)的示例代碼。
讀者對(duì)象
本書假定讀者具備一定的Python編程基礎(chǔ)與數(shù)學(xué)基礎(chǔ),主要適合以下人員閱讀:
* 對(duì)人工智能和機(jī)器學(xué)習(xí)感興趣的人員;
* 對(duì)深度學(xué)習(xí)和計(jì)算機(jī)視覺感興趣的人員;
* 對(duì)大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學(xué)感興趣的人員;
* 講授人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學(xué)的老師;
* 希望提升自己未來競(jìng)爭(zhēng)力的人員。
本書對(duì)知識(shí)結(jié)構(gòu)進(jìn)行科學(xué)和專業(yè)的設(shè)計(jì),即使部分讀者未能熟練掌握高等數(shù)學(xué)的相關(guān)基礎(chǔ)知識(shí),也只影響部分章節(jié)的閱讀,而并不會(huì)影響他們對(duì)算法思想的理解與代碼的實(shí)現(xiàn)。
若讀者對(duì)Python編程尚不熟悉,可以參考“人工智能與大數(shù)據(jù)技術(shù)大講堂”叢書的第1部《人工智能極簡(jiǎn)編程入門(基于Python)》,或訪問微信公眾號(hào)“AI精研社”獲得幫助。
如何使用本書
本書既可作為各院校課堂教學(xué)的教材,也可作為讀者自學(xué)使用的參考書。本書對(duì)章節(jié)順序與知識(shí)點(diǎn)的依賴關(guān)系進(jìn)行了精心設(shè)計(jì),若讀者作為自學(xué)用書,除第1章外,其他各章請(qǐng)按順序進(jìn)行閱讀。
描述算法通常有以下三種方式:
* 自然語(yǔ)言:是日常生活交流中使用的語(yǔ)言,易于理解,可以幫助讀者對(duì)算法思想建立初步的理解,但常常無法精準(zhǔn)且簡(jiǎn)練地描述算法。
* 數(shù)學(xué)表達(dá):使用預(yù)先約定的一系列記號(hào)描述算法,既精準(zhǔn)又簡(jiǎn)練,在自然語(yǔ)言的輔助下,可以幫助讀者進(jìn)一步理解并掌握算法思想。
* 代碼實(shí)現(xiàn):將算法思想轉(zhuǎn)換為可以運(yùn)行并輸出預(yù)期結(jié)果的程序代碼,可以幫助讀者深刻理解并熟練掌握算法思想及其重要的細(xì)節(jié)。
從第3章起,建議讀者閱讀完每小節(jié)的內(nèi)容后立即親自動(dòng)手進(jìn)行大量練習(xí),直至只參考書中的自然語(yǔ)言或數(shù)學(xué)表達(dá)便可自己寫出實(shí)現(xiàn)算法思想的代碼,然后再進(jìn)入下一小節(jié)內(nèi)容的學(xué)習(xí)。
配套資源獲取
本書涉及的配套資源如下:
* 實(shí)例源代碼;
* 配套教學(xué)視頻;
* 人工智能專業(yè)詞匯中英文對(duì)照表;
* 本書引用源列表。
讀者可以通過以下兩種途徑獲取本書配套資源:
* 關(guān)注微信公眾號(hào)“AI精研社”,然后發(fā)送“DL101”至該公眾號(hào)進(jìn)行獲取。
* 在華章公司的網(wǎng)站(www.hzbook.com)上搜索到本書,然后單擊“資料下載”按鈕,即可在本書頁(yè)面的右上方找到相關(guān)鏈接進(jìn)行獲取。
教學(xué)服務(wù)
本書非常適合作為高等院校人工智能專業(yè)的教材。為此,售后團(tuán)隊(duì)“AI精研社”專門為相關(guān)授課老師提供以下教學(xué)支持:
* 贈(zèng)送教學(xué)PPT;
* 提供有償?shù)膸熧Y培訓(xùn)。
如果需要進(jìn)一步了解詳情,請(qǐng)關(guān)注“AI精研社”微信公眾號(hào)進(jìn)行咨詢,也可以給本書編輯發(fā)送電子郵件(627173439@qq.com)進(jìn)行了解。
售后服務(wù)與勘誤
“AI精研社”為本書提供專業(yè)的售后服務(wù)。讀者可以用手機(jī)掃描下面的二維碼關(guān)注“AI精研社”微信公眾號(hào)。
“AI精研社”微信公眾號(hào)二維碼
雖然筆者為本書的寫作投入了大量的時(shí)間,并對(duì)書中的示例代碼進(jìn)行了反復(fù)測(cè)試、迭代和改進(jìn),但恐怕依然無法避免少量的錯(cuò)誤與不當(dāng)。
若讀者發(fā)現(xiàn)本書有錯(cuò)誤或不當(dāng)之處,請(qǐng)聯(lián)系“AI精研社”進(jìn)行反饋,筆者會(huì)及時(shí)更改并將勘誤表發(fā)布到GitHub、Gitee和“AI精研社”微信公眾號(hào)中。另外,讀者也可以給本書編輯發(fā)送電子郵件(地址見“教學(xué)服務(wù)”模塊)進(jìn)行反饋。
致謝
策劃和寫作本書的過程中,筆者得到了很多前輩和行業(yè)專家的指導(dǎo)、支持與幫助,筆者的家人與諸多好友也為此投入了大量的時(shí)間與精力,在此向他們表達(dá)誠(chéng)摯的謝意!
還要特別感謝賈庸及其家人(小壞、壞媽)的支持與幫助!賈庸以其豐富的技術(shù)管理經(jīng)驗(yàn)保障了本書及其相關(guān)支持系統(tǒng)的進(jìn)度與質(zhì)量。
還要特別感謝歐振旭編輯!他為本書的策劃與運(yùn)營(yíng)推廣提供了不可或缺的指導(dǎo)與幫助。
還要感謝本書的支持團(tuán)隊(duì)和策劃團(tuán)隊(duì),以及技術(shù)、內(nèi)容和教學(xué)服務(wù)團(tuán)隊(duì)!
還有很多幕后小伙伴和熱心網(wǎng)友也為本書提出了極有價(jià)值的反饋,在此一并表示感謝!
張光華
張光華 博士畢業(yè)于重慶大學(xué),碩士畢業(yè)于中國(guó)科學(xué)技術(shù)大學(xué)。山西省“1331工程”大數(shù)據(jù)智能診療產(chǎn)業(yè)學(xué)院負(fù)責(zé)人,山西省工信廳“山西省健康大數(shù)據(jù)AI聯(lián)合實(shí)驗(yàn)室”負(fù)責(zé)人。中國(guó)醫(yī)藥教育協(xié)會(huì)智能醫(yī)學(xué)專委會(huì)委員,中國(guó)醫(yī)藥教育協(xié)會(huì)智能眼科學(xué)組常委。主要研究方向?yàn)榱孔狱c(diǎn)微型多光譜成像技術(shù)、醫(yī)學(xué)圖像處理和機(jī)器學(xué)習(xí),F(xiàn)已發(fā)表包括醫(yī)學(xué)、圖像處理和機(jī)器學(xué)習(xí)等領(lǐng)域的SCI期刊及國(guó)際會(huì)議論文多篇,參與多項(xiàng)中國(guó)和歐洲科學(xué)基金項(xiàng)目。致力于將深度學(xué)習(xí)技術(shù)與臨床醫(yī)學(xué)進(jìn)行深度融合,并推廣和落地。
前言
第1章 環(huán)境搭建1
1.1 下載并安裝Python1
1.2 Python軟件環(huán)境管理工具Anaconda2
1.2.1 下載Anaconda2
1.2.2 安裝Anaconda4
1.2.3 驗(yàn)證Anaconda的安裝6
1.3 通過TUNA加速Anaconda8
1.3.1 清華大學(xué)開源軟件鏡像站TUNA8
1.3.2 在Windows中設(shè)置Anaconda鏡像通道10
1.3.3 在類UNIX中設(shè)置Anaconda鏡像通道11
1.4 使用Jupyter Notebook12
1.4.1 通過“開始”菜單啟動(dòng)Jupyter Notebook12
1.4.2 通過命令行啟動(dòng)Jupyter Notebook13
1.4.3 新建并重命名Notebook14
1.4.4 安裝Jupyter Notebook插件16
1.5 安裝TensorFlow 2.617
1.5.1 通過Notebook cell安裝TensorFlow 2.617
1.5.2 通過pip install命令離線安裝TensorFlow18
1.6 小結(jié)與補(bǔ)充說明20
第2章 使用k近鄰算法識(shí)別手寫數(shù)字圖像22
2.1 手寫數(shù)字圖像數(shù)據(jù)集MNIST22
2.1.1 使用TensorFlow加載MNIST23
2.1.2 使用scikit-learn加載MNIST24
2.2 分類器與準(zhǔn)確率25
2.3 k近鄰算法的基本思想26
2.4 利用k-NN識(shí)別MNIST27
2.4.1 劃分?jǐn)?shù)據(jù)集27
2.4.2 識(shí)別MNIST與模型評(píng)估29
2.4.3 數(shù)據(jù)探查30
2.4.4 性能優(yōu)化31
2.4.5 調(diào)參32
2.4.6 近鄰再探查33
2.5 k-NN中的距離度量33
2.6 小結(jié)與補(bǔ)充說明34
第3章 感知機(jī)算法思想與實(shí)現(xiàn)36
3.1 機(jī)器學(xué)習(xí)的基本分類36
3.2 鳶尾花數(shù)據(jù)集iris37
3.2.1 樣本特征37
3.2.2 樣本分類38
3.2.3 構(gòu)造簡(jiǎn)化版iris數(shù)據(jù)集39
3.3 感知機(jī)分類精簡(jiǎn)版iris42
3.3.1 極簡(jiǎn)體驗(yàn)感知機(jī)42
3.3.2 感知機(jī)模型的數(shù)學(xué)表達(dá)44
3.3.3 極簡(jiǎn)體驗(yàn)感知機(jī)學(xué)習(xí)算法45
3.3.4 感知機(jī)學(xué)習(xí)算法的Python實(shí)現(xiàn)47
3.3.5 損失函數(shù)與梯度(選修)50
3.3.6 感知機(jī)代碼合并51
3.4 感知機(jī)的實(shí)現(xiàn)類53
3.4.1 構(gòu)造器__init__()53
3.4.2 預(yù)測(cè)方法predict()54
3.4.3 更新模型參數(shù)update_params()55
3.4.4 啟動(dòng)訓(xùn)練fit()56
3.4.5 重構(gòu)Perceptron類58
3.5 小結(jié)與補(bǔ)充說明59
第4章 對(duì)數(shù)幾率回歸算法思想與實(shí)現(xiàn)62
4.1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖62
4.2 對(duì)數(shù)幾率回歸的數(shù)學(xué)表達(dá)63
4.3 對(duì)數(shù)幾率函數(shù)的Python實(shí)現(xiàn)64
4.4 對(duì)數(shù)幾率回歸模型的損失函數(shù)66
4.5 梯度下降法的數(shù)學(xué)表達(dá)(選修)69
4.6 梯度下降法的Python實(shí)現(xiàn)72
4.7 對(duì)數(shù)幾率回歸模型的Python實(shí)現(xiàn)73
4.8 使用對(duì)數(shù)幾率回歸模型分類鳶尾花75
4.8.1 使用LR分類精簡(jiǎn)版iris數(shù)據(jù)集75
4.8.2 統(tǒng)計(jì)準(zhǔn)確率76
4.8.3 構(gòu)造簡(jiǎn)化版iris數(shù)據(jù)集77
4.8.4 劃分函數(shù)train_test_split()78
4.8.5 劃分iris數(shù)據(jù)集79
4.8.6 使用對(duì)數(shù)幾率回歸模型分類iris數(shù)據(jù)集80
4.9 小結(jié)與補(bǔ)充說明80
第5章 使用TensorFlow實(shí)現(xiàn)對(duì)數(shù)幾率回歸82
5.1 深入LR參數(shù)更新82
5.1.1 改進(jìn)LogisticRegression類的update_weights()方法82
5.1.2 改進(jìn)LogisticRegression類的fit()方法83
5.1.3 使用LR分類鳶尾花數(shù)據(jù)集并查看日志84
5.2 使用TensorFlow自動(dòng)求梯度87
5.2.1 極簡(jiǎn)體驗(yàn)TensorFlow自動(dòng)求梯度87
5.2.2 NumPy數(shù)組的形狀與維數(shù)89
5.2.3 使用TensorFlow計(jì)算矩陣乘積90
5.2.4 使用TensorFlow計(jì)算LR模型的激活值90
5.2.5 使用代碼定義LR模型的損失函數(shù)92
5.2.6 使用TensorFlow求LR模型的損失函數(shù)對(duì)激活值的梯度93
5.2.7 手動(dòng)計(jì)算LR模型的損失函數(shù)對(duì)權(quán)值的梯度93
5.2.8 使用TensorFlow求LR模型的損失函數(shù)對(duì)參數(shù)的梯度94
5.3 使用自動(dòng)求梯度實(shí)現(xiàn)LR97
5.3.1 更新TensorFlow變量97
5.3.2 實(shí)現(xiàn)LogisticRegressionV2類98
5.3.3 使用LogisticRegressionV2分類精簡(jiǎn)版iris101
5.3.4 極簡(jiǎn)體驗(yàn)?zāi)P驼{(diào)參102
5.4 使用Sequential實(shí)現(xiàn)LR102
5.5 小結(jié)與補(bǔ)充說明106
第6章 LR圖像分類107
6.1 簡(jiǎn)化版MNIST數(shù)據(jù)集107
6.1.1 生成索引數(shù)組108
6.1.2 NumPy數(shù)組切片(取元素)110
6.1.3 數(shù)據(jù)探查111
6.1.4 使用np.concatenate()合并數(shù)組113
6.1.5 構(gòu)建簡(jiǎn)化版MNIST數(shù)據(jù)集115
6.2 LR分類簡(jiǎn)化版MNIST116
6.2.1 數(shù)據(jù)預(yù)處理之歸一化116
6.2.2 數(shù)據(jù)預(yù)處理之扁平化117
6.2.3 LR分類簡(jiǎn)化版MNIST119
6.2.4 修復(fù)LogisticRegression類121
6.2.5 測(cè)試修復(fù)123
6.3 小批量梯度下降124
6.3.1 向量化編程124
6.3.2 構(gòu)造小批量樣本125
6.3.3 計(jì)算LR損失函數(shù)關(guān)于線性模型的導(dǎo)數(shù)dz126
6.3.4 計(jì)算LR損失函數(shù)關(guān)于權(quán)值向量的導(dǎo)數(shù)dw128
6.3.5 計(jì)算LR損失函數(shù)關(guān)于偏置量的導(dǎo)數(shù)db130
6.3.6 小批量模型訓(xùn)練133
6.3.7 小批量LR分類簡(jiǎn)化版MNIST134
6.3.8 查看模型預(yù)測(cè)失誤的樣本136
6.4 新問題與修復(fù)137
6.4.1 發(fā)現(xiàn)問題與復(fù)現(xiàn)問題138
6.4.2 原因分析及解決方法138
6.4.3 向量化predict()方法140
6.4.4 修復(fù)LogisticRegression類141
6.4.5 評(píng)估模型方法evaluate()142
6.4.6 提前終止控制開關(guān)143
6.4.7 提前終止策略方法(選修)145
6.4.8 重構(gòu)LogisticRegression類146
6.5 小結(jié)與補(bǔ)充說明148
第7章 代碼重構(gòu)與計(jì)算圖簡(jiǎn)介150
7.1 構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本流程150
7.1.1 模型架構(gòu)及超參數(shù)150
7.1.2 初始化模型參數(shù)152
7.1.3 前向傳播、反向傳播與計(jì)算圖152
7.2 重構(gòu)LogisticRegression類153
7.2.1 重新構(gòu)造簡(jiǎn)化版MNIST數(shù)據(jù)集153
7.2.2 探查簡(jiǎn)化版MNIST數(shù)據(jù)集154
7.2.3 LR分類簡(jiǎn)化版MNIST155
7.2.4 重構(gòu)LogisticRegression類156
7.2.5 測(cè)試重構(gòu)版LogisticRegression類157
7.3 使用TensorFlow定義并訓(xùn)練模型158
7.4 體驗(yàn)TensorBoard161
7.5 隨機(jī)化161
7.5.1 使用np.random.random()生成隨機(jī)數(shù)162
7.5.2 隨機(jī)初始化權(quán)值向量162
7.5.3 使用np.random.shuffle()混淆數(shù)組164
7.5.4 隨機(jī)訪問樣本165
7.5.5 隨機(jī)梯度下降166
7.5.6 小批量隨機(jī)梯度下降168
7.6 小結(jié)與補(bǔ)充說明168
第8章 兩層神經(jīng)網(wǎng)絡(luò)170
8.1 單層神經(jīng)網(wǎng)絡(luò)之局限性170
8.1.1 線性可分170
8.1.2 線性不可分170
8.2 兩層神經(jīng)網(wǎng)絡(luò)前向傳播172
8.2.1 部分記號(hào)說明172
8.2.2 矩陣乘積的代碼實(shí)現(xiàn)174
8.2.3 隱層前向傳播的數(shù)學(xué)表達(dá)175
8.2.4 隱層前向傳播的代碼實(shí)現(xiàn)176
8.2.5 輸出層前向傳播的數(shù)學(xué)表達(dá)178
8.2.6 輸出層前向傳播的代碼實(shí)現(xiàn)179
8.3 兩層神經(jīng)網(wǎng)絡(luò)反向傳播180
8.3.1 輸出層反向傳播的數(shù)學(xué)表達(dá)181
8.3.2 輸出層反向傳播的代碼實(shí)現(xiàn)182
8.3.3 隱層反向傳播的數(shù)學(xué)表達(dá)183
8.3.4 隱層反向傳播的代碼實(shí)現(xiàn)184
8.4 兩層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)異或運(yùn)算185
8.5 實(shí)現(xiàn)MLPClassifier類187
8.5.1 構(gòu)造器__init__()188
8.5.2 參數(shù)初始化initialize_params()188
8.5.3 前向傳播forward_propagation()189
8.5.4 反向傳播backward_propagation()189
8.5.5 參數(shù)更新update_params()190
8.5.6 模型輸出190
8.5.7 模型啟動(dòng)訓(xùn)練fit()191
8.5.8 測(cè)試MLPClassifier類192
8.6 小結(jié)與補(bǔ)充說明193
第9章 多層神經(jīng)網(wǎng)絡(luò)194
9.1 多層感知機(jī)部分記號(hào)說明194
9.2 重構(gòu)多層神經(jīng)網(wǎng)絡(luò)195
9.2.1 參數(shù)初始化195
9.2.2 前向傳播197
9.2.3 反向傳播參數(shù)更新198
9.2.4 測(cè)試新版本200
9.3 重構(gòu)MLPClassifier類201
9.3.1 構(gòu)造器__init__()201
9.3.2 參數(shù)初始化initialize_params()202
9.3.3 前向傳播forward_propagation()202
9.3.4 反向傳播參數(shù)更新203
9.3.5 模型輸出204
9.3.6 模型啟動(dòng)訓(xùn)練fit()205
9.3.7 測(cè)試MLPClassifier類206
9.3.8 修復(fù)MLPClassifier類206
9.3.9 測(cè)試修復(fù)208
9.4 使用TensorFlow實(shí)現(xiàn)多層神經(jīng)網(wǎng)絡(luò)209
9.4.1 使用TensorFlow解決異或問題209
9.4.2 使用TensorFlow驗(yàn)證MLPClassifier類210
9.5 使用MLPClassifier類實(shí)現(xiàn)對(duì)數(shù)幾率回歸213
9.5.1 使用LR實(shí)現(xiàn)邏輯與函數(shù)213
9.5.2 使用MLPClassifier類實(shí)現(xiàn)對(duì)數(shù)幾率回歸214
9.5.3 使用TensorFlow驗(yàn)證代碼實(shí)現(xiàn)215
9.6 小結(jié)與補(bǔ)充說明216
附錄 標(biāo)量、向量與矩陣簡(jiǎn)介218
后記222