神經網路的隱含層越多、模型引數越多,模型擬合能力更強,同時訓練的難度也會增加。
減少模型引數的方法有兩種:逐層訓練和權重共享。權重共享思路是現有深度學習的基礎,它大大減少了模型的引數。
深度學習並不需要很多的人工特徵工程,利用其強大的建模能力來代替,整個訓練的過程是端到端的過程(end-to-end);其次深度學習模型引數居多,訓練過程中需要大量的訓練樣本。
深度學習多層網路可以將資料進行多層對映,進行逐層學習。在卷積神經網路網路中底層網路可以學習到影象的底層信息,如邊緣和角點,高層網路可以學習到影象的直接和複雜形狀。
深度學習比較適用於非結構資料,適合解決有 「語義鴻溝」 的問題。當然也不是說神經網路不能做結構化資料任務,它在非結構化資料比較佔優。
能夠直接改網路結構,能夠動手訓練網路。
培養業務思維,試著從業務和使用者的角度去看乙個演算法模型。
深度學習:常見的模型結構、常見的網路層、優化器、訓練技巧;
全連線網路(full connected,fc)是基礎的深度學習模型,它的每乙個神經元把前一層所有神經元的輸出作為輸入,其輸出又會給下一層的每乙個神經元作為輸入,相鄰層的每個神經元都有「連線」。
在機器學習中,正則化是指基於增強模型泛化能力的先驗知識。深度學習擁有較多的引數,如果沒有正則化技術,模型很容易陷入過擬合狀態。深度學習的正則化技術包括引數正則化、dropout、earlystop、資料增強、梯度裁剪和標籤平滑等技術。
dropout
dropout 是指在深度學習網路的訓練過程中,對於每層網路單元,可以按照一定的概率將其暫時從網路中丟棄。因此每次前向傳播的過程中,被丟棄的節點是隨機選擇的。對於隨機梯度下降來說,由於是隨機丟棄,故而每乙個 mini-batch 都在訓練不同的網路
資料增強(data augmentation)
資料增強是用來擴充資料集,可以進一步減緩模型過擬合的情況。在影象分類任務中,影象的翻轉、旋轉、顏色改變、邊緣處理等操作都不會改變影象的標籤。在其他任務中,也可以使用類似的資料增強操作。
卷積神經網路與全連線網路非常相似:它們都是由神經元組成,都具有學習能力的權重和偏差。神經元都得到一些輸入資料,進行內積運算後再進行啟用函式運算。卷積神經網路的訓練過程也是端到端的過程:輸入是原始的影象畫素,輸出是不同類別的評分。
卷積神經網路一般由卷積層、啟用函式、池化層和全連線層組成。
卷積層由眾多的卷積核組成,卷積核會以滑動的方式對輸入範圍的輸入進行內機求和操作。卷積是一種區域性操作,通過一定大小的卷積核作用於區域性影象區域獲得影象的區域性資訊。卷積層本質就是影象濾波器,而濾波的引數可以在訓練中動態調整,除了可以學習到邊緣濾波器,還可以學習到檢測形狀、顏色的資訊。
池化層的作用是進行特徵降維和特徵聚合的操作。卷積層一般包含多個卷積核,因此卷積操作會提取多維的資料,但並不是每個維度的特徵是有效的。池化層可以提取每個通道區域性的最大值和平均值等區域性特徵,而這些特徵往往具有較好的尺度不變性。
迴圈神經網路(recurrentneuralnetworks,rnn)是一類具有短期記憶能力的神經網路。在迴圈神經網路中,神經元不但可以接受其它神經元的資訊,也可以接受自身的資訊,形成具有環路的網路結構。
rnn 主要用於序列資料的分類問題:輸入為序列,輸出為類別。比如在文字分類中,輸入資料為單詞的序列,輸出為該文字的類別。
深度學習原理少但實踐性非常強,基本上很多的模型的驗證只能通過訓練來完成。同時深度學習有眾多的網路結構和超引數,因此需要反覆嘗試。訓練深度學習模型需要 gpu 的硬體支援,也需要較多的訓練時間,如何有效的訓練深度學習模型逐漸成為了一門學問。
資料擴增很重要,會直接影響模型的泛化效能;同時不同的任務資料擴增的方式可能存在差異,
所以要具體任務具體定製資料擴增的方式。
dropout 只在訓練階段開啟,在測試階段要保持關閉,否則模型的**結構會帶有一定隨機性。
在訓練過程中要觀察誤差曲線以及學習率,early stop 能夠減緩過擬合的情況;
同時與傳統的機器學習模型不同,深度學習模型的精度與模型的複雜度、資料量、正則化、資料擴增等因素直接相關。
深度學習筆記
在深度神經網路中,通常使用一種叫修正線性單元 rectified linear unit,relu 作為神經元的啟用函式。relu函式其實是分段線性函式,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。可別小看這個簡單的操作,正因為有了這單側抑制,才使得神經網路中的神經元也具有了稀疏啟用性...
深度學習筆記
如果沒有啟用函式,或則是線性啟用函式,g z z,那麼在深度神經網路中,相當於都做的是線性變換,多個線性變換的組合還是線性變換。這樣的結果和邏輯回歸沒什麼區別,也就是說,這種情況下,無論神經網路的深度有多深,也就等價於乙個一層的網路,隱藏層沒什麼作用。因此需要非線性啟用函式。1.什麼時候插入,ski...
深度學習筆記
tensorflow 不僅是乙個實現機器學習演算法的介面,也是一種框架,也可用於線性回歸 邏輯回歸 隨機森林等演算法 tensorflow 使用資料流圖來規劃計算流程,每個運算操作作為乙個節點 node,節點之間的連線稱為邊,邊中流動的資料稱為張量,故而得名 tensorflow,預算操作可以有自己...