究竟什麼是感知器

StackOverflow 文件

感知器模型的核心是用於二進位制分類的最簡單的監督學習演算法之一。它是一種線性分類器 ,即一種分類演算法,它基於將一組權重與特徵向量組合的線性預測函式進行預測。更直觀的思考方式就像只有一個神經元神經網路 ****

它的工作方式非常簡單。它得到一個輸入值 x 的向量,其中每個元素都是我們資料集的一個特徵。

一個例子:

假設我們想要分類物件是自行車還是汽車。為了這個例子,我們假設我們要選擇 2 個特徵。物體的高度和寬度。在那種情況下, x = [x1,x2] 其中 x1 是高度, x2 是寬度。

然後,一旦我們得到輸入向量 x,我們希望將該向量中的每個元素與權重相乘。通常,重量值越高,特徵越重要。例如,如果我們使用顏色作為特徵 x3 並且有一輛紅色自行車和一輛紅色汽車,感知器將為它設定一個非常低的重量,以便顏色不會影響最終預測。

好吧,所以我們將 2 個向量 xw 相乘,然後我們得到了一個向量。現在我們需要總結這個向量的元素。一個聰明的方式來做到這一點,而不是簡單的乘法 X 通過 w ^ 我們可以乘 X重量在那裡牛逼代表轉置。我們可以想象向量的轉置作為向量的旋轉版本。有關詳細資訊,請閱讀維基百科頁面 。基本上通過採用向量 w 的轉置,我們得到 Nx1 向量而不是 1xN 。因此,如果我們現在將輸入向量乘以 1xN 的大小 ****** 使用這個 Nx1 權重向量,我們將得到 1x1 向量(或簡單的單個值),它將等於 x1 * w1 + x2 * w2 + … + xn * wn 。完成後,我們現在有了預測。但還有最後一件事。該預測可能不是簡單的 1 或 -1,以便能夠對新樣本進行分類。所以我們可以做的只是簡單地說:如果我們的預測大於 0,那麼我們說樣本屬於 1 類,否則如果預測小於 0,我們說樣本屬於 -1 類。這稱為階躍函式

但是我們如何獲得正確的權重以便我們做出正確的預測呢?換句話說,我們如何訓練我們的感知器模型?

在感知器的情況下,我們不需要花哨的數學方程來訓練我們的模型。我們的權重可以通過以下等式進行調整:

Δw= eta *(y - 預測)* x(i)

其中 x(i) 是我們的特徵(x1 例如表示重量 1,x2 表示 w2,依此類推……)。

還注意到有一個名為 eta 的變數是學習率。你可以把學習率想象成我們想要改變權重的程度。良好的學習率導致快速學習演算法。過高的 eta 值會導致每個時期的錯誤數量增加,導致模型做出非常糟糕的預測並且永遠不會收斂。學習率太低可能導致模型花費太多時間來收斂。 (通常,為感知器模型設定 eta 的值為 0.1,但它可能因情況而異)。

最後你們中的一些人可能已經注意到第一個輸入是常量(1)並乘以 w0。究竟是什麼呢?為了獲得良好的預測,我們需要新增偏差。這就是常數。

為了修改偏差項的權重,我們使用與我們對其他權重相同的等式,但在這種情況下,我們不將它乘以輸入(因為輸入是常數 1,所以我們不必):

Δw= eta *(y - 預測)

這就是簡單的感知器模型的工作原理! 一旦我們訓練了我們的權重,我們就可以給它新的資料並進行預測。

注意:

Perceptron 模型有一個重要的缺點! 如果資料不是線性可分的 ,它將永遠不會收斂(ei 找到完美的權重) ,這意味著能夠通過直線將要素空間中的 2 個類分開。因此,為了避免新增固定數量的迭代是一個好習慣,這樣模型就不會停留在調整永遠不會完美調整的權重上。