Probabilistic Neural Network (PNN) 機率神經網路
機率神經網路(PNN) 1988年D. F. Specht提出 監督式學習 並非如Boltzmann machine一般以機率的方式進行運算 是一個四層的網路結構,能將任一個輸入向量對應到任一個分類 一個輸入層 三個計算層
機率神經網路(續) Outputs Summation units (one for each class) Pattern units Inputs
機率神經網路(續) 學習速度極快(學習時間幾近於0) 缺點 連結權重值採一次設定,直接由training patterns載入所需數據,無epoch的過程 缺點 所需記憶體較大 有多少組training patterns就必須有多少的pattern units 回想速度較慢
機率神經網路(續) 原理 由機率模式(貝氏分類器,Bayesian classifiers)所啟發 一群具有n維輸入向量的訓練範例,可視為一n維空間中的一群樣本點,藉由這些樣本點估計整個樣本空間中各分類的機率密度函數 令x為一n維的輸入向量特徵目標,屬於K個可能分類中的一個分類 令f1(x), f2(x), …, fK(x)為已知的K個分類的機率密度函數
機率神經網路(續) 令p1, p2, …, pK為每個特徵向量x所屬正確分類的先驗機率(priori probabilities) 假令一個決定函數d(x)=Ci , i=1,2,…,K,表示向量x的最佳分類為Ci 而令L1, L2, …, LK為分類錯誤的損失函數,d(x) Ci , i j 且x Cj 假若分類正確則其損失為0 貝氏決定法則 令每一個product的機率為
機率神經網路(續) 先驗機率的pi決定 假如沒有可供利用的資訊來決定損失函數,則可將其值皆設為相同 機率密度函數的評估 選擇一個符合分類的最大product value 假如 則將x指定為Ci分類 先驗機率的pi決定 按每個輸入範例所屬每個分類的比例可得 假如沒有可供利用的資訊來決定損失函數,則可將其值皆設為相同 機率密度函數的評估 n : 輸入向量的維度 ki : 訓練範例在Ci分類的個數 xij : 第j個訓練範例屬於第i個分類 : 平滑參數
機率神經網路(續) 訓練過程 在處理前先將所有的輸入範例正規化(1,-1) Input層與Pattern層藉權重值進行全連結 Pattern層共有P個神經元(訓練範例總數) 權重值的設定依連結的輸入向量值來決定 Pattern層的各神經元進行輸入向量與權重值向量間的dot運算 因而決定第j個pattern-layer的神經元輸出值
機率神經網路(續) Pattern-layer的輸出被指定連結到Summation-layer原有已知的分類神經元 輸出層是一個二元的輸出值,其每個神經元都有兩個輸入連結,Summation-layer與Output-layer之間的權重值以下式決定
機率神經網路(續) 範例 A B XOR function #1 (-1,-1)0 (Class A) UA=1 UB=Ck=-1 範例 A B XOR function #1 (-1,-1)0 (Class A) #2 (-1, 1)1 (Class B) #3 ( 1,-1)1 (Class B) #4 ( 1, 1)0 (Class A) #1 #2 #3 #4 -1 -1 –1 1 1 -1 1 1 (-1 -1) (-1 1) ( 1 -1) ( 1 1 )
機率神經網路(續) 假設=1 計算Pattern-layer的輸出 #1 (-1-(-1))2+(-1-(-1))2=0 Output=e-0/2=1 #2 (-1-(-1))2+(-1-1)2=4 Output=e-4/2=0.135 #3 (-1-1)2+(-1-(-1))2=4 Output=e-4/2=0.135 #4 (-1-1)2+(-1-1)2=8 Output=e-8/2=0.018 Class A : (1+0.018)/2=0.509 Class B : (0.135+0.135)/2=0.135 Decision : 0.509*UA+0.135*UB=0.509-0.135=0.374>0 所以分到Class A
機率神經網路(續) 平滑參數的選定 適用於 Pattern-layer的神經元輸出精確性受平滑參數所控制 當平滑參數趨近於0時 其機率密度函數=0,分類數=1 當平滑參數趨近於無限大時 其機率密度函數=1,分類數=盲目分類 一般選定範圍為[0.1, 1],通常可取0.5 適用於 故障診斷、訊號分類