不插電:用Java手刻一個類神經網路 | 生病了怎麼辦 - 2024年8月
![](https://www.books.com.tw/img/001/080/73/0010807359.jpg)
不插電:用Java手刻一個類神經網路
使用簡單的語言描述類神經網路的原理,以實作與應用為導向,除理論介紹,每一章節的應用和實作都有具體的實例,讓讀者達到學以致用。全書分為11章,主要內容為如下:
■ 第1章主要介紹類神經網路以及人工智慧的發展歷史和基本原理。
■ 第2章主要介紹最為簡單的類神經網路模型和理論應用。
■ 第3章介紹一個以Java 為基礎的類神經網路架構Neuroph 的架構以及基本使用方法。
■ 第4章主要介紹以Neuroph 為基礎開發一個簡單的類神經網路系統—感知機。
■ 第5章介紹ADALINE網路以及使用Neuroph實現ADALINE神經網路。
■ 第6章介紹BP 神經網路的基本原理和實作方式。
■ 第7章介紹BP 神經網路的實際實作應用。
■ 第8章介紹Hopfield 網路的原理、實作和應用。
■ 第9章介紹雙向聯想網路BAM 的原理、實作和應用。
■ 第10章介紹競爭學習網路,特別是SOM 網路以及相關演算法與實現。
■ 第11章介紹PCA 方法以及與PCA 方法相等的PCA 網路。
本書特色
√ 力求通俗容易,使用簡單的語言描述類神經網路的原理與理論
√ 以實作方式與應用為導向,除理論介紹,每章的應用和實作都有詳解
√ 使用Java 作為主要語言。與Matlab 等語言不同的是,Java是目前企業級軟體開發最為流行的語言,使用Java 實現的神經網路具備更強的系統整合能力與實作能力
作者簡介
葛一鳴
浙江工業大學碩士,國家認證系統分析師,Oracle OCP。長期從事Java軟體研發,對Java技術、人工智慧、神經網路、資料採擷等技術有濃厚興趣。
前 言
Chapter01類神經網路概述
1.1人工智慧與神經網路簡史
1.2 生物學研究對神經網路的影響
1.3 大數據對人工智慧的影響
1.4 電腦硬體發展對人工智慧的影響
1.5 電腦軟體發展對人工智慧的影響
1.6 人工智慧的廣泛應用
Chapter02類神經元模型與感知機
2.1 類神經元組成要素
2.2 感知機
2.3 歸納
Chapter03神經網路架構Neuroph 介紹
3.1 Neuroph 是什麼
3.2 Neuroph 系統的組成
3.3 Neuroph Studio 的功能展示
3.4 Neuroph Library 架構分析
3.5 Neuroph 開發環境架設
3.6 歸納
Chapter04使用Java 實現感知機及其應用
4.1 第一個Neuroph 程式—使用感知機記憶邏輯與操作
4.2 讓感知機了解座標系統
4.3 感知機學習演算法與Java 實現
4.4 再看座標點位置識別
4.5 感知機的極限—互斥問題
4.6 歸納
Chapter05 ADALINE 網路及其應用
5.1 ADALINE 網路與LMS 演算法
5.2 ADALINE 網路的Java 實現
5.3 使用ADALINE 網路識別數字
5.4 歸納
Chapter06多層感知機和BP 學習演算法
6.1 多層感知機的結構與簡單實現
6.2 多層感知機學習演算法—BP 學習演算法
6.3 BP 神經網路細節最佳化
6.4 帶著演算法重回互斥問題
6.5 歸納
Chapter07 BP 神經網路的案例
7.1 交錯性判別問題
7.2 函數逼近
7.3 動物分類
7.4 簡單的語音辨識
7.5 MNIST 手寫體識別
7.6 歸納
Chapter08 Hopfield 神經網路
8.1 Hopfield 神經網路的結構和原理
8.2 網路的儲存容量
8.3 Hopfield 神經網路的Java 實現
8.4 Hopfield 網路還原帶有噪點的字元
8.5 Hopfield 網路的自聯想案例
8.6 歸納
Chapter09 BAM 雙向聯想記憶網路
9.1 BAM 網路的結構與原理
9.2 BAM 網路的學習演算法
9.3 使用Java 實現BAM 網路
9.4 BAM 網路的應用
9.5 歸納
Chapter10競爭學習網路
10.1 競爭學習的基本原理
10.2 自我組織對映網路SOM 的原理
10.3 SOM 網路的Java 實現
10.4 SOM 網路的應用
Chapter11 PCA 神經網路
11.1 PCA 方法概述
11.2 PCA 神經網路學習演算法
11.3 基於Neuroph 實現PCA 網路
11.4 使用PCA 網路前置處理MNIST 手寫體資料集
11.5 歸納
前言
✾ 關於類神經網路
不可否認,我們已經迎來人工智慧的又一次高潮。與前幾次人工智慧的飛躍相比,這一次人工智慧突破將軟體演算法、高平行處理硬體系統以及大數據有機地結合在一起,進而將人工智慧推向最接近人類智慧的主導地位。位於目前人工智慧核心的,也是最炙手可熱的演算法,被稱為深度學習。目前,最為成功的深度學習方法與類神經網路聯繫緊密,甚至可以毫不誇張地說,傳統的類神經網路就是深度學習架構的基礎。因此,可以認為,目前人工智慧以及機器學習的覺醒從本質上說,是以類神經網路為代表的學習演算法和架構的盛行以及廣泛實作。類神經網路已經從實驗室裡走出來,獲得更加廣泛的實際商業應用。本書致力於介紹傳統的類神經網路,作為讀者步入現代人工智慧以及深度學習的理論基礎。
✾ 主要內容
2014 年,我在百度閱讀上遞交了《自己動手寫神經網路》電子書。從發佈至今,已有2 萬餘人閱讀。在整理和歸納大部分讀者的意見後,我在原書的基礎上進行整理和進一步擴充,最後形成此書。
全書分為11 章,主要內容如下:
■ 第1 章主要介紹類神經網路以及人工智慧的發展歷史和基本原理。
■ 第2 章主要介紹最為簡單的類神經網路模型和理論應用。
■ 第3 章介紹一個以Java 為基礎的類神經網路架構Neuroph 的架構以及基本使用方法。
■ 第4 章主要介紹以Neuroph 為基礎開發一個簡單的類神經網路系—感知機。
■ 第5章介紹ADALINE網路及使用Neuroph實現ADALINE神經網路。
■ 第6 章介紹BP 神經網路的基本原理和實作方式。
■ 第7 章介紹BP 神經網路的實際實作應用。
■ 第8 章介紹Hopfield 網路的原理、實作和應用。
■ 第9 章介紹雙向聯想網路BAM 的原理、實作和應用。
■ 第10 章介紹競爭學習網路,特別是SOM 網路以及相關演算法與實現。
■ 第11 章介紹PCA 方法以及與PCA 方法相等的PCA 網路。
✾ 本書特點
本書的主要特點有:
■力求通俗容易,使用簡單的語言描述類神經網路的原理與理論。
■以實作方式與應用為導向,除理論介紹外,每章的應用和實作都有實際的實現詳解。
■ 使用Java 作為主要語言。與Matlab 等語言不同的是,Java是目前企業級軟體開發最為流行的語言,因此,使用Java 實現的神經網路具備更強的系統整合能力與實作能力。由於Java 語言本身通俗容易,在基本語法上與C/C++ 類似,因此,本書也適合沒有Java 基礎的程式設計師。
✾ 對讀者的要求
本書適合以下類型的讀者:
■ 對神經網路有興趣,期望可以初步了解神經網路原理的讀者。
■ 有一定程式設計經驗,期望學習和掌握神經網路的程式設計師。
■ 期望對神經網路進行實際應用的工程技術人員。
如果讀者熟悉Java,閱讀本書應該不會遇到太大的障礙。熟悉Java 並不是閱讀本書的必要條件。實際上,只要具備程式設計經驗,並且有一點物件導向程式設計的概念,閱讀本書就不會遇到太大的障礙。
✾ 本書的資源
每章都提供相關參考程式,可以幫助讀者更進一步了解本書內容,在www.uucode.net/201702/nncode 中可以下載本書全部程式,本書答疑QQ 群424123202。
✾ 聯繫作者
本書的寫作過程遠比我想像的要艱辛。為了讓全書能夠更清楚更正確地表達和論述,我歷經好幾個不眠之夜。即使現在回想起來,也忍不住要打個寒顫。由於我的寫作水準和寫作時間的限制,書中難免會有不妥之處。讀者可以透過電子郵件[email protected],或透過我的個人網站www.uucode.net/ 與我取得聯繫。