深度學習模型儲存 四種深度學習模型介紹

2021-10-11 16:59:28 字數 1971 閱讀 6165

深度學習源於神經網路的研究,可理解為深層的神經網路。通過它可以獲得深層次的特徵表示,免除人工選取特徵的繁複冗雜和高維資料的維度災難問題。目前較為公認的深度學習的基本模型包括:

dbn可用於特徵提取和資料分類等。基於rbm的dbn由多個rbm堆疊而成,其結構如下圖所示。

網路前向運算時,輸入資料從低層rbm輸入網路,逐層向前運算,得到網路輸出。網路訓練過程,不同於傳統的人工神經網路(artificial neural network),分為兩個階段:

預訓練階段,從低層開始,每個rbm單獨訓練,以最小化rbm的網路能量為訓練目標。低層rbm訓練完成後,其隱層輸出作為高層rbm的輸入,繼續訓練高層rbm。以此類推,逐層訓練,直至所有rbm訓練完成。預訓練階段,只使用了輸入資料,沒有使用資料標籤,屬於無監督學習(unsupervised learning)。

全域性微調階段,以訓練好的rbm之間的權重和偏置作為深度信念網路的初始權重和偏置,以資料的標籤作為監督訊號計算網路誤差,利用bp(back propagation)演算法計算各層誤差,使用梯度下降法完成各層權重和偏置的調節。

類似於dbn,sae由多個ae堆疊而成,其結構如下圖所示。

sae前向計算類似於dbn,其訓練過程也分為預訓練和全域性微調兩個階段。不同於rbm的是,ae之間的連線是不對稱的。每個ae可視為乙個單隱層的人工神經網路,其輸出目標即此ae的輸入。

在預訓練階段,從低層開始,每個ae單獨訓練,以最小化其輸出和輸入之間的誤差為目標。低層ae訓練完成後,其隱層輸出作為高層ae的輸入,繼續訓練高層ae。以此類推,逐層訓練,直至將所有ae訓練完成。同樣地,sae的預訓練階段也只使用了輸入資料,屬於無監督學習。

在全域性微調階段,以訓練好的ae的輸入層和隱層之間的權重和偏置作為堆疊自動編碼器的初始權重和偏置,以資料的標籤作為監督訊號計算網路誤差,利用bp演算法計算各層誤差,使用梯度下降法完成各層權重和偏置的調節。

cnn可提取輸入資料的區域性特徵,並逐層組合抽象生成高層特徵,可用於影象識別等。cnn由卷積層和次取樣層(也叫pooling層)交叉堆疊而成,其結構如下圖所示。

網路前向計算時,在卷積層,可同時有多個卷積核對輸入進行卷積運算,生成多個特徵圖,每個特徵圖的維度相對於輸入的維度有所降低。在次取樣層,每個特徵圖經過池化(pooling)得到維度進一步降低的對應圖。

多個卷積層和次取樣層交叉堆疊後,經過全連線層到達網路輸出。網路的訓練類似於傳統的人工神經網路訓練方法,採用bp演算法將誤差逐層反向傳遞,使用梯度下降法調整各層之間的引數。

rnn可用於處理時序資料或前後關聯資料。rnn還可以和cnn結合使用,處理考慮樣本之間相關性的問題。

無論是dbn和sae,還是cnn,都沒有考慮樣本之間的關聯問題。rnn則考慮了樣本之間的關聯關係,將這種關聯關係以神經網路之間的連線體現出來。一般情況下,單向rnn中,單個神經網路的隱層連線至下乙個神經網路的隱層。這種連線方式考慮了前面樣本對後面樣本的影響。還有一種雙向rnn的連線方式,單個神經網路的隱層連線了其前後神經網路的隱層,這種連線方式考慮了前後樣本對當前樣本的影響。

一般認為rnn的各個神經網路具有相同的權重和偏置。rnn訓練時,可使用rbm或ae對其進行預訓練來初始化網路引數,然後計算每個樣本的輸出誤差,並以累積誤差訓練網路引數。

深度學習模型儲存 深度學習分布式模型

背景 隨著各大企業和研究機構在pytorch tensorflow keras mxnet等深度學習框架上面訓練模型越來越多,專案的資料和計算能力需求急劇增加。在大部分的情況下,模型是可以在單個或多個gpu平台的伺服器上執行的,但隨著資料集的增加和訓練時間的增長,有些訓練需要耗費數天甚至數週的時間,...

深度學習baseline模型 深度學習模型訓練流程

工作中訓練了很多的深度學習模型,目前到了上公升到方 的角度來看了。日常工作中有的人可能已經在遵循方 做事,可能自己沒有注意,有的人可能沒有遵循方 在做事,雖然可能最後的結果差不多,但花費的時間和精力應該會差別很大,當然這是我自己的感受。我們不必完全按照方 來做,但基本流程跟方 應該一致。下面的具體步...

深度學習模型

深度學習常用方法 深度置信網路 dbn 概率生成模型,生成資料 卷積神經網路 cnn 判別模型,處理二維圖 卷積深度置信網路 cdbn 兩者的結合 迴圈神經網路 rnn 與時間序列有關的 對抗神經網路 gan 兩個網路的零和遊戲,乙個網路用來判別,乙個網路用來生成 自動編碼器 vae 生成模型 深度...