如果您有疑問,可以先參考faq
1 介紹
2 ann的最最基礎的知識
圖1 根據生物神經系統的工作過程,我們可以大概理解以下這個圖所要表達的含義:
圖2 大家可以想象這樣一種情形:寒冷的冬天,我們伸手到火爐邊烤火,慢慢地,你覺得自己快要睡著了,這個時候,突然發現自己伸在火爐邊的手特別燙得疼,然後馬上將手縮回去。這就是乙個神經網路的工作例項,火對手產生的溫度就是圖2的輸入層(input),而縮手或不縮手就是圖2的輸出層(output)。但是縮手只有在手的溫度達到一定的程度才發生的,比如說40度。
用圖2來表示上面所說的情形:
x1 = 火對手產生的溫度
w1 =火對手產生的溫度的權值(對火對手產生的溫度的放大或是縮小,我們讓這個值為1)
啟用函式(active function)= 如果 x1 * w1 > 40 啟用(縮手),否則抑制(不縮手)
這是單輸入的情況,如果有多個輸入,則輸出為 f(x1 * w1 + x2 * w2 + x3 * w3 …)
其中,f(x)為啟用函式。
下面,我們來看2個多輸入的神經網路結構圖:
and運算
其中f(x) =
if (x >= 2) return 1;
else return 0;
閥值為2
我們可以利用這個結構圖來檢驗一下是否正確:
x1 = 0, x2 = 0, x = x1*w1 + x2*w2 = 0 f(x) = 0;正確
x1 = 0, x2 = 1, x = x1*w1 + x2*w2 = 1 f(x) = 0;正確
x1 = 1, x2 = 0, x = x1*w1 + x2*w2 = 1 f(x) = 0;正確
x1 = 1, x2 = 1, x = x1*w1 + x2*w2 = 2 f(x) = 0;正確
or運算
其中f(x) =
if (x >= 1) return 1;
else return 0;
閥值為1
我們可以利用這個結構圖來檢驗一下是否正確:
x1 = 0, x2 = 0, x = x1*w1 + x2*w2 = 0 f(x) = 0;正確
x1 = 0, x2 = 1, x = x1*w1 + x2*w2 = 1 f(x) = 1;正確
x1 = 1, x2 = 0, x = x1*w1 + x2*w2 = 1 f(x) = 1;正確
x1 = 1, x2 = 1, x = x1*w1 + x2*w2 = 2 f(x) = 1;正確
上面2個例項,就是我上篇文章中所需要建立的乙個神經網路模型。
但是我們如何確定w1,w2和閥值呢?
這就需要通過神經網路來學習,從而確定w1,w2和閥值。
2 學習
拿計算and運算的模型來說,需要2個輸入1個輸出是肯定的。關鍵就是如何確定2個輸入的權值和啟用函式的閥值。
為了計算啟用函式的閥值,我們可以增加乙個輸入層,變成這個樣子
這樣,我們只需讓啟用函式f(x)=
if (x >= 1) return 1;
else return 0;
即可。至於閥值究竟是多少,可以讓w3的值去確定。這樣,原先的問題就轉化成了求解w1, w2 ,w3的大小的問題了。
接下來,我們制定這樣的學習規律:
w(i) = w(i) + (正確值-實際計算的值)*x(i).
通過一定次數的訓練,我們就可以讓 (正確值-實際計算的值)變得相當下,這樣最後的結果也就穩定了,同時求出了我們需要的w1, w2 ,w3的近似值。
3實際執行過程
4
預告5
總結
4 人工神經網路
目標函式可是是實數 離散或向量。使用計算單元模擬神經元,計算單元有多輸入和不變的單值輸出。適用例項是通過屬性值對描述事件的 目標函式複雜 資料有誤 學習時間長 求值迅速。結構 感知器 線性單元 sigmoid s型的 單元。感知器 輸入實數值,輸出其線性組合是否大於某值 1 1 由此規定假設空間,該...
分類(3) 人工神經網路(ANN)
原版 一 感知器 下圖為乙個感知器,單個神經元。該感知器的演算法 二 多層人工神經網路 1 基本概念 神經網路,這裡先以前饋神經網路為介紹,每層為全連線,則對於2個神經元,引數為 1 w權值,2 b偏置,3 delta 啟用函式。多層神經網路的結構圖,以下為前饋神經網路的結構 2層 常用的 delt...
人工神經網路
人工神經網路 artificial neural network,ann 通過對大量歷史資料的計算來建立分類和 模型。神經網路的學習就是通過迭代演算法對權值逐步修改優化的過程。學習的目標是通過修改權值是訓練樣本集中所有樣本都能被正確分類。人工神經元用於模擬生物神經元,人工神經元可以看作乙個多輸入 單...