從零開始構(gòu)建深度前饋神經(jīng)網(wǎng)絡(luò)(Python+TensorFlow 2.x)
定 價:69.8 元
叢書名:人工智能與大數(shù)據(jù)技術(shù)大講堂
- 作者:張光華
- 出版時間:2021/12/1
- ISBN:9787111696155
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP18
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
2016年,一只阿法狗(AlphaGo)為全世界打開了一條窄窄的門縫,通往未來之路就此展現(xiàn)。
通過超強(qiáng)硬件和大量的數(shù)據(jù)積累,人工智能浪潮第三次興起。借助人工智能技術(shù),公安部門可以輕松抓捕潛逃多年的罪犯,“AI換臉”已經(jīng)成為普通用戶的娛樂方式之一,智慧城市、自動駕駛開始在多個城市有試點(diǎn)……
GPT-3、Switch Transformer開啟了新的時代,而智源研究院的悟道2.0參量則高達(dá)1.75萬億。訓(xùn)練有素的結(jié)構(gòu)生物學(xué)家花費(fèi)上千萬美元?dú)v時多年的研究結(jié)果,AlphaFold v2.0在朝夕之間便完成預(yù)測。
今天,主動擁抱新變化,積極學(xué)習(xí)新知識,愈發(fā)顯得重要。很多人積極投入熱情、時間和金錢后,沒能堅持多久就中斷了學(xué)習(xí)。也有很多同學(xué)對此表示觀望甚至放棄,覺得憑自己的基礎(chǔ)不足以把握這次機(jī)會。
誠然,僅憑一本書很難幫助普通讀者深刻理解并熟練掌握深度學(xué)習(xí)中的全部知識,因此“AI精研社”規(guī)劃了一個系列圖書,給出完整的解決方案,希望能幫助讀者循序漸進(jìn)、平滑而高效地成長為合格的人工智能算法實(shí)踐者(practitioners)。
本書是“人工智能與大數(shù)據(jù)技術(shù)大講堂”系列圖書的第2部。本書從體驗(yàn)手寫數(shù)字(k近鄰算法)識別開始,循序漸進(jìn)地不斷加深讀者對神經(jīng)網(wǎng)絡(luò)模型的理解,進(jìn)而可以設(shè)計并實(shí)現(xiàn)自己的模型。另外,本書通過Python+NumPy從零開始構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,強(qiáng)化讀者對算法思想的理解,并通過TensorFlow構(gòu)建模型來驗(yàn)證讀者親手從零構(gòu)建的版本。
前饋神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的重要知識,其核心思想是反向傳播與梯度下降。本書從極易理解的示例開始,逐漸深入,幫助讀者充分理解并熟練掌握反向傳播與梯度下降算法,為后續(xù)學(xué)習(xí)打下堅實(shí)的基礎(chǔ)。
本書延續(xù)理論與實(shí)踐并重的風(fēng)格,先以圖文方式講解算法思想,再以Python+NumPy實(shí)現(xiàn)算法,然后再給出TensorFlow實(shí)現(xiàn)的版本,幫助讀者不斷加深對核心的算法理解,同時提升實(shí)際動手能力,從而鍛煉將算法思想轉(zhuǎn)化為程序代碼的能力。
圖書+視頻+GitHub/Gitee+微信公眾號+學(xué)習(xí)管理平臺+群+專業(yè)助教立體化學(xué)習(xí)解決方案
讓數(shù)學(xué)公式生動易懂,讓算法描述簡潔、清晰
讓公式與代碼一一對應(yīng),讓理論與實(shí)踐相互促進(jìn)
將算法轉(zhuǎn)換為程序,徒手搭建與TensorFlow搭建精準(zhǔn)匹配
前沿:采用Python+TensorFlow 2.6.0編寫,幫助讀者快速掌握前沿的深度學(xué)習(xí)框架。
透徹:先以通俗易懂的文字講解神經(jīng)網(wǎng)絡(luò)的核心算法思想,再以純Python代碼加深讀者對算法思想的理解,通過文字、數(shù)學(xué)表達(dá)和代碼三者對應(yīng)的方式幫助讀者理解。
原創(chuàng):通過大量的原創(chuàng)示例,對核心知識點(diǎn)進(jìn)行多角度詳解,幫助讀者透徹理解。
完整:構(gòu)建完整的學(xué)習(xí)資源,并通過全路徑學(xué)習(xí)計劃以及線上和線下互動,形成完整的立體化學(xué)習(xí)解決方案。
平滑:對理解和構(gòu)建前饋神經(jīng)網(wǎng)絡(luò)所需要的核心知識點(diǎn)進(jìn)行精心設(shè)計,使得整個學(xué)習(xí)過程平滑而高效。
實(shí)踐:先以純Python代碼實(shí)現(xiàn)算法,再給出TensorFlow實(shí)現(xiàn),理論與實(shí)踐并重,幫助讀者提高實(shí)際動手能力。
為什么要寫這本書
學(xué)習(xí)本應(yīng)該是一件輕松快樂的事,因?yàn)樘剿髋c解釋是人類的天性。
專業(yè)學(xué)習(xí)通常是投入產(chǎn)出比極高的一件事,尤其是在當(dāng)代社會,真才實(shí)干者通?梢詮纳鐣@得合理而豐厚的回報。因此,筆者希望能幫助初學(xué)者更高效地入門專業(yè)領(lǐng)域,在盡量精簡安排知識點(diǎn)的同時,避免晦澀難懂的語言打擊初學(xué)者的積極性。
筆者希望建立初學(xué)者關(guān)懷的意識,設(shè)身處地地為初學(xué)者考慮,為初學(xué)者量身定制并優(yōu)化知識體系,而不是簡單地搬運(yùn)官方文檔。
本書嘗試介紹一個新的學(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代碼加深讀者對算法思想的理解,通過文字描述、數(shù)學(xué)表達(dá)和代碼實(shí)現(xiàn)三者對應(yīng)的方式幫助讀者理解核心算法思想的重要細(xì)節(jié)。
* 原創(chuàng):通過大量原創(chuàng)示例,對基礎(chǔ)且重要的核心知識點(diǎn)進(jìn)行多角度的詳細(xì)講解,幫助讀者透徹理解精要知識點(diǎn),從而建立學(xué)習(xí)信心,為后續(xù)學(xué)習(xí)打下堅實(shí)的基礎(chǔ)。
* 完整:通過“圖書+視頻+GitHub/gitee+微信公眾號+學(xué)習(xí)管理平臺+群+專業(yè)助教”的方式,構(gòu)建完整的學(xué)習(xí)資源,并通過全路徑學(xué)習(xí)計劃與線上線下互動,形成完整的學(xué)習(xí)解決方案。
* 平滑:專業(yè)知識學(xué)習(xí)的過程理應(yīng)是循序漸進(jìn)的。本書的第3章在強(qiáng)化第2章知識點(diǎn)的同時平滑地引入新的知識點(diǎn),第4章在強(qiáng)化第2章和第3章知識點(diǎn)的同時再引入新的概念,以此類推。本書對理解并構(gòu)建前饋神經(jīng)網(wǎng)絡(luò)所需要的核心知識點(diǎn)進(jìn)行精心設(shè)計,使得整個學(xué)習(xí)過程平滑而高效。
* 實(shí)踐:幫助讀者逐步加深對算法思想理解的同時,通過代碼實(shí)現(xiàn)算法思想,將理論轉(zhuǎn)化為可以運(yùn)行的程序。本書先以純Python代碼實(shí)現(xiàn)算法,再給出TensorFlow的實(shí)現(xiàn)版本,理論與實(shí)踐并重,從而幫助讀者提高實(shí)際動手能力。
本書內(nèi)容
本書共9章,下面簡要介紹各章內(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)對數(shù)幾率回歸模型,進(jìn)一步加深讀者對神經(jīng)網(wǎng)絡(luò)算法思想的理解,同時幫助他們初步掌握TensorFlow的相關(guān)API。
第6章詳細(xì)講解數(shù)據(jù)預(yù)處理和小批量等行之有效的深度學(xué)習(xí)實(shí)踐。
第7章在歸納總結(jié)第3~6章相關(guān)內(nèi)容的基礎(chǔ)上,引入計算圖這一重要工具,并通過TensorBoard查看TensorFlow的計算圖實(shí)現(xiàn)。
第8章介紹如何將單層神經(jīng)網(wǎng)絡(luò)平滑地擴(kuò)展為兩層神經(jīng)網(wǎng)絡(luò)。
第9章在第8章的基礎(chǔ)上進(jìn)一步介紹如何將兩層神經(jīng)網(wǎng)絡(luò)擴(kuò)展為L層神經(jīng)網(wǎng)絡(luò)。
附錄對神經(jīng)網(wǎng)絡(luò)算法涉及的線性代數(shù)的相關(guān)知識進(jìn)行簡單的介紹,并提供相應(yīng)的示例代碼。
讀者對象
本書假定讀者具備一定的Python編程基礎(chǔ)與數(shù)學(xué)基礎(chǔ),主要適合以下人員閱讀:
* 對人工智能和機(jī)器學(xué)習(xí)感興趣的人員;
* 對深度學(xué)習(xí)和計算機(jī)視覺感興趣的人員;
* 對大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學(xué)感興趣的人員;
* 講授人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學(xué)的老師;
* 希望提升自己未來競爭力的人員。
本書對知識結(jié)構(gòu)進(jìn)行科學(xué)和專業(yè)的設(shè)計,即使部分讀者未能熟練掌握高等數(shù)學(xué)的相關(guān)基礎(chǔ)知識,也只影響部分章節(jié)的閱讀,而并不會影響他們對算法思想的理解與代碼的實(shí)現(xiàn)。
若讀者對Python編程尚不熟悉,可以參考“人工智能與大數(shù)據(jù)技術(shù)大講堂”叢書的第1部《人工智能極簡編程入門(基于Python)》,或訪問微信公眾號“AI精研社”獲得幫助。
如何使用本書
本書既可作為各院校課堂教學(xué)的教材,也可作為讀者自學(xué)使用的參考書。本書對章節(jié)順序與知識點(diǎn)的依賴關(guān)系進(jìn)行了精心設(shè)計,若讀者作為自學(xué)用書,除第1章外,其他各章請按順序進(jìn)行閱讀。
描述算法通常有以下三種方式:
* 自然語言:是日常生活交流中使用的語言,易于理解,可以幫助讀者對算法思想建立初步的理解,但常常無法精準(zhǔn)且簡練地描述算法。
* 數(shù)學(xué)表達(dá):使用預(yù)先約定的一系列記號描述算法,既精準(zhǔn)又簡練,在自然語言的輔助下,可以幫助讀者進(jìn)一步理解并掌握算法思想。
* 代碼實(shí)現(xiàn):將算法思想轉(zhuǎn)換為可以運(yùn)行并輸出預(yù)期結(jié)果的程序代碼,可以幫助讀者深刻理解并熟練掌握算法思想及其重要的細(xì)節(jié)。
從第3章起,建議讀者閱讀完每小節(jié)的內(nèi)容后立即親自動手進(jìn)行大量練習(xí),直至只參考書中的自然語言或數(shù)學(xué)表達(dá)便可自己寫出實(shí)現(xiàn)算法思想的代碼,然后再進(jìn)入下一小節(jié)內(nèi)容的學(xué)習(xí)。
配套資源獲取
本書涉及的配套資源如下:
* 實(shí)例源代碼;
* 配套教學(xué)視頻;
* 人工智能專業(yè)詞匯中英文對照表;
* 本書引用源列表。
讀者可以通過以下兩種途徑獲取本書配套資源:
* 關(guān)注微信公眾號“AI精研社”,然后發(fā)送“DL101”至該公眾號進(jìn)行獲取。
* 在華章公司的網(wǎng)站(www.hzbook.com)上搜索到本書,然后單擊“資料下載”按鈕,即可在本書頁面的右上方找到相關(guān)鏈接進(jìn)行獲取。
教學(xué)服務(wù)
本書非常適合作為高等院校人工智能專業(yè)的教材。為此,售后團(tuán)隊“AI精研社”專門為相關(guān)授課老師提供以下教學(xué)支持:
* 贈送教學(xué)PPT;
* 提供有償?shù)膸熧Y培訓(xùn)。
如果需要進(jìn)一步了解詳情,請關(guān)注“AI精研社”微信公眾號進(jìn)行咨詢,也可以給本書編輯發(fā)送電子郵件(627173439@qq.com)進(jìn)行了解。
售后服務(wù)與勘誤
“AI精研社”為本書提供專業(yè)的售后服務(wù)。讀者可以用手機(jī)掃描下面的二維碼關(guān)注“AI精研社”微信公眾號。
“AI精研社”微信公眾號二維碼
雖然筆者為本書的寫作投入了大量的時間,并對書中的示例代碼進(jìn)行了反復(fù)測試、迭代和改進(jìn),但恐怕依然無法避免少量的錯誤與不當(dāng)。
若讀者發(fā)現(xiàn)本書有錯誤或不當(dāng)之處,請聯(lián)系“AI精研社”進(jìn)行反饋,筆者會及時更改并將勘誤表發(fā)布到GitHub、Gitee和“AI精研社”微信公眾號中。另外,讀者也可以給本書編輯發(fā)送電子郵件(地址見“教學(xué)服務(wù)”模塊)進(jìn)行反饋。
致謝
策劃和寫作本書的過程中,筆者得到了很多前輩和行業(yè)專家的指導(dǎo)、支持與幫助,筆者的家人與諸多好友也為此投入了大量的時間與精力,在此向他們表達(dá)誠摯的謝意!
還要特別感謝賈庸及其家人(小壞、壞媽)的支持與幫助!賈庸以其豐富的技術(shù)管理經(jīng)驗(yàn)保障了本書及其相關(guān)支持系統(tǒng)的進(jìn)度與質(zhì)量。
還要特別感謝歐振旭編輯!他為本書的策劃與運(yùn)營推廣提供了不可或缺的指導(dǎo)與幫助。
還要感謝本書的支持團(tuán)隊和策劃團(tuán)隊,以及技術(shù)、內(nèi)容和教學(xué)服務(wù)團(tuán)隊!
還有很多幕后小伙伴和熱心網(wǎng)友也為本書提出了極有價值的反饋,在此一并表示感謝!
張光華
張光華 博士畢業(yè)于重慶大學(xué),碩士畢業(yè)于中國科學(xué)技術(shù)大學(xué)。山西省“1331工程”大數(shù)據(jù)智能診療產(chǎn)業(yè)學(xué)院負(fù)責(zé)人,山西省工信廳“山西省健康大數(shù)據(jù)AI聯(lián)合實(shí)驗(yàn)室”負(fù)責(zé)人。中國醫(yī)藥教育協(xié)會智能醫(yī)學(xué)專委會委員,中國醫(yī)藥教育協(xié)會智能眼科學(xué)組常委。主要研究方向?yàn)榱孔狱c(diǎn)微型多光譜成像技術(shù)、醫(yī)學(xué)圖像處理和機(jī)器學(xué)習(xí),F(xiàn)已發(fā)表包括醫(yī)學(xué)、圖像處理和機(jī)器學(xué)習(xí)等領(lǐng)域的SCI期刊及國際會議論文多篇,參與多項(xiàng)中國和歐洲科學(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 通過“開始”菜單啟動Jupyter Notebook12
1.4.2 通過命令行啟動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ù)字圖像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識別MNIST27
2.4.1 劃分?jǐn)?shù)據(jù)集27
2.4.2 識別MNIST與模型評估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)造簡化版iris數(shù)據(jù)集39
3.3 感知機(jī)分類精簡版iris42
3.3.1 極簡體驗(yàn)感知機(jī)42
3.3.2 感知機(jī)模型的數(shù)學(xué)表達(dá)44
3.3.3 極簡體驗(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ù)測方法predict()54
3.4.3 更新模型參數(shù)update_params()55
3.4.4 啟動訓(xùn)練fit()56
3.4.5 重構(gòu)Perceptron類58
3.5 小結(jié)與補(bǔ)充說明59
第4章 對數(shù)幾率回歸算法思想與實(shí)現(xiàn)62
4.1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖62
4.2 對數(shù)幾率回歸的數(shù)學(xué)表達(dá)63
4.3 對數(shù)幾率函數(shù)的Python實(shí)現(xiàn)64
4.4 對數(shù)幾率回歸模型的損失函數(shù)66
4.5 梯度下降法的數(shù)學(xué)表達(dá)(選修)69
4.6 梯度下降法的Python實(shí)現(xiàn)72
4.7 對數(shù)幾率回歸模型的Python實(shí)現(xiàn)73
4.8 使用對數(shù)幾率回歸模型分類鳶尾花75
4.8.1 使用LR分類精簡版iris數(shù)據(jù)集75
4.8.2 統(tǒng)計準(zhǔn)確率76
4.8.3 構(gòu)造簡化版iris數(shù)據(jù)集77
4.8.4 劃分函數(shù)train_test_split()78
4.8.5 劃分iris數(shù)據(jù)集79
4.8.6 使用對數(shù)幾率回歸模型分類iris數(shù)據(jù)集80
4.9 小結(jié)與補(bǔ)充說明80
第5章 使用TensorFlow實(shí)現(xiàn)對數(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自動求梯度87
5.2.1 極簡體驗(yàn)TensorFlow自動求梯度87
5.2.2 NumPy數(shù)組的形狀與維數(shù)89
5.2.3 使用TensorFlow計算矩陣乘積90
5.2.4 使用TensorFlow計算LR模型的激活值90
5.2.5 使用代碼定義LR模型的損失函數(shù)92
5.2.6 使用TensorFlow求LR模型的損失函數(shù)對激活值的梯度93
5.2.7 手動計算LR模型的損失函數(shù)對權(quán)值的梯度93
5.2.8 使用TensorFlow求LR模型的損失函數(shù)對參數(shù)的梯度94
5.3 使用自動求梯度實(shí)現(xiàn)LR97
5.3.1 更新TensorFlow變量97
5.3.2 實(shí)現(xiàn)LogisticRegressionV2類98
5.3.3 使用LogisticRegressionV2分類精簡版iris101
5.3.4 極簡體驗(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 簡化版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)建簡化版MNIST數(shù)據(jù)集115
6.2 LR分類簡化版MNIST116
6.2.1 數(shù)據(jù)預(yù)處理之歸一化116
6.2.2 數(shù)據(jù)預(yù)處理之扁平化117
6.2.3 LR分類簡化版MNIST119
6.2.4 修復(fù)LogisticRegression類121
6.2.5 測試修復(fù)123
6.3 小批量梯度下降124
6.3.1 向量化編程124
6.3.2 構(gòu)造小批量樣本125
6.3.3 計算LR損失函數(shù)關(guān)于線性模型的導(dǎo)數(shù)dz126
6.3.4 計算LR損失函數(shù)關(guān)于權(quán)值向量的導(dǎo)數(shù)dw128
6.3.5 計算LR損失函數(shù)關(guān)于偏置量的導(dǎo)數(shù)db130
6.3.6 小批量模型訓(xùn)練133
6.3.7 小批量LR分類簡化版MNIST134
6.3.8 查看模型預(yù)測失誤的樣本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 評估模型方法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)與計算圖簡介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 前向傳播、反向傳播與計算圖152
7.2 重構(gòu)LogisticRegression類153
7.2.1 重新構(gòu)造簡化版MNIST數(shù)據(jù)集153
7.2.2 探查簡化版MNIST數(shù)據(jù)集154
7.2.3 LR分類簡化版MNIST155
7.2.4 重構(gòu)LogisticRegression類156
7.2.5 測試重構(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 部分記號說明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 模型啟動訓(xùn)練fit()191
8.5.8 測試MLPClassifier類192
8.6 小結(jié)與補(bǔ)充說明193
第9章 多層神經(jīng)網(wǎng)絡(luò)194
9.1 多層感知機(jī)部分記號說明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 測試新版本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 模型啟動訓(xùn)練fit()205
9.3.7 測試MLPClassifier類206
9.3.8 修復(fù)MLPClassifier類206
9.3.9 測試修復(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)對數(shù)幾率回歸213
9.5.1 使用LR實(shí)現(xiàn)邏輯與函數(shù)213
9.5.2 使用MLPClassifier類實(shí)現(xiàn)對數(shù)幾率回歸214
9.5.3 使用TensorFlow驗(yàn)證代碼實(shí)現(xiàn)215
9.6 小結(jié)與補(bǔ)充說明216
附錄 標(biāo)量、向量與矩陣簡介218
后記222