邏輯迴歸是用來作分類算法的,你們都熟悉線性迴歸,通常形式是Y=aX+b,y的取值範圍是[-∞, +∞],有這麼多取值,怎麼進行分類呢?不用擔憂,偉大的數學家已經爲咱們找到了一個方法。git
也就是把Y的結果帶入一個非線性變換的Sigmoid函數中,便可獲得[0,1]之間取值範圍的數S,S能夠把它當作是一個機率值,若是咱們設置機率閾值爲0.5,那麼S大於0.5能夠當作是正樣本,小於0.5當作是負樣本,就能夠進行分類了。github
函數公式以下:算法
函數中t不管取什麼值,其結果都在[0,-1]的區間內,回想一下,一個分類問題就有兩種答案,一種是「是」,一種是「否」,那0對應着「否」,1對應着「是」,那又有人問了,你這不是[0,1]的區間嗎,怎麼會只有0和1呢?這個問題問得好,咱們假設分類的閾值是0.5,那麼超過0.5的歸爲1分類,低於0.5的歸爲0分類,閾值是能夠本身設定的。app
好了,接下來咱們把aX+b帶入t中就獲得了咱們的邏輯迴歸的通常模型方程:函數
結果P也能夠理解爲機率,換句話說機率大於0.5的屬於1分類,機率小於0.5的屬於0分類,這就達到了分類的目的。優化
邏輯迴歸的損失函數是 log loss,也就是對數似然函數,函數公式以下:搜索引擎
公式中的 y=1 表示的是真實值爲1時用第一個公式,真實 y=0 用第二個公式計算損失。爲何要加上log函數呢?能夠試想一下,當真實樣本爲1是,但h=0機率,那麼log0=∞,這就對模型最大的懲罰力度;當h=1時,那麼log1=0,至關於沒有懲罰,也就是沒有損失,達到最優結果。因此數學家就想出了用log函數來表示損失函數。3d
最後按照梯度降低法同樣,求解極小值點,獲得想要的模型效果。rest
能夠的,其實咱們能夠從二分類問題過分到多分類問題(one vs rest),思路步驟以下:blog
1.將類型class1看做正樣本,其餘類型所有看做負樣本,而後咱們就能夠獲得樣本標記類型爲該類型的機率p1。
2.而後再將另外類型class2看做正樣本,其餘類型所有看做負樣本,同理獲得p2。
3.以此循環,咱們能夠獲得該待預測樣本的標記類型分別爲類型class i時的機率pi,最後咱們取pi中最大的那個機率對應的樣本標記類型做爲咱們的待預測樣本類型。
總之仍是以二分類來依次劃分,並求出最大機率結果。
梯度降低、隨機梯度降低、mini 隨機梯度降低降法。隨機梯度降低不但速度上比原始梯度降低要快,局部最優化問題時能夠必定程度上抑制局部最優解的發生。
這裏詳細說一下牛頓法的基本原理和牛頓法的應用方式。牛頓法其實就是經過切線與x軸的交點不斷更新切線的位置,直到達到曲線與x軸的交點獲得方程解。在實際應用中咱們由於經常要求解凸優化問題,也就是要求解函數一階導數爲0的位置,而牛頓法剛好能夠給這種問題提供解決方法。實際應用中牛頓法首先選擇一個點做爲起始點,並進行一次二階泰勒展開獲得導數爲0的點進行一個更新,直到達到要求,這時牛頓法也就成了二階求解問題,比一階方法更快。咱們經常看到的x一般爲一個多維向量,這也就引出了Hessian矩陣的概念(就是x的二階導數矩陣)。
缺點:牛頓法是定長迭代,沒有步長因子,因此不能保證函數值穩定的降低,嚴重時甚至會失敗。還有就是牛頓法要求函數必定是二階可導的。並且計算Hessian矩陣的逆複雜度很大。
擬牛頓法: 不用二階偏導而是構造出Hessian矩陣的近似正定對稱矩陣的方法稱爲擬牛頓法。擬牛頓法的思路就是用一個特別的表達形式來模擬Hessian矩陣或者是他的逆使得表達式知足擬牛頓條件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩陣)、 L-BFGS(能夠減小BFGS所需的存儲空間)。
全部的參數w都會變成0。
做者:@mantchs
GitHub:https://github.com/NLP-LOVE/ML-NLP
歡迎你們加入討論!共同完善此項目!羣號:【541954936】