BP神經網路是否優於logistic回歸?

我已經暈了,感覺神經網路和logistic回歸有很多相似的地方,都是用於分類,都用到了S型函數,可它們的原理是否相同呢?神經網路的預測精度是否優於logistic回歸?

再問一個,神經網路和回歸分析應該是兩種處理數據的思路吧?logistic模型的工作原理更偏向於哪一種呢?

初學者,問得有問題的話還望指正!

有看到說先做logistic回歸,顯著的變數用於神經網路,為什麼要這樣呢,logistic不能直接做預測了嗎?


首先,神經網路的最後一層,也就是輸出層,是一個 Logistic Regression (或者 Softmax Regression ),也就是一個線性分類器。

那麼,輸入層和中間那些隱層又在幹嗎呢?你可以把它們看成一種特徵提取的過程,就是把 Logistic Regression 的輸出當作特徵,然後再將它送入下一個 Logistic Regression,一層層變換。神經網路的訓練,實際上就是同時訓練特徵提取演算法以及最後的 Logistic Regression的參數。

為什麼要特徵提取呢,因為 Logistic Regression 本身是一個線性分類器,所以,通過特徵提取,我們可以把原本線性不可分的數據變得線性可分。

要如何訓練呢,最簡單的方法是(隨機,Mini batch)梯度下降法(當然有更複雜的例如MATLAB裡面用的是 BFGS),那要如何算梯度呢,我們通過導數的鏈式法則,得出一種稱為 back propagation 的方法(BP)。

最後,我們得到了一個比 Logistic Regression 複雜得多的模型,它的擬合能力很強,可以處理很多 Logistic Regression處理不了的數據,但是也更容易過擬合( VC inequality 告訴我們,能力越大責任越大),而且損失函數不是凸的,給優化帶來一些困難。

所以我們無法回答什麼是「優於」,就像我們無法回答「菜刀和火箭筒哪個更好」,使用者對機器學習的理解,以及具體數據的情況,參數的選擇,以及訓練的方法,都對模型的效果產生很大影響。

一個建議,普通問題還是用 SVM 吧 SVM 最好用了。


Logistic Regression是一個單層感知器(Single-Layer Perceptron,或者說單層神經網路),只能對線性可分的數據進行分類。

Back Propagation Network是多層感知器(Multi-Layer Perceptron),可以學到任意複雜的函數。

你把LR分類器一層一層套起來就變成神經網路了……


就拿風控評分卡建模的這個方向舉例,並不是這樣的,建模除了以最後技術層面的評價之外,還有業務層面的評價。

說到底模型是要給人用的,並不能要求每個人都有這方面的素養,如果裡面的過程是黑箱或者模型在邏輯上說不通的話,最後這個模型都不一定能上線。畢竟模型是用來解決業務上的問題的,並不是為了建模而建模。如果我們跳出純粹的技術層面來看,假設我們不懂什麼神經網路機器學習,這時好解釋的模型比預測準確的模型更加受歡迎想想也正常啊。

還有一個問題就是特徵的選擇,就拿我們來舉例,模型不是上線就萬事大吉了,特徵工程有可能是一直持續的工作,而新的特徵的挖掘我想也離不開業務本身,新特徵的最原始的來源也應該是大家從日常的業務中總結提煉出來的。每一個特徵有可解釋性這件事本身也是一個模型和業務人員的經驗交叉驗證的過程。在上線之後的模型修改的過程中也很有用。

綜上所述,不管是什麼樣的模型,哪怕就算是幾條規則型的if-then,都是在為業務服務,需要高解釋性就用高解釋性的模型,需要高精度的模型就用高精度的模型,能用規則解決的問題就別上模型


同上,將logistic regression 疊加起來就等同於神經網路了。。。


這個取決於你的數據複雜度,比如特徵很明顯,你可以很輕易地控制特徵的輸入,並認為輸入的特徵向量是足夠邏輯分類器去判斷,那從簡便性上來看用邏輯分類即可。

若你的輸入數據是圖片、或者特徵不明顯的一大串數據,採用BP神經網路的有點就是在最後一層前面的隱藏層已經幫你很好的找到了最有效的特徵(有點像是pca的思路)。使用這些最有效的特徵再在最後一層去做邏輯回歸,那麼能夠很好的做到學習。

總結下就是,特徵值不明顯,想要無腦地讓神經網路自動幫你選擇有效特徵的時候,那就採用BP神經網路會好點。BP神經網路去解決普通邏輯回歸問題能夠解決的,那就是殺雞用牛刀,而且很可能會造成Overfitting


據我的理解,其實邏輯回歸就是一個感知器,一個單層網路。

我覺得他們的區別在以下兩點

1.能與不能。邏輯回歸對於線性可分模型生效,線性可分就是如果有一個線性超平面可以做到將數據集分開,那麼邏輯回歸可以做。如果是非線性可分,邏輯回歸就根本做不到。當然兩層邏輯回歸可以,但這就是神經網路了。最典型的就是異或這個模型,非常簡單的兩個平面分類,但是邏輯回歸就是無法完成。

2.處理的方法。剛剛說了,邏輯回歸對於線性可分的模型生效。那麼如果不同種數據交織在一起,必須要一個超曲面才能分開呢。其實邏輯回歸也能做,用非線性回歸唄。但是非線性回歸常常陷入過擬合,所以覺我非常有限的經驗來看,用的不多。而神經網路是每一層用到邏輯回歸的話都是線性回歸,通過每一層的回歸函數疊加起來無限地逼近分界超平面。具體的證明Hornik(狐尼克,哈哈哈哈)1989年做過,我沒有學習過,一般人也沒有太大必要,知道這個結論就好。


樓上兩位從技術角度進行了回答。我換個角度吧,從我自身工作中來看,邏輯回歸模型的結果更容易去解釋,看上去這點沒什麼,但要讓同事客戶認可你的模型並運用你的模型,一個沒法解釋的模型,哪怕效果真的很好,別人也很難接受,畢竟也不是所有人都懂裡面的原理嘛


推薦閱讀:

想學Python做數據分析,請教安裝問題?
如何找到數據分析的工作?是否很困難?
若想對中國的經濟問題形成解釋力較強的一套認知體系,是邏輯分析比較重要,還是數據分析比較重要?
怎麼看貴陽大數據交易所的成立?

TAG:數據分析 | 機器學習 | 統計 | 神經網路 | Logistic回歸 |