【機器學習】多項邏輯斯蒂迴歸/softmax迴歸推導與求解

1. 多項邏輯斯蒂迴歸模型

多項邏輯斯蒂迴歸模型(multi-nominal logistic regression model),又稱爲Softmax Regression,是一個用來預測離散型隨機變量的不同可能結果的概率的模型,用於進行多項分類。

前面在邏輯斯蒂迴歸原理推導與求解中講到的邏輯斯蒂迴歸模型是二項分類模型,用於二分類。將其推廣爲多項分類,假設離散型隨機變量Y的取值集合是\left\{ {1,2, \ldots ,K} \right\},那麼多項邏輯斯蒂迴歸模型是(這也就是softmax函數,推導softmax函數詳見參考文獻1):

                                     p\left( {y = k\left| {x;w} \right.} \right) = \frac{{\exp \left( {w_k^Tx} \right)}}{{\sum\limits_{l = 1}^K {\exp \left( {w_l^Tx} \right)} }}            (1)

(1)式也就是,在已知參數w和數據x的情況下,預測值y爲類別k的條件概率。如果y=0,1,而且w0=0,那麼就是邏輯迴歸的形式了。

將(1)式連乘得到在已知現有數據的條件下,w是真正參數的概率,即似然函數:

                                    \begin{array}{l} L\left( w \right) = {\prod\limits_{i = 1}^m {\prod\limits_{k = 1}^K {p\left( {{y^{\left( i \right)}} = k\left| {{x^{\left( i \right)}};w} \right.} \right)} } ^{1\left\{ {{y^{\left( i \right)}} = k} \right\}}}\\ = {\prod\limits_{i = 1}^m {\prod\limits_{k = 1}^K {\frac{{\exp \left( {w_k^T{x^{\left( i \right)}}} \right)}}{{\sum\limits_{l = 1}^K {\exp \left( {w_l^T{x^{\left( i \right)}}} \right)} }}} } ^{1\left\{ {{y^{\left( i \right)}} = k} \right\}}} \end{array}            (2)

由於乘法難解,通過對數可以將乘法轉換爲加法,簡化計算。對數似然函數爲:

                                    \begin{array}{l} l\left( w \right) = \log {\prod\limits_{i = 1}^m {\prod\limits_{k = 1}^K {\frac{{\exp \left( {w_k^T{x^{\left( i \right)}}} \right)}}{{\sum\limits_{l = 1}^K {\exp \left( {w_l^T{x^{\left( i \right)}}} \right)} }}} } ^{1\left\{ {{y^{\left( i \right)}} = k} \right\}}}\\ = \sum\limits_{i = 1}^m {\sum\limits_{k = 1}^K {1\left\{ {{y^{\left( i \right)}} = k} \right\}} \left( {w_k^T{x^{\left( i \right)}} - \log \sum\limits_{l = 1}^K {\exp \left( {w_l^T{x^{\left( i \right)}}} \right)} } \right)} \end{array}            (3)

其中,{I\left\{ {{y^{\left( i \right)}} = k} \right\}}表示當第i個樣本的分類爲k時,返回1,否則爲0。

似然函數表示樣本成爲真實的概率,似然函數越大越好,此時我們可以用梯度上升法求最大值,也可以引入一個負號轉換爲梯度下降法來求解。

代價函數爲:

                                     J\left( w \right) = - \sum\limits_{i = 1}^m {\sum\limits_{k = 1}^K {1\left\{ {{y^{\left( i \right)}} = k} \right\}} \left( {w_k^T{x^{\left( i \right)}} - \log \sum\limits_{l = 1}^K {\exp \left( {w_l^T{x^{\left( i \right)}}} \right)} } \right)}            (3)

下面介紹邏輯斯蒂迴歸中梯度下降法求參數。

2. 梯度下降法求解

求偏導得到代價函數對於參數的梯度,對於每一個輸出目標kk = 1,2 , \cdots , K,其參數w_k的梯度是: 

                                     \frac{{\partial J\left( w \right)}}{{\partial {w_k}}} = - \sum\limits_{i = 1}^m {{x^{\left( i \right)}}\left( {1\left\{ {{y^{\left( i \right)}} = k} \right\} - p\left( {{y^{\left( i \right)}} = k\left| {{x^{\left( i \right)}};w} \right.} \right)} \right)}            (4)

{w_k}代表第k類的參數,是一個向量。

因此,在使用梯度下降法求解時,對於每一個{w_k},k = 1,2, \cdots ,K,每次迭代地更新公式爲:

                                     {w_k}: = {w_k} + \alpha \sum\limits_{i = 1}^m {{x^{\left( i \right)}}\left( {1\left\{ {{y^{(i)}} = k} \right\} - p\left( {{y^{(i)}} = k|{x^{(i)}};w} \right)} \right)}            (5)

參考文獻:

1. 多類別邏輯迴歸(Multinomial Logistic Regression)

2. 機器學習方法(五):邏輯迴歸Logistic Regression,Softmax Regression

 

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