paper link

本人水平有限,也處在學習階段,如果有理解不到位的或者有其他角度來思考的歡迎留言,大家一起學習。

這篇文章主要記錄幾個我學習時的疑惑點和解決:

1. Sigmoid Function是怎麼想到的

2. Logistic regression 和 Linear regression的關係

3. 為什麼要採用平方誤差, 平方誤差有哪些局限

. Sigmoid Function是怎麼想到的

wiki

好奇sigmoid function是怎麼得到的, 然後找到了這篇paper。

sigmoid function是logistic function的一個特殊情況

logistic function: f(x) = frac{L}{1+e^{-k(x - x_0)}}

sigmoid function: S(x) = frac{1}{1+e^{-x}} = frac{e^x}{e^x + 1} , 也叫S函數, 有著S型曲線

定義幾個notations:

  1. x(1) cdots x(m) 表示輸入數據, x(i) in R^n , 第i個數據的第j個feature表示為 x(i)_j
  2. y(1)cdots y(m) 表示已知的訓練結果. y(i) in 集合{1 cdots k} 如果是二分類, 那麼 k = 2
  3. pi() 定義為一個從數據映射到訓練結果類的函數, pi{(x)}_{u} 表示對於輸入數據x屬於u類的概率是多少, pi() 就是模型學習的對象
  4. 定義indicator function A(u, v) = egin{equation} left{       egin{array}{lr}        1 & u = v \        0 & otherwise \       end{array} 
ight. end{equation}

pi() 函數有以下性質:

egin{equation}   egin{split}   &1. pi{(x)}_v ge 0 \   &2. sum_{v = 1}^{k}pi{(x)}_v = 1 \   &3. pi(x(i))_{y(i)}儘可能大   end{split} end{equation}

pi{(x)}_v = frac{e^{lambda_v cdot x}}{sum_{u = 1}^{k}e^{lambda_v cdot x}}

那個 pi() 也就是多分類的sigmoid function, 他有兩個導數的性質(矩陣的分數求導):

frac{partial}{partial{lambda_{v, j}}}pi(x)_v = x_j pi(x)_v (1 - pi(x)_v)

frac{partial}{partiallambda{u, j}}pi(x)_v = -x_jpi(x)_vpi(x)_u (when quad u 
e v)

目標函數就是最大化似然函數,(這裡的log指的是以自然對數e為底的對數函數):

lambda = argmax_{lambda}prod_{i = 1}^{m}pi{(x(i))}_{y(i)}

<=>

f(lambda)=sum_{i=1}^{m}log(pi(x(i))_{y(i)})

frac{partial}{partial{lambda_{u, j}}}f(lambda) = sum_{i=1, y(i)=u}^{m}{x(i)_j - sum_{i=1}^{m}{x(i)_j{pi(x(i))_u}}}=0

sum_{i=1}^{m}{{pi(x(i))_ux(i)_j}} = sum_{i=1, \ y(i)=u}^{m}x(i)_j (for quad all quad u, j)

<=>

由此導出平衡等式(balance quad equations) \ sum_{i=1}^{m}{{pi(x(i))_ux(i)_j}} = sum_{i=1}^{m}A(u, y(i))x(i)_j (for quad all quad u, j)

反過來, sigmoid函數是怎麼得到的呢:

egin{equation} egin{split} & pi(x)_v ge 0  \ & sum_{v=1}^{k}pi(x)_v = 1\ &sum_{i=1}^{m}{{pi(x(i))_ux(i)_j}} = sum_{i=1}^{m}A(u, y(i))x(i)_j (for quad all quad u, j)   end{split} end{equation}

這裡解釋一下: eq.1, eq.2 是概率函數的一個必要的性質

eq.3 意思就是為了使 pi(x(i))_u 很好的對訓練數據的類別鑒定函數 A(u, y(i)) 做一個逼近

然後目標就是成了找出了一個優秀的函數 pi() 能夠和好的滿足連續性,平滑性,最小表示長度,奧卡姆剃刀或者低複雜度,還要能夠很好的進行generalize, 然後就使用了資訊理論中的熵函數, 這是資訊理論的一個核心函數

pi() = argmax_{pi()}-sum_{v=1}^{k}sum_{i=1}^{m}pi(x(i))_vlog(pi(x(i))_v)

聯合以上的條件限制採用拉格朗日乘子法就可計算出sigmoid函數:

egin{equation} L = sum_{j=1}^{n}sum_{v=1}^klambda_{v, j}(sum_{i=1}^{m}{{pi(x(i))_ux(i)_j}} - sum_{i=1}^{m}A(u, y(i))x(i)_j)  \ +sum_{v = 1}^{k}sum_{i=1}^{m}eta_i(pi(x(i))_v - 1) \ -sum_{v=1}^{k}sum_{i=1}^{m}pi(x(i))_vlog(pi(x(i))_v) end{equation}

frac{partial}{partial{pi(x(i))_u}}L = lambda_ucdot x(i) +eta_i-log(pi{(x(i)_u)}) - 1 = 0

pi(x(i))_u = e^{lambda_ucdot x(i)+eta_i -1}

因為 sum_{v=1}^{k}pi(x)_v = 1 所以 sum_{v=1}^k{ e^{lambda_ucdot x(i)+eta_i -1}} = 1 <==> e^eta = frac{1}{sum_{v=1}^{k}{e^{lambda_vcdot x(i) - 1}}}

最終可以得到 pi(x)_u = frac{e^{lambda_u cdot x}}{sum_{v=1}^{k}{e^{lambda_v cdot x}}} 也就是sigmoid 函數


二. Logistic regression 和 Linear regression的關係

Linear Regression求解是 y = 	heta^Tx

是對真實關係 y = 	heta^Tx + epsilon 的 一個近似 epsilon 代表誤差項

接著之前邏輯回歸的說, 對於二分類, 定義 p = pi(y = 1|x) 表示給定輸入x預測為正樣本的概率 根據 pi() 推導可以反推出 lambda^Tx = log(frac{p}{1-p})

對於Logistic Regression我們求解的參數是 lambda , Linear Regression也是的, 所以對於這個函數可以看做是Linear Regression對於 y = log(frac{p}{1-p}) 這個對象的擬合, 從這個角度來說兩者是和相似之處的。 {frac{p}{1-p}} 也叫做一個事件發生的幾率

最大不同的地方在於Logistic Regression的因變數是離散的,而Linear Regression的因變數是連續的( logfrac{p}{1-p} )

三. 為什麼要採用平方誤差, 平方誤差有哪些局限

關於這個背後 的歷史就不談了, 直接說正題。平方誤差是建立在假設誤差 epsilon 服從正太分布並且變數相互獨立的情況下進行的。 epsilon = y - 	heta^Tx in N(u, sigma^2) 而正太分布誤差廣泛存在, 所以這個假設比較靠譜。

(Root Mean Square Error RMSE) RMSE = sqrt{frac{sum_{i=1}^{n}{(y_i - hat{y_i})^2}}{n}}

一般情況下能夠很好的反應回歸模型預測值與真實值的偏離程度,但是如果存在個別偏離程度非常大的離群點(outlier),即使這種點非常少也會使得誤差很大,所以這種情況是不適用的。這個時候應當換其他的指標,比如(Mean Absolute Percent Error, MAPE) MAPE=sum_{i=1}^{n}{|frac{y_i - hat{y_i}}{y_i}|}*frac{100}{n}

另外就是一定要記住是建立在誤差分布為正太分布並且變數之間相互獨立的假設,應用限制條件很重要

平方誤差的好處也很明顯,最直觀的就是求導容易,函數平滑連續,便於計算。

最後再來一份在誤差服從正太分布的情況下是怎麼導出平方誤差的公式推導。

epsilon = p(y(i)|x(i);sigma) = frac{1}{sqrt{2pi}sigma}{e^{-frac{(y(i) - 	heta^Tx(i))^2}{2sigma^2}}} 這裡均值化一下所以u = 0

最大似然函數就是

	heta = argmax_	heta (L(	heta) = prod_{i=1}^{m}{p(y|x; 	heta)}=prod_{i=1}^{m}{frac{1}{sqrt{2pi}sigma}{e^{-frac{(y(i) - 	heta^Tx(i))^2}{2sigma^2}}}})

log-likelihood function:

	heta = argmax_	heta {logL(	heta) = mfrac{1}{sqrt{2pi}sigma} - frac{1}{2sigma^2}sum_{i=1}^{m}{(y(i) - 	heta^Tx(i))^2}} <==>constant  - MSE

從而得出了平方誤差(MSE), 也就是說在假設成立的情況下, 求解最小平方誤差和求解最大似然函數目標是一致等價的。

相似的, L1正則誤差就是建立在誤差分布假設為Laplace分布的情況 p(x|u, b) = frac{1}{2b}e^{-frac{|x-u|}{b}}

當然還有其他的一些變種, 進一步的還可以通過對參數 	heta 進行條件約束進行似然求值

比如 	heta = r sim  N(0, r^2) 那麼 L(	heta) = prod_{i=1}^{m}p*r = prod_{i=1}^{m}{frac{1}{sqrt{2pi}sigma}{e^{-frac{(y(i) - 	heta^Tx(i))^2}{2sigma^2}}}})*prod_{j=1}^{d}frac{1}{sqrt{2pi}a}{e^{-frac{	heta^2}{2a^2}}}

打公式真的累人==!

推薦閱讀:

相关文章