輕鬆簡單的好書,讓你從入門到高手,掌握機器學習及神經網路的數學、理論與實作!
▌使用Jupyter Notebook
全書所附的程式碼完整簡單,更棒的是用Jupyter Notebook開發,初學者可以在一個網頁上寫程式、執行、查看結果,還可以作筆記,圖形介面和有條不紊的程式碼管理,比起直接在命令行零零散散地輸入Python程式碼,更能激發學習的動力。
▌搭配範例詳細解說
完善可運行的程式碼、豐富詳細的範例、直觀的資料圖型、細緻具體的公式推導、程式碼實作,彷彿一位好的老師在親手教我學習演算法。
▌程式結合數學公式,一看就懂
本書繼承了大部分日文技術書的傳統特色,對沒有學過Python和需要複習數學基礎的初學者是非常易懂的,內容安排循序漸進,推導過程完整清楚,圖文並茂,理論與實作相結合。一行行的程式碼與一行行的公式一一對應,讓原本晦澀難懂的公式變得簡明流暢起來。
你一定可以運用這些方法看懂了原本看不懂的大學經典教材,再加上TensorFlow和最好用的Keras,快點搭上本書的特快車趕上機器學習人工智慧的新浪潮吧!
作者簡介:
伊藤真
日本栃木縣人,目前居住在神奈川縣。
2000年獲得日本東北大學大學院資訊科學博士學位,研究內容為老鼠導航行為的數理模型。2004年~2016年在沖繩科學技術大學院大學擔任神經計算單元實驗小組負責人,主要研究如何通過強化學習模型解釋老鼠的選擇行為和腦活動。
2017年入職Progress Technologies株式會社,研究人工智慧的產業應用。
興趣是用瓦楞紙板做手工藝品。
作者序
記得在上大學時,物理課的教材非常難懂,我非常煩惱。例如分析力學、量子力學、電磁學、熱力學和統計力學等,雖然使用的教材可以說都是名著等級的,卻不像高中教材那樣通俗易懂。
當時我非常希望能在學術研究上有所作為,所以絞盡腦汁地去了解那些知識,但進展並不順利,於是慢慢地就放棄了,開始每天沉浸在社團活動和兼職工作中。這當然也是因為自己還不夠努力,但要說為什麼會變成這樣,現在想來有兩個原因。
第一個原因是我在上大學時沒有掌握正確的學習方法。考上所究所之後,在神經網路和統計學相關的討論課上,在學長和導師的嚴格要求下,我開始不斷地去深究數學式。為了了解那些式子是如何推導出來的,除了自己認真思考之外,我還會向他人請教,或查詢相關的書和文獻。總之,我會在下周上討論課之前一直研究那些式子。我發現透過堅持不懈地努力,一開始不了解的數學式後來也基本上能了解了。不要思考一小時就放棄,而要用一周的時間去研究——我認為,要想真正了解數學式,就必須有這種覺悟。
第二個原因是大學時的教材跟我當時的水準不符合。當時我一直認為了解不了教材是自己能力不夠,但現在回想起來,我意識到那是錯誤的想法。在沒有儲備足夠的基礎知識的情況下就去讀高難度的專業書,當然難以了解其中的內容。也就是說,要想讀懂大學教材,應該先去讀一些過渡性的書。不執著於難懂的書,先找到符合自己當前水準的書才是正道。
現在深度學習備受矚目,機器學習的熱潮已經到來。在這一背景下,市面上出現了很多針對初學者的書,這些書往往只包含機器學習的基本數學式。與此同時,也有很多非常好的專業書。但遺憾的是,印象中很少有適合初學者在學習專業書之前閱讀的書。這時我剛好獲得了一個寫書的機會。於是,我決定為那些想要透過數學式透徹了解機器學習的讀者寫一本適合在學習專業書之前閱讀的書。
本書首先整理了最基礎的數學知識,然後盡可能簡潔地介紹了機器學習的相關問題、數學式及其推導過程,並將透過數學式了解機器學習的想法貫穿全書。因此,透過閱讀本書,讀者應該能掌握足以閱讀專業書的基礎知識。但限於本書的篇幅,有些地方可能解釋得不夠完善,或不容易了解,如果這時大家還能堅持不懈地讀下去,我將倍感榮幸。
這次有幸出版了本書的第2 版。在第2 版中,我以新版的Python 3.7.3進行了修訂,並修改了難以了解的敘述,更新了一部分圖表和數學式,還新增了第10 章,簡短地整理了本書要點。
最後,向那些對第1 版發表評價的讀者,以及對第2 版列出審讀意見的各位表示衷心的感謝。
伊藤真
記得在上大學時,物理課的教材非常難懂,我非常煩惱。例如分析力學、量子力學、電磁學、熱力學和統計力學等,雖然使用的教材可以說都是名著等級的,卻不像高中教材那樣通俗易懂。
當時我非常希望能在學術研究上有所作為,所以絞盡腦汁地去了解那些知識,但進展並不順利,於是慢慢地就放棄了,開始每天沉浸在社團活動和兼職工作中。這當然也是因為自己還不夠努力,但要說為什麼會變成這樣,現在想來有兩個原因。
第一個原因是我在上大學時沒有掌握正確的學習方法。考上所究所之後,在神經網路和統計學相關的討論課上,在學長和導師的...
目錄
第1 章| 學習前的準備
1.1 關於機器學習
1.2 安裝Python
1.3 Jupyter Notebook
1.4 安裝Keras 和TensorFlow
第2 章| Python 基礎知識
2.1 四則運算
2.2 變數
2.3 類型
2.4 print 敘述
2.5 list(陣列變數)
2.6 tuple(陣列)
2.7 if 敘述
2.8 for 敘述
2.9 向量
2.10 矩陣
2.11 矩陣的四則運算
2.12 切片
2.13 替換滿足條件的資料
2.14 help
2.15 函數
2.16 保存檔案
第3 章| 資料視覺化
3.1 繪製二維圖形
3.2 繪製三維圖形
第4 章| 機器學習中的數學
4.1 向量
4.2 求和符號
4.3 累乘符號
4.4 導數
4.5 偏導數
4.6 矩陣
4.7 指數函數和對數函數
第5 章| 監督學習:回歸
5.1 一維輸入的直線模型
5.2 二維輸入的平面模型
5.3 D 維線性回歸模型
5.4 線性基底函數模型
5.5 過擬合問題
5.6 新模型的生成
5.7 模型的選擇
5.8 小結
第6 章| 監督學習:分類
6.1 一維輸入的二元分類
6.2 二維輸入的二元分類
6.3 二維輸入的三元分類
第7 章| 神經網路與深度學習
7.1 神經元模型
7.2 神經網路模型
7.3 使用Keras 實現神經網路模型
第8 章| 神經網路與深度學習的應用(手寫數字辨識)
8.1 MINST 資料集
8.2 二層前饋神經網路模型
8.3 ReLU 啟動函數
8.4 空間篩檢程式
8.5 卷積神經網路
8.6 池化
8.7 Dropout
8.8 融合了各種特性的MNIST 辨識網路模型
第9 章| 無監督學習
9.1 二維輸入資料
9.2 K-means 演算法
9.3 混合高斯模型
第10 章| 本書小結
第1 章| 學習前的準備
1.1 關於機器學習
1.2 安裝Python
1.3 Jupyter Notebook
1.4 安裝Keras 和TensorFlow
第2 章| Python 基礎知識
2.1 四則運算
2.2 變數
2.3 類型
2.4 print 敘述
2.5 list(陣列變數)
2.6 tuple(陣列)
2.7 if 敘述
2.8 for 敘述
2.9 向量
2.10 矩陣
2.11 矩陣的四則運算
2.12 切片
2.13 替換滿足條件的資料
2.14 help
2.15 函數
2.16 保存檔案
第3 章| 資料視覺化
3.1 繪製二維圖形
3.2 繪製三維圖形
第4 章| 機器學習中的數學
4.1 向量
4.2 求和符號
4.3 累乘...