本文簡單介紹一下Logistic Regression的定義和原理。對於(Linear Regression)線性迴歸模型,輸入 ,網絡參數爲 和 ,輸出值爲 ,是個連續值。可是分類問題最終的輸出值應該爲離散的,那麼如何轉化爲分類問題呢?html
能夠考慮增長一個 函數,變爲 ,這個 也叫sigmoid函數或logistic函數,這樣輸出的值就能壓縮到 ,咱們能夠將這個值等效爲probabilitymarkdown
對於Regression問題,其目標是使pred(預測值)近似於輸出的 值,即最小化 ;對於Classification問題,其目標是最大化accuracy,或者說最小化 。二者最主要的區別是traning的目標不一樣,這裏可能會有疑問,why not maximize accuracy?網絡
由於通常acc的計算公式爲: app
對於一個二分類問題,咱們假設閾值爲0.5,即 ,認爲是第一類, ,咱們認爲是第二類。一開始確定會有分類不正確的,假設真實類別爲1,預測值爲0.4,則網絡將其歸爲0這一類,在網絡更新後,預測值變大爲0.45,雖然更加靠近1,更加接近真實值,可是因爲沒有發生本質的變化,即仍然沒有大於0.5函數
再比方說,假如一開始一個預測值爲0.499,真實類別爲1,網絡更新後,預測值變爲0.501,預測正確了,可是計算梯度時,可能會致使梯度很是很是大,甚至不連續spa
上面兩個問題總結起來就是:code
最後一個問題,why call logistic regression?logistic好理解,由於使用了 函數,可是爲何叫regression,而不是classification呢?這個問題的解答網上有不少爭議,其中一個解釋是說,由於一開始作classification的時候,用的就是MSE,因此叫作regression(解決regression問題經常使用的loss就是MSE),可是如今解決classification問題用的是Cross Entropy,只不過叫法以及被你們習慣了,因此沒改orm