打卡2020-02-19

K折交叉驗證

由于驗證數(shù)據(jù)集不參與模型訓練散休,當訓練數(shù)據(jù)不夠用時,預留大量的驗證數(shù)據(jù)顯得太奢侈恕稠。一種改善的方法是K折交叉驗證(K-fold cross-validation)搞乏。在K折交叉驗證中,我們把原始訓練數(shù)據(jù)集分割成K個不重合的子數(shù)據(jù)集眠屎,然后我們做K次模型訓練和驗證剔交。每一次,我們使用一個子數(shù)據(jù)集驗證模型改衩,并使用其他K-1個子數(shù)據(jù)集來訓練模型岖常。在這K次訓練和驗證中,每次用來驗證模型的子數(shù)據(jù)集都不同葫督。最后竭鞍,我們對這K次訓練誤差和驗證誤差分別求平均。

k折交叉驗證的目的:

  1. 判斷模型是否過擬合(估計模型的泛化誤差)橄镜。(以用來做模型選擇)

一個非常好的解釋:

一偎快、k折交叉驗證的目的(為什么要用k折交叉驗證?)
1.根本原因:數(shù)據(jù)有限蛉鹿,單一的把數(shù)據(jù)都用來做訓練模型滨砍,容易導致過擬合往湿。(反過來妖异,如果數(shù)據(jù)足夠多,完全可以不使用交叉驗證领追。)較小的k值會導致可用于建模的數(shù)據(jù)量太小他膳,所以小數(shù)據(jù)集的交叉驗證結果需要格外注意,建議選擇較大的k值绒窑。
2.理論上:使用了交叉驗證棕孙,模型方差“應該”降低了。
在理想情況下些膨,我們認為k折交叉驗證可以 O(1/k)的效率降低模型方差蟀俊,從而提高模型的泛化能力。通俗地說订雾,我們期望模型在訓練集的多個子數(shù)據(jù)集上表現(xiàn)良好肢预,要勝過單單在整個訓練數(shù)據(jù)集上表現(xiàn)良好。(注意:但實際上洼哎,由于所得到的k折數(shù)據(jù)之間并非獨立而是存在相關性烫映,k折交叉驗證到底能降低多少方差還不確定沼本,同時可能會帶來偏差上升。)
二锭沟、 從方差偏差的角度來看交叉驗證
(1)什么是模型的偏差和方差抽兆?
在機器學習中,我們用訓練集去訓練(學習)一個model(模型)族淮,通常的做法是定義一個loss function(誤差函數(shù))辫红,通過將這個loss最小化過程,來提高模型的性能(performance)瞧筛。然而我們學習一個模型的目的是為了解決實際的問題(或者說是訓練數(shù)據(jù)集這個領域(field)中的一般化問題)厉熟,單純地將訓練數(shù)據(jù)集的loss最小化,并不能保證在解決更一般問題時仍然是最優(yōu)的较幌,甚至不能保證模型是可用的揍瑟。這個訓練數(shù)據(jù)集的loss與一般化的數(shù)據(jù)集的loss之間的差異就叫generalization error=bias+variance。(注意:bias和variance是針對generalization(一般化乍炉,泛化)來說的绢片。)
generalization error分為bias和variance兩個部分。首先如果我們能夠獲得所有可能的數(shù)據(jù)集合岛琼,并在這個數(shù)據(jù)集合上將loss最小化底循,這樣學習到的模型就可以稱之為“真是模型”。當然槐瑞,我們無論如何都不能獲得并訓練所有可能的數(shù)據(jù)熙涤,所以“真是模型”肯定存在,但是無法獲得困檩,我們最終的目標就是去學習一個模型使其更加接近這個“真實模型”祠挫。
而bias和variance分別從兩個方面來描述我們學習到的模型與真實模型之間的差距。
Bias是“用所有可能的訓練數(shù)據(jù)集訓練出的所有模型的輸出的平均值(也就是去取期望的步驟)”與“真是模型”的輸出值之間的差異悼沿;
Variance則是“不同的訓練數(shù)據(jù)集訓練出的模型”的輸出值之間的差異等舔。也就是說bias反映的是模型在樣本上的輸出值與真實值之間的差距,即模型本省的精準度(或者說算法本省的擬合能力)糟趾;variance反映的是模型每次輸出結果與模型期望輸出之間的誤差慌植,即模型的穩(wěn)定性。
這里需要注意的是我們能夠用來學習的訓練數(shù)據(jù)集只是全部數(shù)據(jù)中的一個子集义郑。
Error=Bais^2 +Variance+Noise
————————————————
版權聲明:本文為CSDN博主「Ice Cream_069」的原創(chuàng)文章蝶柿,遵循 CC 4.0 BY-SA 版權協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明非驮。
原文鏈接:https://blog.csdn.net/weixin_36103474/article/details/92799657

k的選擇

2017年的一項研究給出了另一種經(jīng)驗式的選擇方法交汤,作者建議k \approx log(n) 且保證 n / k > 3d即k < n / (3d),n代表了數(shù)據(jù)量院尔,d代表了特征數(shù)蜻展。感興趣的朋友可以對照論文進一步了解喉誊。
from https://blog.csdn.net/Li_yi_chao/article/details/82665745

過擬合,欠擬合

一句話纵顾,過擬合會出現(xiàn)高方差問題伍茄。欠擬合會出現(xiàn)高偏差問題。

防止過擬合的辦法

  • 正則化

  • dropout (dropout相當于一種bagging)

  • early stopping

  • 數(shù)據(jù)增強(cv中常用)

  • simpler model structure

  • regularization

  • Bootstrap/Bagging

  • ensemble

  • data augmentation

  • utilize invariance

  • dropout

  • early stopping

  • Bayesian

正則

  • 正則化為什么不對b加:

首先正則化主要是為了防止過擬合施逾,而過擬合一般表現(xiàn)為模型對于輸入的微小改變產(chǎn)生了輸出的較大差異敷矫,這主要是由于有些參數(shù)w過大的關系,通過對||w||進行懲罰汉额,可以緩解這種問題曹仗。而如果對||b||進行懲罰,其實是沒有作用的蠕搜,因為在對輸出結果的貢獻中怎茫,參數(shù)b對于輸入的改變是不敏感的,不管輸入改變是大還是小妓灌,參數(shù)b的貢獻就只是加個偏置而已轨蛤。舉個例子,如果你在訓練集中虫埂,w和b都表現(xiàn)得很好祥山,但是在測試集上發(fā)生了過擬合,b是不背這個鍋的掉伏,因為它對于所有的數(shù)據(jù)都是一視同仁的(都只是給它們加個偏置)缝呕,要背鍋的是w,因為它會對不同的數(shù)據(jù)產(chǎn)生不一樣的加權斧散」┏#或者說,模型對于輸入的微小改變產(chǎn)生了輸出的較大差異颅湘,這是因為模型的“曲率”太大话侧,而模型的曲率是由w決定的栗精,b不貢獻曲率(對輸入進行求導闯参,b是直接約掉的)。
作者:陽仔的下午茶
鏈接:https://www.zhihu.com/question/66894061/answer/653496474
來源:知乎
著作權歸作者所有悲立。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權鹿寨,非商業(yè)轉(zhuǎn)載請注明出處。

  • L2正則后的參數(shù)更新公式推導
    L_2范數(shù)正則化在模型原損失函數(shù)基礎上添加L_2范數(shù)懲罰項薪夕,從而得到訓練所需要最小化的函數(shù)脚草。L_2范數(shù)懲罰項指的是模型權重參數(shù)每個元素的平方和與一個正的常數(shù)的乘積。以線性回歸中的線性回歸損失函數(shù)為例

\ell(w_1, w_2, b) = \frac{1} {n} \sum_{i=1}^n \frac{1}{2}\left(x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}\right)^2

其中w_1, w_2是權重參數(shù)原献,b是偏差參數(shù)馏慨,樣本i的輸入為x_1^{(i)}, x_2^{(i)}埂淮,標簽為y^{(i)},樣本數(shù)為n写隶。將權重參數(shù)用向量\boldsymbol{w} = [w_1, w_2]表示倔撞,帶有L_2范數(shù)懲罰項的新?lián)p失函數(shù)為

\ell(w_1, w_2, b) + \frac{\lambda} {2n} |\boldsymbol{w}|^2,

其中超參數(shù)\lambda > 0。當權重參數(shù)均為0時慕趴,懲罰項最小痪蝇。當\lambda較大時,懲罰項在損失函數(shù)中的比重較大冕房,這通常會使學到的權重參數(shù)的元素較接近0躏啰。當\lambda設為0時,懲罰項完全不起作用耙册。上式中L_2范數(shù)平方|\boldsymbol{w}|^2展開后得到w_1^2 + w_2^2给僵。
有了L_2范數(shù)懲罰項后,在小批量隨機梯度下降中详拙,我們將線性回歸一節(jié)中權重w_1w_2的迭代方式更改為

w_1 \leftarrow \left(1- \frac{\eta\lambda}{|\mathcal{B}|} \right)w_1 - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}}x_1^{(i)} \left(x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}\right),\\ w_2 \leftarrow \left(1- \frac{\eta\lambda}{|\mathcal{B}|} \right)w_2 - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}}x_2^{(i)} \left(x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}\right).

可見想际,L_2范數(shù)正則化令權重w_1w_2先自乘小于1的數(shù),再減去不含懲罰項的梯度溪厘。因此胡本,L_2范數(shù)正則化又叫權重衰減。權重衰減通過懲罰絕對值較大的模型參數(shù)為需要學習的模型增加了限制畸悬,這可能對過擬合有效侧甫。

dropout

多層感知機中神經(jīng)網(wǎng)絡圖描述了一個單隱藏層的多層感知機。其中輸入個數(shù)為4蹋宦,隱藏單元個數(shù)為5披粟,且隱藏單元h_ii=1, \ldots, 5)的計算表達式為

h_i = \phi\left(x_1 w_{1i} + x_2 w_{2i} + x_3 w_{3i} + x_4 w_{4i} + b_i\right)

這里\phi是激活函數(shù),x_1, \ldots, x_4是輸入冷冗,隱藏單元i的權重參數(shù)為w_{1i}, \ldots, w_{4i}守屉,偏差參數(shù)為b_i。當對該隱藏層使用丟棄法時蒿辙,該層的隱藏單元將有一定概率被丟棄掉拇泛。設丟棄概率為p,那么有p的概率h_i會被清零思灌,有1-p的概率h_i會除以1-p拉伸俺叭。丟棄概率是丟棄法的超參數(shù)。具體來說泰偿,設隨機變量\xi_i為0和1的概率分別為p1-p熄守。使用丟棄法時我們計算新的隱藏單元h_i'

h_i' = \frac{\xi_i}{1-p} h_i

由于E(\xi_i) = 1-p,因此

E(h_i') = \frac{E(\xi_i)}{1-p}h_i = h_i

即丟棄法不改變其輸入的期望值。讓我們對之前多層感知機的神經(jīng)網(wǎng)絡中的隱藏層使用丟棄法裕照,一種可能的結果如圖所示攒发,其中h_2h_5被清零。這時輸出值的計算不再依賴h_2h_5晋南,在反向傳播時晨继,與這兩個隱藏單元相關的權重的梯度均為0。由于在訓練中隱藏層神經(jīng)元的丟棄是隨機的搬俊,即h_1, \ldots, h_5都有可能被清零紊扬,輸出層的計算無法過度依賴h_1, \ldots, h_5中的任一個,從而在訓練模型時起到正則化的作用唉擂,并可以用來應對過擬合餐屎。在測試模型時,我們?yōu)榱四玫礁哟_定性的結果玩祟,一般不使用丟棄法

dropout示例

dropout實現(xiàn):

def dropout(X, drop_prob):
    X = X.float()
    assert 0 <= drop_prob <= 1
    keep_prob = 1 - drop_prob
    # 這種情況下把全部元素都丟棄
    if keep_prob == 0:
        return torch.zeros_like(X)
    mask = (torch.rand(X.shape) < keep_prob).float()
    
    return mask * X / keep_prob

RNN

  1. RNN的數(shù)學表達
    簡單的RNN可以看作是一個只有一個隱藏層的全連接神經(jīng)網(wǎng)絡腹缩,RNN模型關鍵的參數(shù)只有W_eW_h兩個矩陣,在所有時間步這兩個矩陣都是一樣的空扎。理解RNN關鍵的一點是在計算H_t的時候會用到上一步的H_{t-1}藏鹊。

\boldsymbol{X}_t \in \mathbb{R}^{n \times d}是時間步t的小批量輸入,\boldsymbol{H}_t \in \mathbb{R}^{n \times h}為t時刻的隱藏層結果转锈,則:
\boldsymbol{H}_t = \phi(\boldsymbol{X}_t \boldsymbol{W}_{e} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{h} + \boldsymbol盘寡_h).
其中,\boldsymbol{W}_{e} \in \mathbb{R}^{d \times h}(d為embedding的維度撮慨,h為隱藏層的神經(jīng)元的個數(shù))竿痰,\boldsymbol{W}_{h} \in \mathbb{R}^{h \times h}\boldsymbol砌溺_{h} \in \mathbb{R}^{1 \times h}影涉,\phi函數(shù)是非線性激活函數(shù)。由于引入了\boldsymbol{H}_{t-1} \boldsymbol{W}_{h}规伐,H_{t}能夠捕捉截至當前時間步的序列的歷史信息蟹倾。由于H_{t}的計算基于H_{t-1},上式的計算是循環(huán)的猖闪。
在時間步t鲜棠,輸出層的輸出為:
\boldsymbol{O}_t = \boldsymbol{H}_t \boldsymbol{U} + \boldsymbol_q.
其中\boldsymbol{U} \in \mathbb{R}^{h \times q}萧朝,\boldsymbol岔留_q \in \mathbb{R}^{1 \times q}夏哭,q為輸出的類別的個數(shù)检柬,一般為詞匯量的個數(shù)vocab_size。

  1. RNN的損失函數(shù)

J^{(t)}(\theta) = CE(y^{(t)}, \hat y^{(t)})\\ = -\sum_{w \in V} y_w ^{(t)} log \hat y_w^{(t)}\\ = - log \hat y^{(t)}_{y^{(t)}} \\ = - log \hat y^{(t)}_{x_{t+1}}
y^{(t)}為x_{t+1}也就是下一個時刻對應的詞,是一個one-hot表達何址。\hat y^{(t)}是第t步的預測輸出里逆。
J(\theta) = \frac{1}{T} \sum_{t=1}^T J^{(t)}(\theta) \\ = - \frac{1}{T} \sum_{t=1}^T log \hat y^{(t)}_{y_{(t)}}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市用爪,隨后出現(xiàn)的幾起案子原押,更是在濱河造成了極大的恐慌,老刑警劉巖偎血,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诸衔,死亡現(xiàn)場離奇詭異,居然都是意外死亡颇玷,警方通過查閱死者的電腦和手機笨农,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帖渠,“玉大人谒亦,你說我怎么就攤上這事】战迹” “怎么了份招?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狞甚。 經(jīng)常有香客問我锁摔,道長,這世上最難降的妖魔是什么哼审? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任鄙漏,我火速辦了婚禮,結果婚禮上棺蛛,老公的妹妹穿的比我還像新娘怔蚌。我一直安慰自己,他們只是感情好旁赊,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布桦踊。 她就那樣靜靜地躺著,像睡著了一般终畅。 火紅的嫁衣襯著肌膚如雪籍胯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天离福,我揣著相機與錄音杖狼,去河邊找鬼。 笑死妖爷,一個胖子當著我的面吹牛蝶涩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绿聘,長吁一口氣:“原來是場噩夢啊……” “哼嗽上!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抡爹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅萧,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年哲思,在試婚紗的時候發(fā)現(xiàn)自己被綠了惯殊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡也殖,死狀恐怖土思,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情忆嗜,我是刑警寧澤己儒,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站捆毫,受9級特大地震影響闪湾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绩卤,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一途样、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧濒憋,春花似錦何暇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黔夭,卻和暖如春宏胯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背本姥。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工肩袍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婚惫。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓氛赐,卻偏偏與公主長得像魂爪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鹰祸,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容