關於Logistic Regression對於線性可分的數據集的不收斂性的分析

問題的提出

最近我在進行斯坦福cs229的題目練習時候,碰到了一個不容易理解的case:即當面對線性可分的數據集的時候,Logistic Regression算法將永遠無法收斂。

剛碰到的時候,心想stanford的題目真不是蓋的,盡然百思不得其解。經過了各種google出來的帖子,文章,slides的閱讀,目前算是有了一點點了解,但是還沒真正理解透徹。所以目前先就理解的這部分按照邏輯敘述一下。

先從幾個基本概念的介紹開始。

線性可分的數據集(Linealy separable data)

官方得說,就是有一堆標籤數據,分別標爲“1”,“0”兩種。在其分佈的座標空間中,存在一個超平面可以正好將兩種標籤的數據分開,就叫做線性可分的數據集。一般情況下,只要這個數據是線性可分的,就存在無數個超平面可以將兩類數據分開。

我們用更嚴格的數學語言描述一下,有一份數據項的數目爲m的數據集:

\{(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), ... , (x^{(m)}, y^{(m)})\}, y^{(i)} \in \{0,1\}

如果這個數據是線性可分(Linear separability),則存在一個超平面:

\theta^Tx = 0

使得上面的數據集有如下不等式組成立:

\begin{cases} \theta^Tx^{(i)} > 0, \quad \ \ & If (y^{(i)}=1)\\ \theta^Tx^{(i)} < 0, \quad \ \ & If (y^{(i)}=0)\\ \end{cases}

其中 x向量中有一項爲1 ,即x_0 = 1,這個處理主要是爲了包含超平面的常數項,即W^Tx + b = 0

爲了更好理解線性可分的概念,我們可以看一個直觀一點的二維數據圖:

Logistic Regression的基本回顧

Logistic Regression中文叫邏輯迴歸,通俗得說就是二元線性迴歸或者多元線性迴歸後加上sigmoid函數,輸出爲二值分類。主要計算公式是損失函數:

\begin{cases} J = \frac{1}{m} \sum_{i=1}^m (- y^{(i)} \log(h_\theta(x^{(i)})) - (1-y^{(i)} ) \log(1-h_\theta(x^{(i)}))) \\ h_\theta(x) = \frac{1}{1+e^{-\theta x}} \\ \end{cases}

整個邏輯迴歸就是通過梯度下降法或者牛頓法來求出一個最優的向量,\theta,使得上式中的J取最小值。所謂梯度下降法爲:

\theta := \theta - \alpha\frac{\partial J(\theta)}{\partial \theta}

分析

假設我們做Logistic Regression所用的是梯度下降法。即剛開始\theta值都是隨機的,或者都是0。所以在運用迭代法之前,\theta所取的值組成的超平面,是無法將數據正好分成標記正確的兩部分,所以迭代可以一直進行下去, 直到迭代出一個線性可分的\theta。此時繼續迭代,我們的目標函數將不能繼續收斂了。

首先因爲當前\theta已經滿足線性可分,所以損失函數J將簡化成如下式子:

\begin{equation} J(\theta)=\begin{cases}\ \frac{1}{m} \sum_{i=1}^m (- y^{(i)} \log(h_\theta(x^{(i)}))) &when \ y^{(i)}=1\\ \frac{1}{m} \sum_{i=1}^m (-(1-y^{(i)} ) \log(1-h_\theta(x^{(i)}))) &when \ y^{(i)}=0\\ \end{cases} \end{equation}

我們再分析一下當\theta增加時,h_\theta(x)函數的趨勢:

\begin{equation} h_\theta(x)=\frac{1}{1+e^{-\theta x}}=\begin{cases}\ increase &when \ \theta x > 0 \\ decrease &when \ \theta x < 0 \\ \end{cases} \end{equation}

又因爲之前的關於\theta xy^{(i)} 的分析,可知上面兩個式子的各自的兩種情況是一一對應的,即從y^{(i)}=1可推出\theta x > 0,所以可以知道J(\theta)在隨着\theta增加,而單調減,最終減小爲0,但是這個過程是當\theta取無限大的時候,J(\theta)的極限才減小到0,所以J(\theta)在這種情況下沒有最小值,\theta會永遠增加下去而無法收斂。

後記

這篇收斂性的分析寫得還是比較匆忙,僅僅是流水賬地做了一點推理,很難做到邏輯縝密。而且我的思路的正確性有有待驗證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章