DGA系列之MLP(二)

2021-10-01 07:47:24 字數 1336 閱讀 1535

針對機器學習對深度學習技術的發展過渡,發表一些個人的理解。一開始的機器學習,是基於特徵去實現讓機器具有識別工作,但需要識別的目標數量變得大的時候,機器學習所需要訓練的數量也會變大,而這個人們初期用的方法是在同乙個維度的橫向擴充套件(不斷地使用特徵資料訓練),這樣的確可以達到高的命中率,構造乙個完美的分類曲線。但是這個訓練出來的模型沒有泛化的能力,與資料過擬合了。舉個例子:乙個人面部特徵,有千萬個點組成,它可以用機器學習的方法在乙個維度上把臉部的所有特徵都納入訓練,這樣它可以識別出來這個人的臉部了。但是如果這個人哭了/笑了(面部特徵發生了變化),機器可能就識別不出來了。

後來人們提出神經網路演算法,就是模仿人類神經元的傳遞資訊的方式。在組合上來說,5+5+5+5往往比10+10 有更加多的組合能力和可能性,這也是乙個公升維的過程。人們模擬神經元的演算法單層感知機只能處理

線性問題,所以需要多個感知器組合處理非線性問題。而當隱藏層大於1層,就是下面我們演算法要介紹的多層感知機。

多層感知機(mlp,multilayer perceptron)也叫人工神經網路(ann,artificial neural network),除了輸入輸出層,它中間可以有多個隱層,最簡單的mlp只含乙個隱層,即三層的結構,如下圖:

他類似於人類的神經元結構(樹突->細胞體->軸突),多層感知機層與層之間是全連線的(全連線的意思就是:上一層的任何乙個神經元與下一層的所有神經元都有連線)。多層感知機最底層是輸入層,中間是隱藏層,最後是輸出層。

在輸入層上,這個是我們需要輸入的引數x,經過處理特徵後的資料

而隱藏層首先它與輸入層是全連線的,假設輸入層用向量x表示,則隱藏層的輸出就是f(w1x+b1),w1是權重(也叫連線係數),b1是偏置。

隱藏層與隱藏層之間的啟用函式f 可以是常用的sigmoid,anh,relu函式

最後就是輸出層,其實隱藏層到輸出層可以看成是乙個多類別的邏輯回歸,也即softmax回歸,所以輸出層的輸出就是softmax(w2x1+b2),x1表示隱藏層的輸出f(w1x+b1)。

mlp整個模型就是這樣子的,上面說的這個三層的mlp用公式總結起來就是,函式g是softmax,而s是啟用函式

多層感知機依此類推

mlp所有的引數就是各個層之間的連線權重以及偏置,包括w1、b1、w2、b2。對於乙個具體的問題,怎麼確定這些引數?求解最佳的引數是乙個最優化問題,解決最優化問題,最簡單的就是梯度下降法了(sgd):首先隨機初始化所有引數,然後迭代地訓練,不斷地計算梯度和更新引數,直到滿足某個條件為止(比如誤差足夠小、迭代次數足夠多時)。這個過程涉及到代價函式、規則化(regularization)、學習速率(learning rate)、梯度計算等

DGA系列之XGBoost(二)

xgboost全名叫 extreme gradient boosting 極端梯度提公升,經常被用在一些比賽中,其效果顯著。它是大規模並行boosted tree的工具,它是目前最快最好的開源boosted tree工具包。xgboost 所應用的演算法就是 gbdt gradient boosti...

反演系列之MLP學習

bp神經網路or多層感知機 匯入模組 from sklearn.neural network import mlpregressor import pandas as pd import numpy as np 匯入資料 data tr pd.read csv d python38 bpdata t...

SE for Android 系列之整體概要(二)

所支援的mac服務 mac和mmac功能概述 標準的selinux mac 策略是基於type enforcement te,即型別強制訪問 multi level security mls,即多級別安全機制 也可以理解為是一種白名單機制 install mmac策略中的package和signat...