Logistic Regression 原理

by allenlu2007

 

Supervised machine learning 一般分為兩類: regression and classification.

Regression 的觀念比較數學上直觀,可以參考 Wiki 定義如下。簡單來說就是找到 DV (應變數) 和 IV (自變數或獨立變數) 的統計關係。其實這和傳統數學的函數關係並沒有什麼不同,只是引入了統計或機率的概念。下圖就是假設 DV 和 IV 線性關係所產生的 linear regression.

In statistical modelingregression analysis is a statistical process for estimating the relationships among variables. It includes many techniques for modeling and analyzing several variables, when the focus is on the relationship between adependent variable and one or more independent variables (or ‘predictors’).

   NewImage

一般 regression 都會假設 DV 和 IV 都是 continuous variables.  就像一般函數關係一樣。

但是 classification 專指 IV 是 continuous variables, 但 DV 是 discrete categories (各種類別, 如生病/不生病, 下雨/晴天/陰天, etc.) 問題。最常見是 output (DV) 是 binary 的問題 ( malignant/benigh tumour; positive/negative). 

其實傳統函數也有一些 discrete output function, 例如 sgn(x) (sign function, 判斷正負號, binary) 或是 quantisation (常用在 ADC, multiple classes).  但多半仍有數學關係 (e.g. sign, quantisation, order, etc.).  

比較 general 的 classification 問題,可能完全沒有確定的數學關係 (e.g. image classification 分類狗, 貓, 羊, etc.)此時只能用統計的 correlation 特性而無法用傳統數學來描述。

 

Linear Regression vs. Logistic Regression

藉著一些簡單的數學函數,可以解釋 linear regression 和 logistic regression 的關係。

Linear regression

Math function:   y  = ax + b

Optimisation 角度:  Least square loss/error function = (y1 – (ax1+b))^2 + (y2 – (ax2+b))^2 + …..  

                             —> minimise loss 求 a and b

Statistic 角度:   Y = ax + b + Err   where Err and Y are random variables.   Err ~ N(0, σ^2)  (normal distribution)

                E(Y) = ax + b,   x 只是一個變動的參數,並非 random variable.

                運用 maximum likelihood estimator (MLE):   exp(-(y1-ax1-b)^2) * exp(-(y2-ax2-b)^2) * …..

                結果和 least square error 一樣。

 NewImage

 

Logistic regression (物理上類似 conductance/valance band concept)

Math function:   y  = sgn(ax + b)   

Optimisation 角度:  沒有簡單的 loss/error function.  用 MLE 可以定義  L= 1/[1+exp-(ax1+b)*y1]*1/[1+exp-(ax2+b)*y2]* …   (這裡 y1, y2, ..  是 +1 or -1 而不是 +1 or 0)

   或者更常定義 log loss function   L = log[1+exp-(ax1+b)*y1]+log[1+exp-(ax2+b)*y2]+ …

Statistic 角度:   引入 latent variable  Z = ax + b + Err   where Err and Z are random variables.  

       Err ~ 1/4sech^2(x/2)  (logistic distribution, 見 reference)   (類似 symmetric exponential distribution)    

       Y = sgn(Z)    Y=0 or 1 (Bernoulli distribution with p = P(ax+b+Err > 0)= 1/[1+exp-(ax+b)] )

       Exponential function tail 積分仍然是 exponential function!!

        q = 1-p = exp-(ax+b)/[1+exp-(ax+b)] = 1/[1+exp(ax+b)]

       E(Y) = 0 * q + 1 * p = p = 1/[1+exp-(ax+b)],     x 是一個變動的參數,並非 random variable.

       如果把 Y 改成 -1/+1 instead of 0/+1.

       運用 maximum likelihood estimator (MLE):   1/[1+exp(-(ax1+b)*y1] * 1/[1+exp(-(ax2+b)*y2] * …..

       結果如上。

 NewImage

 

 

Linear Regression 和 Logistic Regression 差異

如前所述,logistic regresson 的 outcome 是 binary.   而 linear regression 是 continuous.

另外 linear regression 用 normal distribution error; logistic regression 用 logistic distribution (similar to exponential) error. 

Conceptually, 有兩種方式把 linear regression 的 outcome 變成 binary. 

(1) sgn(ax+b+E) 如上所述

(2) 仍然用 linear regression to fit the training data (binary).  得到的 w (or theta, or a and b)  用來做 threshold.  Probability > 0.5 以上 predict = 1 and vice versa.  其實重點也不是 hard decision 是 0 or 1; 而是 soft decision P(y=0) or P(y=1).

為什麼不用 (2)?  可以用以下圖說明。

在只有 8 個 data point (下4上4) 情況下,linear regression 得到紅線。如果多了一個 data point (最右邊)

就會大幅改變 linear regression 的 threshold point (右移).  意即對於 tumor size 在原來轉折點的 tumor 傾向判為良性。

直覺上這有問題。

因為最右邊的 data point 為惡性基本符合預期,沒有太多的 surprise (information).  但卻大幅改變其他 tumor size 的判斷。

NewImage

 

回到  linear regression 的本質,基本上對於所有的 tumor size data points 都一視同仁。主要是 penalize 遠離 linear boundary 的 data points (error square).  這對 nonlinear 問題是很大的問題。就像上圖最右 data point 因為遠離原來的 linear boundary, 因此大幅改變新的 decision boundary.  

Logistic regression, 因為引入 sgn nonlinear function, error probability 是 exponential tail probability 的積分。 結果就是 logistic function.  在 transition 的部份的 penalty 遠高於非 transition 區!!  如上圖的最右(或最左) data point 基本上完全不會改變 decision boundary.  只有在 transition 部份的 data point 才會影響 decision boundary.  

同時 exponential tail (而非 Gaussian tail) 比較少 penalize 遠離 (linear) boundary 的 data point.  如果是 Gaussian tail, penalty 是 error square.   

 

一個自然的問題是為什麼用 logistic distribution (類似 symmetric exponential distribution) 而非 normal distribution  for binary outcome?

簡單比較 normalised 的 Normal and Logistic distribution.  

Logistic(0) = 1/4;   Normal(0)=2/pi;   Logistic 的 tail 比 Normal 的 tail decay 慢。

NewImage

 

在 linear regression 用 Normal distribution 從 central limit theory 來看是很自然的假設。

但在 logistic/binary regression 為什麼要用 logistic distribution (類 symmetric exponential distribution)?  Exponential distribution 的 tail behaviour 和 Normal distribution tail behaviour decay 慢很多。

(i) Exponential tail 積分仍是 exponential function (這是一個好處,數學計算容易)

    如果是 Normal distribution 也行。只是 tail 積分變成 err(x), 沒有 close form, 只能查表。

(ii) Exponential tail 比較少 penalize 遠離 (linear) boundary 的 data point.  如果是 Gaussian tail, (log) penalty 是 error square.

(iii) 物理上在 semiconductor 有類似的 function, Boltzmann-Dirac distribution:   1/[1+exp-(E-Ef)/kT]

    主要是 state 和 partition function 所構成。為什麼是 logistic function instead of err function to be checked.

 

  

Logistic Regression

Logistic regression 的 input variable 是 continuous, 但 outcome 是 binary 0 或 1.  這和 linear regression 有顯著不同。必須引入機率的觀念無法只用普通的 square loss or abs loss。最直接的做法就是找到一個 probability distribution 最有可能 match observed data.

為了 narrow down parameter selection, 一般用 logistic function

f(x) = 1/1+exp[-1*(ax+b)]       x 很小時, f(x)=0;   x 很大時, f(x)=1;   a and b 是需要 optimised parameters.  

NewImage

a=0.5, 1, and 2; b=0

當然不一定要 logistic function.  也可以是 (integrated) Gaussian function 或其他的 function (from 0 to 1).

 

注意:

* 不要混淆 logistic function 和 CDF.   CDF: Fx(x) = P(X <x);  and dFx(x)/dx = fx(x) = PDF 

    Logistic function 的 x 可視為一個參數: P(outcome=1|x) = f(x) 

   下圖是 Gaussian CDF (就是 error function, erf(x)).  每一點代表 P(X<x);  但在 logistics regression, 每一點代表  P(outcome=1)

NewImage

 

Why Logistic Function

Logistic function 有個有趣的特性如下:

 df(x)/dx = f(x) (1-f(x))

在 f(x) 很小時  df/dx ~ f  就是 exponential growth function.  例如人口函數。當 f(x) 愈來愈大時就會 saturate.

但在 logistic regression (以及代表的 probability) 並沒有用到 exponential 特性。反而是 transition 的線性特性。以及 log(odds) or log likelihood. 

 

Logistic Distribution

上文一再強調 logistic regression’s function 代表的機率和 PDF or CDF 無關,但並非完全如此。

首先 logistic function 的確滿足 CDF 的特性 (from 0 to 1 monotonic increase).  可以徵分得到  logistic PDF.

Assuming f(x) =  1 / (1 + exp(-x))    df/dx = exp(-x) / (1 + exp(-x))^2 = 1 / (exp(-x/2) + exp(+x/2))^2

在 x 很大以及很小時 (tail behaviour)  df/dx ~ exp(-|x|)  —>  結論是 exponential tail,  比起 Gaussian pdf exp(-x^2) 來說 decay 慢很多。可以說是長尾效應。

是否可以用 logistic distribution 來解釋 logistic regression, 如同用 Gaussian distribution 來解釋 linear regression?  Yes. 一開始已解釋。

Linear regression     Y = ax + b + E   —>  E is a random variable, indep, of x  —> zero mean Gaussian pdf

Logistic regression   Y = sgn( ax + b + E )  —>  E is a random variable, indep. of x  —> zero mean Logistic pdf

 

Logistic function 的 log odds ratio as a probability of occurrence.  

f(x) / (1-f(x)) = exp(ax+b)   log ( f/1-f) = ax + b

 

Advertisements