分類演算法-多層感知機 Multi-layer Perceptron

娃哈哈店長發表於2020-01-19

生物神經網路具有相互連線的神經元,神經元帶有接受輸入訊號的樹突,然後基於這些輸入,它們透過軸突向另一個神經元產生輸出訊號。

使用人工神經網路(Artificial Neural NetworkANN)來模擬這個過程,稱為神經網路。

神經網路是一個試圖模仿自然生物神經網路的學習模式的機器學習框架。 建立神經網路的過程從最基本的形式單個感知器開始。

感知器就是一個能夠把訓練集中的正例和反例劃分為兩個部分的器件,並且能夠對未來輸入的資料進行分類。

ANN是指由大量的處理單元(神經元) 互相連線而形成的複雜網路結構,是對人腦組織結構和執行機制的某種抽象、簡化和模擬。

人工神經網路(Artificial Neural Network,簡稱ANN ),以數學模型模擬神經元活動,是基於模仿大腦神經網路結構和功能而建立的一種資訊處理系統。

人工神經網路有多層和單層之分,每一層包含若干神經元,各神經元之間用帶可變權重的有向弧連線,網路透過對已知資訊的反覆學習訓練,透過逐步調整改變神經元連線權重的方法,達到處理資訊、模擬輸入輸出之間關係的目的。

它不需要知道輸入輸出之間的確切關係,不需大量引數,只需要知道引起輸出變化的非恆定因素,即非常量性引數。

因此與傳統的資料處理方法相比,神經網路技術在處理模糊資料、隨機性資料、非線性資料方面具有明顯優勢,對規模大、結構複雜、資訊不明確的系統尤為適用。
由Minsley和Papert提出的多層前向神經元網路(也稱多層感知器)是目前最為常用的網路結構

摘抄自百度百科[百度百科]https://baike.baidu.com/item/ANN/4973123)

0x00認識感知機

感知機就是一個能把訓練集中的正例和反例劃分為兩個部分的器件,並且能夠對未來輸入的資料進行分類。

舉個例子:

一個小孩媽媽教他什麼是蘋果什麼不是蘋果,首先會拿一個蘋果來說,這是一個蘋果,然後再拿一個杯子過來說“這不是一個蘋果”,又拿來一個稍微不一樣的蘋果來說,“這也是一個蘋果”,最後,小孩就學習到了用一個模型(判斷蘋果的標準)來判斷什麼是蘋果、什麼不是蘋果。

感知器具有一個或多個輸入、偏置、啟用函式和單個輸出。感知器接受輸入,將他們乘以一些權重,然後將他們傳遞到啟用函式以產生輸出。有許多啟用函式可供選擇,如邏輯函式、三角函式、階躍函式等。我們還確保向感知器新增偏差,避免所有輸入可能等於0的問題,(意味著沒有乘以權重會有影響)。感知器的圖形表示如下:

分類問題-k-近鄰演算法 樸素貝葉斯 支援向量機 AdaBoot演算法 決策樹 多層感知機

0x01感知機的輸入和輸出

分類演算法-多層感知機 Multi-layer Perceptron

上面這個函式fx)稱為感知機。

神經網路一般由輸入層(Input Layer)、隱藏層(Hidden Layer),輸出層( OutputLayer )組成,每層由單元(Units)組成,輸入層是由訓練集的例項特徵向量傳入,經過連線節點的權重(Weight)傳入下一一層,上一層的輸出是下一層的輸入,隱藏層的個數是任意的,輸出層和輸入層只有一一個, 常見的神經網路如下圖所示。

分類問題-k-近鄰演算法 樸素貝葉斯 支援向量機 AdaBoot演算法 決策樹 多層感知機

當有輸出的時候,可以將其5已知標籤進行比較,井相應地調整權重(權重通常以隨機初始化值開始)。

重複此過程,直到達到允許迭代的最大數量或可接受的錯誤率。 上面網路中如果每個神經元都是由感知器構成的,則這個網路稱為Muti-layer Percepron多層感知機。多層感知機的優點是:可以學習非線性模型,並且可以實時學習: 然而,多層感知機也有自身的缺點:有隱藏層的MLP包含一個非凸性損失函式, 存在超過一一個最小值,所以不同的隨機初始權重可能導致不同的驗證精確度; MLP要求調整系列超引數, 如隱藏神經元、隱藏層的個數及迭代的次數; MLP對特徵縮放比較敏感。

0x02使用感知機注意事項

在使用神經網路前需要注意以下事項。

①使用神經網路訓練資料之前,必須確定神經網路層數,以及每層單元個數。

②特徵向量在被傳入輸入層時通常被先標準化( Normalize)到0和1之間。

③離散型變數可以被編碼成每個輸入單元對應一 個特徵可能賦的值。 例如,特徵值A可能取3個值
(20.21a2),可以使用3個輸入單元來代表A,如果A=ao,那麼代表ao的單元值就取1,其他取0;如果A=a1,那麼代表a的單元值就取1,其他取0,以此類推。

④神經網路既可以用來做分類( Classification )問題,也可以解決迴歸( Regression )問題。對於分類問題,如果是兩類,可以用一個輸入單元表示(0和1分別代表兩類),如果多於兩類,每一個類別用一個輸出單元表示,所以輸入層的單元數量通常等於類別的數量,沒有明確的規則來設計最好有多少個隱藏層,可以根據實驗測試和誤差,以及準確度來實驗並改進最優的隱藏層數目。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
文章!!首發於我的部落格Stray_Camel(^U^)ノ~YO

相關文章