<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 10 -- Logistic Regression 上一節課,我們介紹了Linear Regression線性回歸,以及用平方錯誤來尋找最佳的權重向量w,獲得最好的線性預測。本節課將介紹Logistic Regression邏輯回歸問題。 ### **一、Logistic Regression Problem** 一個心臟病預測的問題:根據患者的年齡、血壓、體重等信息,來預測患者是否會有心臟病。很明顯這是一個二分類問題,其輸出y只有{-1,1}兩種情況。 二元分類,一般情況下,理想的目標函數f(x)&gt;0.5,則判斷為正類1;若f(x)&lt;0.5,則判斷為負類-1。 ![這里寫圖片描述](https://img.kancloud.cn/85/f8/85f8210dea7fa38019566f56a4f067b4_566x390.jpg) 但是,如果我們想知道的不是患者有沒有心臟病,而是到底患者有多大的幾率是心臟病。這表示,我們更關心的是目標函數的值(分布在0,1之間),表示是正類的概率(正類表示是心臟病)。這跟我們原來討論的二分類問題不太一樣,我們把這個問題稱為軟性二分類問題(’soft’ binary classification)。這個值越接近1,表示正類的可能性越大;越接近0,表示負類的可能性越大。 ![這里寫圖片描述](https://img.kancloud.cn/4d/93/4d93f64b496b9db13e6a51cd7414c100_566x99.jpg) 對于軟性二分類問題,理想的數據是分布在[0,1]之間的具體值,但是實際中的數據只可能是0或者1,我們可以把實際中的數據看成是理想數據加上了噪聲的影響。 ![這里寫圖片描述](https://img.kancloud.cn/34/19/34196719e323311a44ec27edd957fbd2_566x296.jpg) 如果目標函數是![](https://img.kancloud.cn/35/5a/355a5d63b74dc7ce174ac238ab21e9f4_165x19.jpg)的話,我們如何找到一個好的Hypothesis跟這個目標函數很接近呢? 首先,根據我們之前的做法,對所有的特征值進行加權處理。計算的結果s,我們稱之為’risk score’: ![這里寫圖片描述](https://img.kancloud.cn/56/ad/56ad860bdac468b78825611b5335f38d_566x286.jpg) 但是特征加權和![](https://img.kancloud.cn/ce/c0/cec002a00103b52822bbbdbc46a9337b_106x18.jpg),如何將s值限定在[0,1]之間呢?一個方法是使用sigmoid Function,記為![](https://img.kancloud.cn/54/7f/547fdd5d262a7d2893c4a22bb35dd700_27x18.jpg)。那么我們的目標就是找到一個hypothesis:![](https://img.kancloud.cn/a0/77/a077896faa87cc99c0320ab40f3dc39a_103x18.jpg)。 ![這里寫圖片描述](https://img.kancloud.cn/5f/9e/5f9e7c8e79d0ab9c18113227ff623e90_566x250.jpg) Sigmoid Function函數記為![](https://img.kancloud.cn/54/7f/547fdd5d262a7d2893c4a22bb35dd700_27x18.jpg),滿足![](https://img.kancloud.cn/24/29/2429e27ebf0af9176eb84fa6a5de8b03_80x18.jpg),![](https://img.kancloud.cn/0a/cf/0acf385b2f4ef1dde3b454bca97c38b5_61x35.jpg),![](https://img.kancloud.cn/52/c1/52c197e4345fa34ac227582120b6abaf_78x18.jpg)。這個函數是平滑的、單調的S型函數。則對于邏輯回歸問題,hypothesis就是這樣的形式: 那我們的目標就是求出這個預測函數h(x),使它接近目標函數f(x)。 ### **二、Logistic Regression Error** 現在我們將Logistic Regression與之前講的Linear Classification、Linear Regression做個比較: ![這里寫圖片描述](https://img.kancloud.cn/34/8f/348f06d9af05baf1410f1b64ea31558f_566x202.jpg) 這三個線性模型都會用到線性scoring function ![](https://img.kancloud.cn/a2/95/a295d931a09ff4bc1bd83aa4b7b6454e_59x14.jpg)。linear classification的誤差使用的是0/1 err;linear regression的誤差使用的是squared err。那么logistic regression的誤差該如何定義呢? 先介紹一下“似然性”的概念。目標函數![](https://img.kancloud.cn/21/0f/210f029bec15f3c941aeec157e37def8_112x18.jpg),如果我們找到了hypothesis很接近target function。也就是說,在所有的Hypothesis集合中找到一個hypothesis與target function最接近,能產生同樣的數據集D,包含y輸出label,則稱這個hypothesis是最大似然likelihood。 ![這里寫圖片描述](https://img.kancloud.cn/5f/ca/5fca722e24da4e0a2021158d1a783103_566x401.jpg) logistic function: ![](https://img.kancloud.cn/a0/77/a077896faa87cc99c0320ab40f3dc39a_103x18.jpg)滿足一個性質:![](https://img.kancloud.cn/aa/6b/aa6b021210bffa30452b7d8c6e579209_122x18.jpg)。那么,似然性h: 因為![](https://img.kancloud.cn/69/04/6904bd49e566eb59eb0fb7a26143d3f1_42x18.jpg)對所有的h來說,都是一樣的,所以我們可以忽略它。那么我們可以得到logistic h正比于所有的![](https://img.kancloud.cn/70/a0/70a0951c206216d3a86cf734382baff0_46x18.jpg)乘積。我們的目標就是讓乘積值最大化。 ![這里寫圖片描述](https://img.kancloud.cn/78/75/78755ea900ca59278d852e98b38929db_566x85.jpg) 如果將w代入的話: ![這里寫圖片描述](https://img.kancloud.cn/93/99/939911db677eb34846a743b0217fbc96_566x84.jpg) 為了把連乘問題簡化計算,我們可以引入ln操作,讓連乘轉化為連加: ![這里寫圖片描述](https://img.kancloud.cn/22/11/2211615451ecf73544172e2cab5a12f6_566x85.jpg) 接著,我們將maximize問題轉化為minimize問題,添加一個負號就行,并引入平均數操作![](https://img.kancloud.cn/bd/3c/bd3ce64cc7783694f4daf817e8df31ea_15x35.jpg): ![這里寫圖片描述](https://img.kancloud.cn/d2/3e/d23e8e1a1fce5af7b4dc5f00caf3c696_566x84.jpg) 將logistic function的表達式帶入,那么minimize問題就會轉化為如下形式: ![這里寫圖片描述](https://img.kancloud.cn/4e/88/4e883bec16c48275fcab55416c901016_566x182.jpg) 至此,我們得到了logistic regression的err function,稱之為cross-entropy error交叉熵誤差: ![這里寫圖片描述](https://img.kancloud.cn/01/bf/01bfc9d2325d1ac435ba88d6a35739d9_566x75.jpg) ### **三、Gradient of Logistic Regression Error** 我們已經推導了![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)的表達式,那接下來的問題就是如何找到合適的向量w,讓![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小。 ![這里寫圖片描述](https://img.kancloud.cn/ad/1b/ad1b9fb2acd637ee134e6c556d0c5a79_566x71.jpg) Logistic Regression的![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)是連續、可微、二次可微的凸曲線(開口向上),根據之前Linear Regression的思路,我們只要計算![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)的梯度為零時的w,即為最優解。 ![這里寫圖片描述](https://img.kancloud.cn/42/3f/423f761ae2758b19d03af0da9284c12c_566x185.jpg) 對![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)計算梯度,學過微積分的都應該很容易計算出來: ![這里寫圖片描述](https://img.kancloud.cn/04/63/0463d0c62edddff72d4ad53627e11eb8_566x293.jpg) 最終得到的梯度表達式為: ![這里寫圖片描述](https://img.kancloud.cn/b6/d5/b6d552c98510cda5bc409fa8c8ad08f4_464x73.jpg) 為了計算![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小值,我們就要找到讓![](https://img.kancloud.cn/9b/6f/9b6fa3c7cc6257fa71e0ac831c2c411e_62x18.jpg)等于0的位置。 ![這里寫圖片描述](https://img.kancloud.cn/f6/29/f62982d6c3f740ecdc4584148628bf23_566x145.jpg) 上式可以看成![](https://img.kancloud.cn/a7/93/a793f30b8b21daff4ed18f262fd854de_86x18.jpg)是![](https://img.kancloud.cn/4c/5d/4c5daabee708c84bcb4594dcf2b041d9_43x10.jpg)的線性加權。要求![](https://img.kancloud.cn/a7/93/a793f30b8b21daff4ed18f262fd854de_86x18.jpg)與![](https://img.kancloud.cn/4c/5d/4c5daabee708c84bcb4594dcf2b041d9_43x10.jpg)的線性加權和為0,那么一種情況是線性可分,如果所有的權重![](https://img.kancloud.cn/a7/93/a793f30b8b21daff4ed18f262fd854de_86x18.jpg)為0,那就能保證![](https://img.kancloud.cn/9b/6f/9b6fa3c7cc6257fa71e0ac831c2c411e_62x18.jpg)為0。![](https://img.kancloud.cn/a7/93/a793f30b8b21daff4ed18f262fd854de_86x18.jpg)是sigmoid function,根據其特性,只要讓![](https://img.kancloud.cn/2e/33/2e33cee9867c3df38b231a73b5531892_82x17.jpg),即![](https://img.kancloud.cn/eb/b6/ebb6e7fb8f6d1301bf308e43edacf9cb_71x17.jpg)。![](https://img.kancloud.cn/eb/b6/ebb6e7fb8f6d1301bf308e43edacf9cb_71x17.jpg)表示對于所有的點,![](https://img.kancloud.cn/73/d0/73d0260c5c177176a432560c1e5aa2ca_15x10.jpg)與![](https://img.kancloud.cn/19/56/1956c8cfdd579a278866f0b4d8c2503e_38x17.jpg)都是同號的,這表示數據集D必須是全部線性可分的才能成立。 然而,保證所有的權重![](https://img.kancloud.cn/a7/93/a793f30b8b21daff4ed18f262fd854de_86x18.jpg)為0是不太現實的,總有不等于0的時候,那么另一種常見的情況是非線性可分,只能通過使加權和為零,來求解w。這種情況沒有closed-form解,與Linear Regression不同,只能用迭代方法求解。 ![這里寫圖片描述](https://img.kancloud.cn/ea/9b/ea9bbe79d4e97e846bb171d7907f9120_566x216.jpg) 之前所說的Linear Regression有closed-form解,可以說是“一步登天”的;但是PLA算法是一步一步修正迭代進行的,每次對錯誤點進行修正,不斷更新w值。PLA的迭代優化過程表示如下: ![這里寫圖片描述](https://img.kancloud.cn/39/04/39047c3523c030b37f97b389efaa2b26_566x362.jpg) w每次更新包含兩個內容:一個是每次更新的方向![](https://img.kancloud.cn/73/d0/73d0260c5c177176a432560c1e5aa2ca_15x10.jpg),用![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg)表示,另一個是每次更新的步長![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)。參數![](https://img.kancloud.cn/97/df/97dfe76113f04eb10406c05999a71f13_35x18.jpg)和終止條件決定了我們的迭代優化算法。 ![這里寫圖片描述](https://img.kancloud.cn/07/7f/077f005abbd27285f7d60b651435e2c2_566x245.jpg) ### **四、Gradient Descent** 根據上一小節PLA的思想,迭代優化讓每次w都有更新: ![這里寫圖片描述](https://img.kancloud.cn/b3/52/b35227836df5f0f543df416a8f9d5daa_566x84.jpg) 我們把![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)曲線看做是一個山谷的話,要求![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小,即可比作下山的過程。整個下山過程由兩個因素影響:一個是下山的單位方向![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg);另外一個是下山的步長![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)。 ![這里寫圖片描述](https://img.kancloud.cn/a8/a5/a8a5e281c44e8de75aec422e0128a012_566x273.jpg) 利用微分思想和線性近似,假設每次下山我們只前進一小步,即![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)很小,那么根據泰勒Taylor一階展開,可以得到: 關于Taylor展開的介紹,可參考我另一篇博客: [多元函數的泰勒(Taylor)展開式](http://blog.csdn.net/red_stone1/article/details/70260070) 迭代的目的是讓![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)越來越小,即讓![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)。![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)是標量,因為如果兩個向量方向相反的話,那么他們的內積最小(為負),也就是說如果方向![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg)與梯度![](https://img.kancloud.cn/dd/bd/ddbd51eb2d63e67a7cabea056818d2ec_66x18.jpg)反向的話,那么就能保證每次迭代![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)都成立。則,我們令下降方向![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg)為: ![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg)是單位向量,![](https://img.kancloud.cn/cf/29/cf2954359710eee3edb8c08f4f01bea7_8x7.jpg)每次都是沿著梯度的反方向走,這種方法稱為梯度下降(gradient descent)算法。那么每次迭代公式就可以寫成: 下面討論一下![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)的大小對迭代優化的影響:![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)如果太小的話,那么下降的速度就會很慢;![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)如果太大的話,那么之前利用Taylor展開的方法就不準了,造成下降很不穩定,甚至會上升。因此,![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)應該選擇合適的值,一種方法是在梯度較小的時候,選擇小的![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg),梯度較大的時候,選擇大的![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg),即![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)正比于![](https://img.kancloud.cn/91/fa/91fa2365c41a60f550e4ef95fcc1add1_83x18.jpg)。這樣保證了能夠快速、穩定地得到最小值![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)。 ![這里寫圖片描述](https://img.kancloud.cn/4b/a4/4ba40bfecb3e72409417a6aa742cbaf3_566x305.jpg) 對學習速率![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)做個更修正,梯度下降算法的迭代公式可以寫成: 其中: 總結一下基于梯度下降的Logistic Regression算法步驟如下: * **初始化![](https://img.kancloud.cn/63/a9/63a9ea9b3d4d11d88fb6223985211c0a_18x10.jpg)** * **計算梯度![](https://img.kancloud.cn/dd/bd/ddbd51eb2d63e67a7cabea056818d2ec_66x18.jpg)** * **迭代跟新![](https://img.kancloud.cn/92/66/926678a10eb698d1096b91823f076ef2_168x18.jpg)** * **滿足![](https://img.kancloud.cn/45/55/45553d0a3afa0484396dbedb21077269_112x18.jpg)或者達到迭代次數,迭代結束** ### **五、總結** 我們今天介紹了Logistic Regression。首先,從邏輯回歸的問題出發,將![](https://img.kancloud.cn/b4/ad/b4ad98015e0455a53a6d8c03869411de_58x18.jpg)作為目標函數,將![](https://img.kancloud.cn/e8/3a/e83a735e0ea7bbd4edc01342e13f97df_50x18.jpg)作為hypothesis。接著,我們定義了logistic regression的err function,稱之為cross-entropy error交叉熵誤差。然后,我們計算logistic regression error的梯度,最后,通過梯度下降算法,計算![](https://img.kancloud.cn/dd/bd/ddbd51eb2d63e67a7cabea056818d2ec_66x18.jpg)時對應的![](https://img.kancloud.cn/bb/e5/bbe5423fc318ad75c0f7b29a51328e7e_16x10.jpg)值。 **_注明:_** 文章中所有的圖片均來自臺灣大學林軒田《機器學習基石》課程
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看