《自己動手寫神經網路》是一本書,2017年出版。
基本介紹
- 中文名:自己動手寫神經網路
- 作者:葛一鳴
- 出版社:人民郵電出版社
- ISBN:9787115462015
內容簡介,作者簡介,目錄,
內容簡介
《自己動手寫神經網路》講解通俗易懂,使用簡單的語言描述人工神經網路的原理,並力求以具體實現與套用為導向,除了理論介紹外,每一章節的套用和實踐都有具體的實例實現,讓讀者達到學以致用。《自己動手寫神經網路》分為11章,主要內容為:簡單的人工神經網路模型和理論套用;介紹了一個基於Java的人工神經網路框架Neuroph;介紹了基於Neuroph開發一個簡單的人工神經網路系統—感知機;介紹了ADALINE網路以及使用Neuroph實現ADALINE神經網路;介紹了BP神經網路的基本原理和具體實現;介紹了BP神經網路的具體實踐套用;介紹了Hopfield網路的原理、實踐和套用;介紹了雙向聯想網路BAM的原理、實踐和套用;介紹了競爭學習網路,特別是SOM網路以及相關算法與實現;介紹了PCA方法以及與PCA方法等價的PCA神經網路。 《自己動手寫神經網路》適合以下類型的讀者:對神經網路感興趣,期望可以初步了解神經網路原理的讀者;有一定編程經驗,期望學習和掌握神經網路的程式設計師;期望對神經網路進行實際套用的工程人員;任何一名神經網路愛好者。
作者簡介
葛一鳴,浙江工業大學碩士,國家認證系統分析師,Oracle OCP。長期從事Java軟體開發工作,對Java技術、人工智慧、神經網路、數據挖掘等技術有濃厚興趣。 現著有《自己動手寫神經網路》《Java程式性能最佳化》《實戰Java虛擬機》《實戰Java高並發程式設計》。
目錄
第1章 人工神經網路概述 1
1.1 人工智慧與神經網路簡史 1
1.1.1 人工智慧的誕生:1943~1956年 2
1.1.2 黃金髮展期:1956~1974年 3
1.1.3 第一次低谷期:1974~1980年 4
1.1.4 繁榮期:1980~1987年 5
1.1.5 第二次低谷期:1987~1993年 5
1.1.6 再次崛起:1993年至今 6
1.2 生物學研究對神經網路的影響 6
1.3 大數據對人工智慧的影響 8
1.4 計算機硬體發展對人工智慧的影響 9
1.5 計算機軟體發展對人工智慧的影響 9
1.6 人工智慧的廣泛套用 10
第2章 人工神經元模型與感知機 12
2.1 人工神經元組成要素 12
2.1.1 人工神經元的基本結構 12
2.1.2 傳輸函式類型 13
2.2 感知機 15
2.2.1 使用感知機識別水果 15
2.2.2 讓感知機記憶邏輯與 17
2.2.3 感知機的學習算法 18
2.3 總結 20
第3章 神經網路框架Neuroph介紹 21
3.1 Neuroph是什麼 21
3.2 Neuroph系統的構成 22
3.3 Neuroph Studio的功能展示 22
3.3.1 使用Neuroph Studio構造感知機處理邏輯與 23
3.3.2 使用Neuroph Studio進行動物分類實驗 28
3.4 Neuroph Library架構分析 34
3.4.1 Neuroph Library核心架構 35
3.4.2 Neuron神經元 35
3.4.3 Layer層 36
3.4.4 NeuralNetwork神經網路 37
3.4.5 LearningRule學習算法 37
3.4.6 DataSet和DataSetRow 38
3.5 Neuroph開發環境搭建 38
3.5.1 基礎平台——Java介紹以及安裝 39
3.5.2 包管理工具——Maven安裝 39
3.5.3 開發工具——Eclipse安裝 40
3.6 總結 41
第4章 使用Java實現感知機及其套用 42
4.1 第一個Neuroph程式——使用感知機記憶邏輯與 42
4.1.1 創建感知機網路 42
4.1.2 理解輸入神經元InputNeuron 45
4.1.3 理解貝葉斯神經元BiasNeuron 45
4.1.4 step傳輸函式是如何實現的 46
4.2 讓感知機理解坐標系統 47
4.2.1 感知機網路的設計 47
4.2.2 感知機網路的實現 47
4.3 感知機學習算法與Java實現 49
4.3.1 感知機學習規則的實現 50
4.3.2 一個自學習的感知機實現——SimplePerceptron 51
4.3.3 小試牛刀——SimplePerceptron學習邏輯與 52
4.3.4 訓練何時停止 53
4.4 再看坐標點位置識別 55
4.5 感知機的極限——異或問題 57
4.6 總結 58
第5章 ADALINE網路及其套用 59
5.1 ADALINE網路與LMS算法 59
5.2 ADALINE網路的Java實現 60
5.3 使用ADALINE網路識別數字 62
5.3.1 印刷體數字識別問題概述 62
5.3.2 代碼實現 63
5.3.3 加入噪點後再嘗試 66
5.4 總結 67
第6章 多層感知機和BP學習算法 68
6.1 多層感知機的結構與簡單實現 68
6.1.1 多層感知機結構的提出 68
6.1.2 定義多層感知機處理異或問題 69
6.1.3 多層感知機的簡單實現 71
6.2 多層感知機學習算法——BP學習算法 74
6.2.1 BP學習算法理論介紹 74
6.2.2 BP學習算法與BP神經網路的實現 77
6.3 BP神經網路細節最佳化 84
6.3.1 隨機化權值的方式 84
6.3.2 Sigmoid函式導數的探討 86
6.4 帶著算法重回異或問題 87
6.5 總結 89
第7章 BP神經網路的案例 90
7.1 奇偶性判別問題 90
7.1.1 問題描述 90
7.1.2 代碼實現 90
7.2 函式逼近 94
7.2.1 問題描述 94
7.2.2 代碼實現 94
7.3 動物分類 99
7.3.1 問題描述 99
7.3.2 問題分析 100
7.3.3 代碼實現 102
7.4 簡單的語音識別 104
7.4.1 問題描述 104
7.4.2 代碼實現 104
7.5 MNIST手寫體識別 106
7.5.1 問題描述 106
7.5.2 問題分析 108
7.5.3 代碼實現 108
7.6 總結 112
第8章 Hopfield神經網路 113
8.1 Hopfield神經網路的結構和原理 113
8.1.1 Hopfield網路的結構 113
8.1.2 網路吸引子 114
8.1.3 網路權值的設計 115
8.2 網路的存儲容量 117
8.3 Hopfield神經網路的Java實現 118
8.3.1 Hopfield網路構造函式 118
8.3.2 Hopfield網路的神經及其特點 119
8.3.3 Hopfield網路學習算法 120
8.4 Hopfield網路還原帶有噪點的字元 121
8.5 Hopfield網路的自聯想案例 123
8.6 總結 126
第9章 BAM雙向聯想記憶網路 127
9.1 BAM網路的結構與原理 127
9.2 BAM網路的學習算法 128
9.3 使用Java實現BAM網路 129
9.3.1 BAM網路的靜態結構 129
9.3.2 BAM網路學習算法 130
9.3.3 BAM網路的運行 131
9.4 BAM網路的套用 133
9.4.1 場景描述——人名與電話 133
9.4.2 數據編碼設計 134
9.4.3 具體實現 136
9.5 總結 140
第10章 競爭學習網路 141
10.1 競爭學習的基本原理 141
10.1.1 向量的相似性 142
10.1.2 競爭學習規則 143
10.2 自組織映射網路SOM的原理 144
10.2.1 SOM網路的生物學意義 144
10.2.2 SOM網路的結構 144
10.2.3 SOM網路的運行原理 145
10.2.4 有關初始化權重的問題 146
10.3 SOM網路的Java實現 147
10.3.1 SOM網路拓撲結構的實現 147
10.3.2 SOM網路的初始權值設定 150
10.3.3 Kohonen算法的實現 153
10.4 SOM網路的套用 157
10.4.1 使用SOM網路進行動物聚類 158
10.4.2 使用SOM網路進行城市聚類 161
10.5 總結 164
第11章 PCA神經網路 165
11.1 PCA方法概述 165
11.1.1 PCA方法數學背景 166
11.1.2 PCA計算示例 167
11.2 PCA神經網路學習算法 170
11.2.1 Oja算法 170
11.2.2 Sanger算法 171
11.3 基於Neuroph實現PCA網路 172
11.3.1 Oja算法的實現 172
11.3.2 Sanger算法的實現 177
11.4 使用PCA網路預處理MNIST手寫體數據集 178
11.5 總結 181。