一、什麼是人工神經網絡(ANN)
人工神經網絡的靈感來自其生物學對應物。生物神經網絡使大腦可以以複雜的方式處理大量信息。大腦的生物神經網絡由大約1000億個神經元組成,這是大腦的基本處理單元。神經元經過彼此之間巨大的鏈接(稱爲突觸)來執行其功能。人腦大約有100萬億個突觸,每一個神經元約有1,000個!html
人體神經元模型,下如圖:
安全

- 接收區(receptive zone):樹突接收到輸入信息。
- 觸發區(trigger zone):位於軸突和細胞體交接的地方,決定是否產生神經衝動。
- 傳導區(conducting zone):由軸突進行神經衝動的傳遞。
- 輸出區(output zone):神經衝動的目的就是要讓神經末梢,突觸的神經遞質或電力釋出,才能影響下一個接受的細胞(神經元、肌肉細胞或是腺體細胞),此稱爲突觸傳遞。
那麼,什麼是人工神經網絡呢?有關人工神經網絡的定義有不少。這裏,芬蘭計算機科學家託伊沃·科霍寧(Teuvo Kohonen)給出的定義:人工神經網絡是一種由具備自適應性的簡單單元構成的普遍並行互聯的網絡,它的組織結構可以模擬生物神經系統對真實世界所作出的交互反應。 網絡
人工神經網絡的結構
- 輸入層:輸入層接收特徵向量 x 。
- 輸出層:輸出層產出最終的預測 h 。
- 隱含層:隱含層介於輸入層與輸出層之間,之因此稱之爲隱含層,是由於當中產生的值並不像輸入層使用的樣本矩陣 X 或者輸出層用到的標籤矩陣 y 那樣直接可見。
人工神經網絡由一個輸入層和一個輸出層組成,其中輸入層從外部源(數據文件,圖像,硬件傳感器,麥克風等)接收數據,一個或多個隱藏層處理數據,輸出層提供一個或多個數據點基於網絡的功能。例如,檢測人,汽車和動物的神經網絡將具備一個包含三個節點的輸出層。對銀行在安全和欺詐之間進行交易進行分類的網絡將只有一個輸出。函數
二、人工神經網絡(ANN)的運行原理
人工神經網絡的強大之處在於,它擁有很強的學習能力。在獲得一個訓練集以後,它能經過學習提取所觀察事物的各個部分的特徵,將特徵之間用不一樣網絡節點鏈接,經過訓練鏈接的網絡權重,改變每個鏈接的強度,直到頂層的輸出獲得正確的答案。性能
人工神經網絡的核心成分是人工神經元。每一個神經元接收來自其餘幾個神經元的輸入,將它們乘以分配的權重,將它們相加,而後將總和傳遞給一個或多個神經元。一些人工神經元可能在將輸出傳遞給下一個變量以前將激活函數應用於輸出。學習
神經網絡每層都包含有若干神經元,層間的神經元經過權值矩陣 Θl 鏈接。一次信息傳遞過程能夠以下描述:優化
- 第 j 層神經元接收上層傳入的刺激(神經衝動);
- 該刺激經激勵函數(activation function)g 做用後,會產生一個激活向量 aj 。 aji 表示的就是 j 層第 i 個神經元得到的激活值(activation):
2.一、前向傳播
刺激由前一層傳向下一層,故而稱之爲前向傳遞
對於非線性分類問題,邏輯迴歸會使用多項式擴展特徵,致使維度巨大的特徵向量出現,而在神經網絡中,並不會增長特徵的維度,即不會擴展神經網絡輸入層的規模,而是經過增長隱含層,矯正隱含層中的權值,來不斷優化特徵,前向傳播過程每次在神經元上產出的激勵值均可看作是優化後的特徵。
· 代價函數
矩陣表示
其中, .∗ 表明點乘操做,A∈R(K×m) 爲全部樣本對應的輸出矩陣,其每一列對應一個樣本的輸出, Y∈R(m×K) 爲標籤矩陣,其每行對應一個樣本的類型。
2.二、反向傳播
因爲神經網絡容許多個隱含層,即,各層的神經元都會產出預測,所以,就不能直接利用傳統迴歸問題的梯度降低法來最小化 J(Θ) ,而須要逐層考慮預測偏差,而且逐層優化。用反向傳播法優化預測。首先定義各層的預測偏差爲向量 δ(l) :
反向傳播中的反向二字也正是從該公式中得來,本層的偏差 δ(l) 須要由下一層的偏差 δ(l+1) 反向推導。
· 訓練過程
三、神經網絡結構的設計
3.1感知器
最簡單的神經網絡結構,不包含隱含層
從形式上看,迴歸問題算是感知器的非網絡表達形式。
感知器能夠解決邏輯運算問題(01分類問題)-sigmoid函數
多分類問題,添加多個隱層
3.二、結構設計
在神經網絡的結構設計方面,每每遵循以下要點:
- 輸入層的單元數等於樣本特徵數。
- 輸出層的單元數等於分類的類型數。
- 每一個隱層的單元數一般是越多分類精度越高,可是也會帶來計算性能的降低,所以,要平衡質量和性能間的關係。
- 默認不含有隱藏層(感知器),若是含有多個隱層,則每一個隱層上的單元數最好保持一致。
· 過程
- 設計激活函數
- 設計初始化權值矩陣的函數
- 定義參數展開和參數還原函數
Args: hiddenNum 隱層數目
unitNum 每一個隱層的神經元數目
inputSize 輸入層規模
classNum 分類數目
epsilon epsilon
Returns:
Thetas 權值矩陣序列
- 定義梯度校驗過程
Args:
Thetas 權值矩陣
X 樣本
y 標籤
theLambda 正規化參數
Returns:
checked 是否檢測經過
- 計算代價函數
Args:
Thetas 權值矩陣序列
X 樣本
y 標籤集
a 各層激活值
Returns:
J 預測代價 """
- 設計前向傳播過程
"""前向反饋過程
Args:
Thetas 權值矩陣
X 輸入樣本
Returns:
a 各層激活向量 """
- 設計反向傳播過程
1)計算梯度
Args:
a 激活值
y 標籤
Returns:
D 權值梯度
2)得到梯度後,更新權值
"""更新權值
Args:
m 樣本數
Thetas 各層權值矩陣
D 梯度
alpha 學習率
theLambda 正規化參數
Returns:
Thetas 更新後的權值矩陣 """
綜上,咱們能獲得梯度降低過程:
前向傳播計算各層激活值;
反向計算權值的更新梯度;
更新權值;
訓練結果將包含以下信息:(1)網絡的預測偏差 error;(2)各層權值矩陣 Thetas;(3)迭代次數 iters;(4)是否訓練成功 success。
最後經過預測函數
"""預測函數
Args:
X: 樣本
Thetas: 訓練後獲得的參數
Return: a """
四、神經網絡訓練過程
人工神經網絡首先爲神經元之間的鏈接權重分配隨機值。ANN正確而準確地執行其任務的關鍵是將這些權重調整爲正確的數字。可是找到合適的權重並非一件容易的事,特別是當您處理多層和成千上萬的神經元時。spa
經過對帶有註釋示例的網絡進行「培訓」來完成此校準。例如,訓練上述圖像分類器,則提供多張照片進行不斷訓練,神經網絡會逐漸調整其權重,以將每一個輸入映射到正確的輸出類別設計
基本上,訓練期間發生的事情是網絡進行自我調整以從數據中收集特定模式。一樣,對於圖像分類器網絡,當您使用質量示例訓練AI模型時,每一層都會檢測到特定的特徵類別。例如,第一層可能檢測到水平和垂直邊緣,第二層可能檢測到拐角和圓形。在網絡的更深處,更深的層次將開始挑選出更高級的功能,例如面部和物體。3d

神經網絡的每一層都將從輸入圖像中提取特定特徵
當您經過訓練有素的神經網絡運行新圖像時,調整後的神經元權重將可以提取正確的特徵並準確肯定圖像屬於哪一個輸出類別。
訓練神經網絡的挑戰之一是找到正確數量和質量的訓練示例。並且,訓練大型AI模型須要大量的計算資源。爲了克服這一挑戰,許多工程師使用「 轉移學習」(一種培訓技術),您能夠採用預先訓練的模型,並使用針對特定領域的新示例對其進行微調。當已經有一個與您的用例接近的AI模型時,轉移學習特別有效。
五、神經網絡的好處和侷限性
人工神經網絡的特色和優越性:
- 具備自學習功能
- 具備聯想存儲功能
- 具備高速尋找優化解的能力
侷限性:
- 神經網絡須要大量數據
- 神經網絡在歸納方面很很差
- 神經網絡是不透明的
六、項目實例
參考:
EO_Admin:https://www.cnblogs.com/geo-will/p/9764573.html
知乎:https://zhuanlan.zhihu.com/p/111288383