嶺迴歸與套索正則化(ridge and lasso regularization)
/ rij and LASS-oh reg-yuh-luh-ri-ZAY-shun /
正則化是你給模型套上的一根牽繩,好讓它別把過去解釋得太過頭。一個特徵眾多的模型,能把自己扭曲到完美貼合訓練資料——連同其中的隨機雜訊一起——然後在任何新東西上一敗塗地。這就是過擬合。嶺與套索是兩根有名的牽繩:兩者都給模型的目標添上一項對「大權重」的懲罰,逼它為每一分複雜度交代理由。這等於在對模型說:「去擬合資料,但把你的係數壓小,除非它們真的配得上那麼大。」
兩者的差別在懲罰的形狀,而這點小小的不同,改變了一切。嶺(又稱L2)懲罰的是權重的平方之和;它把所有係數平滑地朝零收縮,卻很少把哪個精確地壓到零,於是每個特徵都保留一點發言權。套索(L1)懲罰的是權重絕對值之和,而這帶來一個驚人的副作用:它把最弱的那些係數一路推到精確的零,等於把那些特徵關掉。因此套索做的是自動特徵選擇,遞給你一個更簡單、只用那些要緊輸入的模型。
怎麼選,取決於你的目標。當你相信許多特徵各自貢獻一點點、你只想馴服它們的影響時——尤其在特徵彼此相關時——用嶺。當你懷疑真正要緊的只有少數幾個特徵、想讓模型把它們找出來留下、其餘統統丟掉,以得到一個更乾淨、更可解釋的結果時——用套索。兩者都有一個旋鈕——牽繩拉多緊——靠交叉驗證來調:太鬆了你仍會過擬合,太緊了又會把模型勒成欠擬合,連真實的模式也錯過。
你用100個特徵預測房價。普通迴歸給出一堆狂野的係數,在訓練集上大獲全勝,卻在新房子上撲街。加上一個套索懲罰:它把85個弱特徵(地塊朝向、油漆顏色……)清零,留下15個(面積、地段、房齡)。這個更精簡的模型把新房子預測得更好——而且你能讀出它倚仗的是什麼。
套索把弱特徵清零;嶺則把它們全部收縮、但都保留。
值得背下來的一句話差別:套索(L1)能把特徵清零、從而做選擇;嶺(L2)把一切收縮、卻全數保留。懲罰強度是一個超參數——太強了,你就會從過擬合盪到欠擬合那一端。