ANFIS學習筆記(一)
ANFIS學習筆記(一)
ANFIS起源
最早關於ANFIS的文章應該是Jyh-Shing Roger Jang 於1993年發表的《ANFIS : Adaptive-Network-Based Fuzzy Inference System》這篇文章。當時對於處理模糊不確定系統,使用傳統數學工具的系統建模並不能得到令人滿意的效果。考慮採用模糊if-then規則的模糊推理系統不需要精確的定量分析就可以對人的知識和推理過程進行定性建模,作者提出了一種基於自適應網路的模糊推理系統。
ANFIS模型介紹
介紹自適應模糊推理系統(ANFIS)模型前,先簡單說一下模糊推理系統(FIS)以及自適應網路。
FIS由五個功能模組組成:
1)包含若干模糊if-then規則的規則庫;
2)定義關於使用模糊if-then規則的模糊集的隸屬函式的資料庫;
3)在規則上的執行推理操作的決策單元;
4)將明確輸入轉化為與語言價值匹配的程度的模糊介面;
5)將推理得到的模糊結果轉化為明確輸出的去模糊介面。
通常,1、2被聯合稱為知識庫。FIS結構圖如下:
自適應網路是一個由節點和連線節點的定向鏈路組成的多層前饋網路,其中每個節點對傳入的訊號以及與此節點相關的一組引數執行一個特定的功能(節點函式)。自適應網路的結構中包含有引數的方形節點和無引數的圓形節點,自適應網路的引數集是每個自適應節點的引數集的結合。他們的輸出依賴於這些節點相關的引數,學習規則指定如何更改這些引數。
一種自適應網路結構如下圖所示:
ANFIS的模型結構由自適應網路和模糊推理系統合併而成,在功能上繼承了模糊推理系統的可解釋性的特點以及自適應網路的學習能力,能夠根據先驗知識改變系統引數,使系統的輸出更貼近真實的輸出。一種ANFIS結構圖如下:
輸入x,y在第一層進行模糊化,模糊化的方法:用隸屬函式(menbership functions,MFs,一般為鐘形函式,鐘形函式引數為前向引數)對輸入特徵x,y進行模糊化操作,得到一個[0,1]的隸屬度(menbership grade),通常用mu表示。
在第二層,每個特徵的隸屬度mu相乘得到每個規則的觸發強度(firing strength)。
第三層將上一層得到的每條規則的觸發強度做歸一化,表徵該規則在整個規則庫中的觸發比重,即在整個推理過程中使用到這條規則的程度(用概率理解)。
第四層計算規則的結果,一般由輸入特徵的線性組合給出(假設輸入有n個特徵,fi=c0+c1x1+c2x2+。。。+cnxn。c0、c1…cn為後向引數)。
第五層去模糊化得到確切的輸出,最終的系統輸出結果為每條規則的結果的加權平均(權重為規則的歸一化觸發程度,理解為計算期望)。
ANFIS學習演算法
文章W中給出的學習演算法(引數更新方法)為LSE-GD混合學習演算法。即更新引數同時在前向傳遞和反向傳遞中進行。
在反向傳播中,我們固定後向引數(規則中的引數),根據Loss函式對前向引數的偏導數(用到鏈式法則),從梯度方向的反方向更新引數。所以這種演算法也叫Gradient Descent(GD)演算法。
在GD演算法中,定義測量誤差為均方誤差的和
Tmp是第p個目標輸出的第m個分量,OmpL是第p個實際輸出的第L層第m分量,所有P個輸出的均方誤差之和的和為一次訓練中的均方根誤差(root mean square error,RMSE),記為E,根據鏈式法則,可以得到誤差Ep對每個引數的偏倒值
只要每次迭代,改變引數alpha=alpha-偏倒,就可以讓Ep朝減小的方向發展,即讓模型的輸出值更接近真實輸出值。
在正向傳播中,我們固定前向引數,在輸入傳遞到第四層時,通過最小二乘估計(least square estimate,LSE)更新後向引數,在這種前向引數固定的前提下,得到的後向引數估計是最優的,這樣,混合學習演算法比單純的GD演算法要快很多。
matlab中的ANFIS工具箱
學習ing,下次再更吧^ . ^
相關文章
- ANFIS學習筆記(二)筆記
- 學習筆記(一)筆記
- kitten 學習教程(一) 學習筆記筆記
- Angular 學習筆記(一)Angular筆記
- React 學習筆記【一】React筆記
- vue學習筆記一Vue筆記
- Canvas學習筆記(一)Canvas筆記
- Jquery學習筆記(一)jQuery筆記
- goLang學習筆記(一)Golang筆記
- Android學習筆記一Android筆記
- css學習筆記(一)CSS筆記
- SCSS學習筆記(一)CSS筆記
- 深度學習 筆記一深度學習筆記
- Selenium 學習筆記 (一)筆記
- Kettle學習筆記(一)筆記
- Spring學習筆記(一)Spring筆記
- Matlab學習筆記(一)Matlab筆記
- opencv學習筆記(一)OpenCV筆記
- LaTeX學習筆記:一筆記
- GOLang 學習筆記(一)Golang筆記
- Python 學習筆記(一)Python筆記
- TS學習筆記(一)筆記
- unity學習筆記(一)Unity筆記
- oracle學習筆記《一》Oracle筆記
- Cesium學習筆記(一)筆記
- SpringMVC學習筆記(一)SpringMVC筆記
- kafka學習筆記(一)Kafka筆記
- 高等數學學習筆記(一)筆記
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- MySQL學習筆記之一MySql筆記
- 拉丁語學習筆記 一筆記
- Apache ShenYu 學習筆記一Apache筆記
- github--學習筆記(一)Github筆記
- c#學習筆記(一)C#筆記
- react native學習筆記(一)React Native筆記
- Apache Oozie學習筆記(一)Apache筆記
- numpy的學習筆記\pandas學習筆記筆記
- linux學習筆記---一些命令學習Linux筆記