基于深度學習生成自己的圖像問答模型 VQA 是什么?:Visual Question Answering 我們可以這樣定義:“視覺問答(VQA)是一種系統(tǒng),它將圖像和自然語言問題作為輸入, 并生成自然語言答案作為輸出。” 就和下面這張圖片類似:輸入這張圖片和問題,我們期望的答案或許是 black and banana。 VQA 的應用:盲人的視覺問答,搜索引擎(不單單是以圖搜圖或者以文字搜信息,而是結(jié)合 圖+問題,搜索出答案),智能駕駛領(lǐng)域,醫(yī)療問答等領(lǐng)域。 VQA 的框架:視覺問題回答可以分為兩個部分,即圖像和文本。使用卷積神經(jīng)網(wǎng)絡(用于圖像數(shù)據(jù))和循環(huán)神經(jīng)網(wǎng)絡(用于文本數(shù)據(jù))來表示神經(jīng)網(wǎng)絡方法來解決這個問題。主要思想是從 CNN 得到圖像的特征,從 RNN 得到文本的特征,最后將它們組合起來,通過一些完全連接的層來生成答案。 編輯 搜圖 (這是從 VQA 經(jīng)典論文中截取的圖片,雖然模型不完全一致,但思路是一樣的) (Image Source: [url=]https://arxiv.org/pdf/1505.00468.pdf[/url]) 本文將介紹一下基于深度學習的easy-VQA數(shù)據(jù)集和訓練預測過程。 1. 基于簡單圖形生成 easy-VQA 數(shù)據(jù)集 總共考慮了三種圖形:圓形 (circle),矩形 (rectangle) 和三角形 (triangle) 和八種顏色,將它們兩兩組合,在 64 ∗ 64 的畫布范圍內(nèi),隨機生成不同大小,不同顏色的圖形;由于生成圖像時,可以根據(jù)該圖像的特征生成特定的問題,基于這種思路,我設(shè)計了若干關(guān)于圖形和顏色的問題: 生成的數(shù)據(jù)集大約有 5k 張圖片 50k 個問題,答案分類有 13 種:分別是 yes/or 問題,顏色問題和圖形問題。 YES/NO: Yes, No Shapess: Circle, Rectangle, Triangle Colors: Red, Green, Blue, Black, Gray, Teal, Brown, Yellow 2. 在 easy-VQA 上實現(xiàn)圖像問答架構(gòu) 首先輸入的圖像是64∗64的,對圖像進行若干次卷積核池化操作,可以生成固定長度的向量,這里設(shè)置為4096維。samepadding進行填充之后,對該圖片使用3∗3的卷積核進行卷積,得到64∗64∗8;然后經(jīng)過一層最大池化maxpooling得到32∗32∗8;經(jīng)過另外一層有16個卷積核的卷積和池化過程,最后將圖片的特征表示轉(zhuǎn)化成 4096 維的固定長度的向量。 圖 3 2: 圖像處理模型 鑒于easy-VQA的實驗性質(zhì),對于它的圖片和問題的設(shè)計都比較簡單,問題來自一組固定的模板,為了訓練時間和demo性質(zhì)的考慮,對于問題的處理,首先使用詞袋模型BOW將每個單詞轉(zhuǎn)化成一個向量。BOW表示通過計算每個單詞在文本中出現(xiàn)的次數(shù),將任何文本字符串轉(zhuǎn)換為固定長度的向量。然后將這些向量輸入全連接的前饋神經(jīng)網(wǎng)絡fully-connected(FC),最終得到問題特征的向量表示。 最后將圖片特征向量和問題特征向量拼接起來,通過 softmax 分類,在由13 種答案組成的答案候選集中選擇概率最高的答案作為輸出。在驗證集上的可以達到不錯的準確率。 編輯 搜圖 可以看到訓練的效果還是不錯的:損失率逐漸下降,準確率逐漸上升;同時模型也并沒有過擬合,訓練和驗證的損失率準確率都比較接近。 編輯 搜圖 問題模型,因為問題比較簡單,使用詞袋模型即可,后面加兩層全連接層,將問題轉(zhuǎn)化成了向量。 編輯 搜圖 將圖片向量和問題向量融合,輸入進 softmax 分類即可。 編輯 搜圖 編輯 搜圖 最后可以看到達到了 93.8 的 accuracy。 |