神經網絡編程實戰 : Java 語言實現, 2/e (Neural Network Programming with Java, 2/e)

Fabio M. Soares , Alan M. F. Souza 著

買這商品的人也買了...

商品描述

本書由10章構成。

首先,系統、全面地闡述神經網絡相關概念、知識點及特徵。

然後,重點介紹神經網絡學習過程的細節,如何用Java實現神經網絡特性及設計神經網絡架構,如何優化調整神經網絡參數等。

後,介紹一些經典案例。

本書適合神經網絡初學者閱讀,也可以作為智能化軟件開發人員的工具書。

作者簡介

Fabio M. Soares目前是位於巴西北部的帕拉聯邦大學(UFPA)的博士研究生。他幾乎對所有領域的技術都充滿熱情,2004年起開始設計神經網絡解決方案,此後將該技術應用於電信、工業過程控制和建模、水力發電、財務應用、零售客戶分析等多個領域。他的研究課題涉及針對數據驅動模型的監督學習。2017年以來,他主要在鋁冶煉和鐵鎳合金方面進行化學過程建模及控制的研究,同時也作為計算機編程和人工智能課程的講師,從事教學工作。作為一名活躍的研究者,他已經在諸多會議和期刊上發表了數篇論文,參與4本書的編寫。

Alan M. F. Souza是IESAM(Instituto de Estudos Superiores da ia)的一名IT工程師,他擁有帕拉聯邦大學軟件項目管理專業的研究生學歷和工業過程專業(應用計算)的碩士學位。2009年以來,他一直從事神經網絡相關工作,並且自2006年起,他和巴西IT公司共同致力於Java、PHP、SQL及其他編程語言的相關研發工作。他非常熱愛編程和計算智能。目前他是UNAMA的教授,同時也是UFPA的博士研究生。

目錄大綱

譯者序 

作者和審校者簡介 

前言 

第1章 神經網絡入門 1

1.1 探索神經網絡 1

1.2 人工神經網絡 2

1.2.1 神經網絡是如何組織的 3

1.2.2 基本元素—人工神經元 3

1.2.3 賦予神經元生命—激活函數 4

1.2.4 可變參數—權重 5

1.2.5 額外參數—偏置 6

1.2.6 由部分到整體—層 6

1.2.7 神經網絡體系結構 7

1.2.8 單層網絡 7

1.2.9 多層網絡 8

1.2.10 前饋網絡 8

1.2.11 反饋網絡 8

1.3 從無知到認知—學習過程 9

1.4 開始編程—神經網絡實踐 10

1.5 神經元類 12

1.6 NeuralLayer類 14

1.7 ActivationFunction接口 15

1.8 神經網絡類 15

1.9 運行程序 17

1.10 本章小結 19

第2章

神經網絡學習 20

2.1 神經網絡的學習能力 21

2.2 學習模式 22

2.2.1 監督學習 22

2.2.2 無監督學習 22

2.3 學習過程 23

2.3.1 尋找損失函數最優下降方向 24

2.3.2 在學習過程中更新權重 25

2.3.3 計算損失函數 25

2.3.4 一般誤差和總體誤差 27

2.3.5 神經網絡的迭代學習什麼時候停止比較好 27

2.4 學習算法示例 28

2.4.1 δ規則 29

2.4.2 學習率 30

2.4.3 實現δ規則 30

2.4.4 δ規則學習的核心—train和calcNewWeight方法 31

2.4.5 另一種學習算法—Hebbian學習 34

2.4.6 學習機 35

2.5 在實踐中理解學習過程 37

2.6 測試 41

2.7 本章小結 43

第3章 感知機和監督學習 44

3.1 監督學習—訓練神經網絡 45

3.1.1 分類—尋找合適的類別 45

3.1.2 回歸—將實際輸入映射到輸出 46

3.2 一個基本的神經結構—感知機 48

3.2.1 應用和限制 49

3.2.2 線性可分 49

3.2.3 “異或”問題 50

3.3 多層感知機 52

3.3.1 MLP屬性 52

3.3.2 MLP權重 53

3.3.3 遞歸MLP 54

3.3.4 編碼實現MLP 54

3.4 MLP學習 55

3.4.1 反向傳播算法 56

3.4.2 動量項 58

3.4.3 編碼實現反向傳播 58

3.4.4 Levenberg-Marquardt算法 62

3.4.5 編碼實現基於矩陣代數的Levenberg-Marquardt算法 64

3.4.6 極限學習機 66

3.5 實例1—基於δ規則和反向​​傳播的“異或”問題 69

3.6 實例2—預測入學狀態 72

3.7 本章小結 75

第4章 自組織映射 76

4.1 無監督神經網絡 76

4.2 無監督學習算法 77

4.2.1 競爭學習 78

4.2.2 競爭層 80

4.3 Kohonen自組織映射 82

4.3.1 將神經網絡代碼擴展至Kohonen 83

4.3.2 零維SOM 84

4.3.3 一維SOM 84

4.3.4 二維SOM 85

4.3.5 2D競爭層 87

4.3.6 SOM學習算法 89

4.3.7 鄰近神經元的影響—鄰域函數 90

4.3.8 學習率 91

4.3.9 競爭學習的一個新類 92

4.3.10 SOM可視化 95

4.3.11 繪製訓練數據集和神經元權重的2D圖 97

4.3.12 測試Kohonen學習 99

4.4 本章小結 105

第5章 預報天氣 106

5.1 神經網絡用於回歸問題 106

5.2 加載/選擇數據 108

5.2.1 創建輔助類 108

5.2.2 從CSV文件加載數據集 111

5.2.3 創建時序結構 112

5.2.4 丟棄NaN 113

5.2.5 獲取天氣數據 114

5.2.6 天氣變量 115

5.3 選擇輸入和輸出變量 115

5.4 預處理 117

5.4.1 歸一化 117

5.4.2 應用NeuralDataSet處理歸一化 121

5.4.3 應用學習算法進行歸一化 123

5.4.4 天氣預報的Java實現 123

5.4.5 收集天氣數據 123

5.4.6 延遲變量 126

5.4.7 加載數據並開始運行 126

5.4.8 相關性分析 128

5.4.9 創建神經網絡 131

5.4.10 訓練和測​​試 131

5.4.11 可視化神經網絡的輸出 133

5.5 神經網絡實驗設計 134

5.5.1 設計實驗 134

5.5.2 結果和模擬 135

5.6 本章小結 138

第6章 疾病分類識別 139

6.1 分類問題的基礎 139

6.1.1 分類數據 140

6.1.2 處理分類數據 141

6.2 邏輯回歸 142

6.2.1 多分類與二分類 143

6.2.2 混淆矩陣 144

6.2.3 敏感性與特異性 144

6.2.4 實現混淆矩陣 145

6.3 分類神經網絡 147

6.4 用神經網絡進行疾病識別 147

6.4.1 乳腺癌識別 148

6.4.2 糖尿病識別 151

6.5 本章小結 154

第7章 客戶畫像聚類 155

7.1 聚類任務 156

7.1.1 聚類分析 156

7.1.2 聚類評估和驗證 157

7.1.3 實現 158

7.1.4 外部驗證 159

7.2 應用無監督學習 159

7.3 畫像過程 160

7.3.1 預處理 160

7.3.2 Java實現 161

7.3.3 信用卡—客戶畫像信用分析 161

7.3.4 產品畫像 165

7.3.5 多少個簇合適 166

7.4 本章小結 167

第8章 文本識別 168

8.1 模式識別 168

8.1.1 類已知 169

8.1.2 類未知 170

8.2 神經網絡用於模式識別 171

8.2.1 數據預處理 171

8.2.2 文本識別(光學字符識別) 172

8.2.3 數字識別 172

8.2.4 數字表示 172

8.2.5 Java實現 173

8.2.6 數據生成 173

8.2.7 神經結構 174

8.2.8 實驗 174

8.2.9 結果 176

8.3 本章小結 179

第9章 神經網絡優化與調整 180

9.1 神經網絡實現的常見問題 181

9.2 輸入數據選擇 181

9.2.1 數據相關性 182

9.2.2 數據轉換 183

9.2.3 降維 183

9.2.4 數據過濾 184

9.2.5 交叉驗證 186

9.2.6 神經網絡結構選擇 187

9.3 在線重訓練 189

9.3.1 隨機在線學習 190

9.3.2 實現 190

9.3.3 應用 191

9.4 自適應神經網絡 193

9.4.1 自適應諧振理論 193

9.4.2 實現 194

9.5 本章小結 195

第10章 神經網絡當前趨勢 196

10.1 深度學習 196

10.2 深度架構 198

10.2.1 如何用Java實現深度學習 199

10.2.2 神經模糊 201

10.2.3 神經遺傳 203

10.3 實現混合神經網絡 204

10.4 本章小結 207

參考文獻 208