最小平方學習法 LMS — 最簡單的類神經學習法。

程式作品

C 語言

Java

C#

JavaScript

常用函數

文字處理

遊戲程式

衛星定位

系統程式

資料結構

網路程式

自然語言

人工智慧

機率統計

資訊安全

等待完成

訊息

相關網站

參考文獻

最新修改

簡體版

English

程式實作:最小平方學習法 LMS (採用 Java 實作)

簡介

LMS 學習演算法最早是用來讓電腦自動學會下棋的一種方法,其回饋式法則啟發了像類神經網路、Q learning 等重要的機器學習演算法,可以說是自動學習方法的開山祖師。

簡介

LMS 學習演算法最早是用來讓電腦自動學會下棋的一種方法,只要讓兩個 LMS 程式互相對下,LMS 程式會從輸贏的結果中不斷調整其評估公式,經過數萬次的比賽後,這兩個程式都會成為下棋高手。

最初 LMS 被用在一種叫 BackGamn 的棋賽中,然而、由於大部分的華人並不熟悉這種棋賽,因此、我們將以圍棋來說明 LMS 的演算法,假如我們想設計一個下圍棋的程式,則我們可以使用下列簡易的評估函數。

下BackGamn棋的評估方式:

(1)
\begin{equation} V(b) = c_0+c_1 x_1+c_2 x_2+c_3 x_3+c_4 x_4+c_5 x_5+c_6 x_6 \end{equation}

其中變數 x 的意義如下
x1: 黑棋的數量
x2: 白棋的數量
x3: 黑棋國王的數量
x4: 白棋國王的數量
x5: 黑棋被威脅的數量
x6: 白棋被威脅的數量

下圍棋的評估方式:

(2)
\begin{equation} V(b) = c_1 x_1+c_2 x_2+c_3 x_3+c_4 x_4 \end{equation}

其中變數 x 的意義如下
x_(1): 黑棋的數量
x_(2): 白棋的數量
x_(3): 一步後黑棋被吃掉的最多數量
x_(4): 一步後白棋被吃掉的最多數量

訓練目標值 T(b) 的公式定義如下 (注意,這個公式極為重要,因為下一步預測要比這一步更準,因此、預測值應該要向下一步靠攏):

(3)
\begin{equation} T(b) = V(successor(b)) \end{equation}

最佳化的目標函數,在最小化目標值與預測值之間的差異。

(4)
\begin{align} E=\SIGMA (T(b) - V(b))^2 \end{align}
Algorithm LMS
    for each training sample <b,T(b)>
        use the current weights to calculate V(b)
        for each weight wi, update it as
            wi = wi + d*(T(b)-V(b)) xi             // d 是一個很小的值,作為每次改進的調整步伐
end Algorithm

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License