今天更新關(guān)于常見深度學(xué)習(xí)模型適合練手的項(xiàng)目。這些項(xiàng)目大部分是我之前整理的,基本上都看過,大概倆特點(diǎn):代碼不長,一般50-200行代碼,建議先看懂然后再實(shí)現(xiàn)和優(yōu)化,我看基本上所有的實(shí)現(xiàn)都有明顯可優(yōu)化的地方;五臟俱全,雖然代碼不長,但是該有的功能都有,該包含的部分也基本都有。所以很適合練手,而且實(shí)現(xiàn)后還可保存好,以后很多任務(wù)可能就會用到。
本文包括簡介、練手項(xiàng)目和我的建議(建議最好看看這部分)。
簡介
本篇是深度學(xué)習(xí)最常見的 26 個(gè)模型匯總的姐妹篇,建議先看那篇再看本篇。本篇新增了 26 個(gè)模型的練手項(xiàng)目。
練手項(xiàng)目
2.1 Feed forward neural networks (FF or FFNN) and perceptrons (P)
前饋神經(jīng)網(wǎng)絡(luò)和感知機(jī),信息從前(輸入)往后(輸出)流動(dòng),一般用反向傳播(BP)來訓(xùn)練。算是一種監(jiān)督學(xué)習(xí)。
對應(yīng)的代碼:
https://github.com/danijar/layered
https://github.com/civisanalytics/muffnn
2.2 Radial basis function (RBF)
徑向基函數(shù)網(wǎng)絡(luò),是一種徑向基函數(shù)作為激活函數(shù)的FFNNs(前饋神經(jīng)網(wǎng)絡(luò))。
對應(yīng)的代碼:
https://github.com/eugeniashurko/rbfnnpy
2.3 Hopfield network (HN)
Hopfield網(wǎng)絡(luò),是一種每個(gè)神經(jīng)元都跟其它神經(jīng)元相連接的神經(jīng)網(wǎng)絡(luò)。
對應(yīng)的代碼:
https://github.com/yosukekatada/Hopfield_network
2.4 Markov chains (MC or discrete time Markov Chain, DTMC)
馬爾可夫鏈 或離散時(shí)間馬爾可夫鏈,算是BMs和HNs的雛形。
對應(yīng)的代碼:
Markov chains:https://github.com/jsvine/markovify
DTMC:https://github.com/AndrewWalker/dtmc
2.5 Boltzmann machines (BM)
玻爾茲曼機(jī),和Hopfield網(wǎng)絡(luò)很類似,但是:一些神經(jīng)元作為輸入神經(jīng)元,剩余的是隱藏層。
對應(yīng)的代碼:
https://github.com/yell/boltzmann-machines
2.6 Restricted Boltzmann machines (RBM)
受限玻爾茲曼機(jī),和玻爾茲曼機(jī)以及Hopfield網(wǎng)絡(luò)都比較類似。
對應(yīng)的代碼:
https://github.com/echen/restricted-boltzmann-machines
2.7 Autoencoders (AE)
自動(dòng)編碼,和FFNN有些類似,它更像是FFNN的另一種用法,而不是本質(zhì)上完全不同的另一種架構(gòu)。
對應(yīng)的代碼:
https://github.com/caglar/autoencoders/blob/master/ae.py
2.8 Sparse autoencoders (SAE)
稀疏自動(dòng)編碼,跟自動(dòng)編碼在某種程度比較相反。
對應(yīng)的代碼:
https://github.com/caglar/autoencoders/blob/master/sa.py
2.9 Variational autoencoders (VAE)
變分自動(dòng)編碼,和AE架構(gòu)相似,不同的是:輸入樣本的一個(gè)近似概率分布。這使得它跟BM、RBM更相近。
對應(yīng)的代碼:
https://github.com/mattjj/svae
2.10 Denoising autoencoders (DAE)
去噪自動(dòng)編碼,也是一種自編碼機(jī),它不僅需要訓(xùn)練數(shù)據(jù),還需要帶噪音的訓(xùn)練數(shù)據(jù)。
對應(yīng)對應(yīng)的代碼:
https://github.com/caglar/autoencoders/blob/master/da.py
2.11 Deep belief networks (DBN)
深度信念網(wǎng)絡(luò),由多個(gè)受限玻爾茲曼機(jī)或變分自動(dòng)編碼堆砌而成。
對應(yīng)的代碼:
https://github.com/albertbup/deep-belief-network
2.12 Convolutional neural networks (CNN or deep convolutional neural networks, DCNN)
卷積神經(jīng)網(wǎng)絡(luò),這個(gè)不解釋也都知道。
對應(yīng)的代碼:
CNN:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_CNN.py
DCNN:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_DeepCNN.py
2.13 Deconvolutional networks (DN)
去卷積網(wǎng)絡(luò),又叫逆圖形網(wǎng)絡(luò),是一種逆向的卷積神經(jīng)網(wǎng)絡(luò)。
對應(yīng)的代碼:
https://github.com/ifp-uiuc/anna
2.14Deep convolutional inverse graphics networks (DCIGN)
深度卷積逆向圖網(wǎng)絡(luò),實(shí)際上是VAE,且分別用CNN、DNN來作編碼和解碼。
對應(yīng)的代碼:
https://github.com/yselivonchyk/TensorFlow_DCIGN
2.15 Generative adversarial networks (GAN)
生成對抗網(wǎng)絡(luò),Goodfellow的封神之作,這個(gè)模型不用解釋也都知道。
對應(yīng)的代碼:
https://github.com/devnag/pytorch-generative-adversarial-networks
2.16 Recurrent neural networks (RNN)
循環(huán)神經(jīng)網(wǎng)絡(luò),這個(gè)更不用解釋,做語音、NLP的沒有人不知道,甚至非AI相關(guān)人員也知道。
對應(yīng)的代碼:
https://github.com/farizrahman4u/recurrentshop
2.17 Long / short term memory (LSTM)
長短期記憶網(wǎng)絡(luò),RNN的變種,解決梯度消失/爆炸的問題,也不用解釋,這幾年刷爆各大頂會。
對應(yīng)的代碼:
https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_LSTM.py
2.18 Gated recurrent units (GRU)
門循環(huán)單元,類似LSTM的定位,算是LSTM的簡化版。
對應(yīng)的代碼:
https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_GRU.py
2.19 Neural Turing machines (NTM)
神經(jīng)圖靈機(jī),LSTM的抽象,以窺探LSTM的內(nèi)部細(xì)節(jié)。具有讀取、寫入、修改狀態(tài)的能力。
對應(yīng)的代碼:
https://github.com/MarkPKCollier/NeuralTuringMachine
2.20 Bidirectional recurrent neural networks, bidirectional long / short term memory networks and bidirectional gated recurrent units (BiRNN, BiLSTM and BiGRU respectively)
雙向循環(huán)神經(jīng)網(wǎng)絡(luò)、雙向長短期記憶網(wǎng)絡(luò)和雙向門控循環(huán)單元,把RNN、雙向的LSTM、GRU雙向,不再只是從左到右,而是既有從左到右又有從右到左。
對應(yīng)的代碼:
BiRNN:https://github.com/cstghitpku/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/tree/master/models
BiLSTM:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_BiLSTM.py
BiGRU:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_BiGRU.py
2.21 Deep residual networks (DRN)
深度殘差網(wǎng)絡(luò),是非常深的FFNN,它可以把信息從某一層傳至后面幾層(通常2-5層)。
對應(yīng)的代碼:
https://github.com/KaimingHe/deep-residual-networks
2.22 Echo state networks (ESN)
回聲狀態(tài)網(wǎng)絡(luò),是另一種不同類型的(循環(huán))網(wǎng)絡(luò)。
對應(yīng)的代碼:
https://github.com/m-colombo/Tensorflow-EchoStateNetwork
2.23 Extreme learning machines (ELM)
極限學(xué)習(xí)機(jī),本質(zhì)上是隨機(jī)連接的FFNN。
對應(yīng)的代碼:
https://github.com/dclambert/Python-ELM
2.24 Liquid state machines (LSM)
液態(tài)機(jī),跟ESN類似,區(qū)別是用閾值激活函數(shù)取代了sigmoid激活函數(shù)。
對應(yīng)的代碼:
https://github.com/kghose/Liquid
2.25 Support vector machines (SVM)
支持向量機(jī),入門機(jī)器學(xué)習(xí)的人都知道,不解釋。
對應(yīng)的代碼:
https://github.com/ajtulloch/svmpy
2.26 Kohonen networks (KN, also self organising (feature) map, SOM, SOFM)
Kohonen 網(wǎng)絡(luò),也稱之為自組織(特征)映射。
對應(yīng)的代碼KN/SOM:
https://github.com/mljs/som
后續(xù)建議
我個(gè)人感覺能力提升最快的方式是:先橫向?qū)W習(xí)一個(gè)領(lǐng)域,做到全面的認(rèn)識;然后從頭到尾一項(xiàng)一項(xiàng)去突破,做到有深度。如果今天學(xué)點(diǎn)這個(gè),明天學(xué)點(diǎn)那個(gè),水平提升很慢,建議順著技術(shù)發(fā)展的主線從頭到尾學(xué)完。技術(shù)是無止境的,積累很重要,但有量遠(yuǎn)遠(yuǎn)不夠,還得講究方法。
對應(yīng)到本文,學(xué)會并實(shí)現(xiàn)和優(yōu)化這些模型,遠(yuǎn)遠(yuǎn)不夠。我建議還可以有如下嘗試:
單層模型實(shí)現(xiàn)之后,試試多層或者模型stack;
試試模型的結(jié)合,比如LSTM/GRU+CNN/DCNN、CNN/DCNN+LSTM/GRU、LSTM/GRU+CRF等;
在一些模型上加attention(這里很多模型適合加);
利用這些模型解決一些比較簡單的小問題,比如用CNN識別數(shù)字、LSTM+CRF做NER等;
性能方面的提升,比如支持分布式訓(xùn)練、支持GPU等;
把這些模型做成一個(gè)框架,到時(shí)候記得通知我,我一定拜讀。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100766 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48840 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121162
原文標(biāo)題:上手!深度學(xué)習(xí)最常見的26個(gè)模型練習(xí)項(xiàng)目匯總
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論