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