CV崗位面試題:encode和decode思想的差距在什么地方。

文 | 七月在線
編 | 小七
解析:
解析1:
Encoder-Decoder(編碼-解碼)是深度學(xué)習(xí)中非常常見的一個(gè)模型框架,比如無監(jiān)督算法的auto-encoding就是用編碼-解碼的結(jié)構(gòu)設(shè)計(jì)并訓(xùn)練的;比如image caption的應(yīng)用,就是CNN-RNN的編碼-解碼框架;再比如神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯NMT模型,往往就是LSTM-LSTM的編碼-解碼框架。因此,準(zhǔn)確的說,Encoder-Decoder并不是一個(gè)具體的模型,而是一類框架。Encoder和Decoder部分可以是任意的文字,語音,圖像,視頻數(shù)據(jù),模型可以采用CNN,RNN,BiRNN、LSTM、GRU等等。所以基于Encoder-Decoder,我們可以設(shè)計(jì)出各種各樣的應(yīng)用算法。
Encoder-Decoder框架有一個(gè)最顯著的特征就是它是一個(gè)End-to-End學(xué)習(xí)的算法;本文將以文本-文本的例子作為介紹,這樣的模型往往用在機(jī)器翻譯中,比如將法語翻譯成英語。這樣的模型也被叫做 Sequence to Sequence learning[1]。所謂編碼,就是將輸入序列轉(zhuǎn)化成一個(gè)固定長度的向量;解碼,就是將之前生成的固定向量再轉(zhuǎn)化成輸出序列。
解析2:
一、Encoder-Decoder(編碼-解碼)
介紹
Encoder-Decoder是一個(gè)模型構(gòu)架,是一類算法統(tǒng)稱,并不是特指某一個(gè)具體的算法,在這個(gè)框架下可以使用不同的算法來解決不同的任務(wù)。首先,編碼(encode)由一個(gè)編碼器將輸入序列轉(zhuǎn)化成一個(gè)固定維度的稠密向量,解碼(decode)階段將這個(gè)激活狀態(tài)生成目標(biāo)譯文。
回顧一下,算法設(shè)計(jì)的基本思路:將現(xiàn)實(shí)問題轉(zhuǎn)化為一類可優(yōu)化或者可求解的數(shù)學(xué)問題,利用相應(yīng)的算法來實(shí)現(xiàn)這一數(shù)學(xué)問題的求解,然后再應(yīng)用到現(xiàn)實(shí)問題中,從而解決了現(xiàn)實(shí)問題。(比如,我們想解決一個(gè)詞性標(biāo)注的任務(wù)(現(xiàn)實(shí)問題),我們轉(zhuǎn)化成一個(gè)BIO序列標(biāo)注問題(數(shù)學(xué)模型),然后設(shè)計(jì)一系列的算法進(jìn)行求解,如果解決了這個(gè)數(shù)學(xué)模型,從而也就解決了詞性標(biāo)注的任務(wù))。
Encoder :編碼器,如下:
Decoder:解碼器,如下:
合并起來,如下:
更具體一點(diǎn)的表達(dá)如下所示:
說明
1. 不論輸入和輸出的長度是什么,中間的“向量c”長度都是固定的(這是它的缺陷所在)。
2. 根據(jù)不同的任務(wù)可以選擇不同的編碼器和解碼器(例如,CNN、RNN、LSTM、GRU等)
3. Encoder-Decoder的一個(gè)顯著特征就是:它是一個(gè)end-to-end的學(xué)習(xí)算法。
4. 只要符合這種框架結(jié)構(gòu)的模型都可以統(tǒng)稱為Encoder-Decoder模型。
在圖像中的應(yīng)用:比如SegNet圖像分割算法
評(píng)論
圖片
表情





