機器不學習:CNN+RNN,二神合體,威力無窮,最好的NN模型介紹

機器不學習 www.jqbxx.com : 深度聚合機器學習、深度學習算法及技術實戰

卷積網絡循環網絡結合-CNN+RNN

1. CNN+RNN

相同點

都是傳統神經網絡的擴展;前向計算產生結果,反向計算進行模型的更新;每層神經網絡橫向可以多個神經元共存,縱向可以有多層神經網絡連接。

不同點

CNN進行空間擴展,神經元與特徵卷積;RNN進行時間擴展,神經元與多個時間輸出計算;RNN可以用於描述時間上連續狀態的輸出,有記憶功能;CNN則用於靜態輸出;CNN高級結構可以達到100+深度;RNN的深度有限。

組合的意義

大量信息同時具有時間空間特性:視頻,圖文結合,真實的場景對話;帶有圖像的對話,文本表達更具體;視頻相對圖片描述的內容更完整。

組合方式

CNN特徵提取,用於RNN語句生成->圖片標註


RNN特徵提取用於CNN內容分類->視頻分類


CNN特徵提取用於對話問答->圖片問答


組合方式實現

特徵提取: LSTM輸出(考慮不同時間研究對象的特徵),FC層輸出。特徵合併 Concatenate層(合併在一起形成更長的向量),Attention相乘(某些區域加強,某些區域削弱)。結果輸出 連續語句輸出LSTM,組合分類迴歸DNN。

2. 圖片標註

問題描述

擁有大量圖片及其標註信息,能夠通過學習建立一個能夠自動圖片標註的模型?

基本思路

目標是產生標註語句,是一個語句生成的任務,根本上來說是一個RNN的任務,使用LSTM。描述的對象是大量的圖像信息,進行圖像信息的表達,使用CNN。CNN網絡中全連接層利用特徵進行圖片的描述,特徵與LSTM輸入進行結合。

模型設計

1. 整體結構

2. 特徵提取

圖片特徵:CNN全連接層提取;語言特徵:Word2Vec。

3. 數據準備

圖片CNN特徵提取;圖片標註生成Word2Vec向量;生成訓練數據:圖片特徵+第n個單詞向量->第n+1個單詞向量。

4. 模型訓練

運用遷移學習進行模型構建和訓練,用於CNN特徵,語句特徵應用已有的模型;最終的輸出模型是LSTM,訓練過程的參數:設定梯度上限(gradient clipping)用於防止梯度爆炸、學習率調整(adaptive learning)

5. 模型運行

CNN進行特徵提取;CNN特徵+語句的開頭,單詞逐個預測;


圖片標註升級-詳細標註

DenseCap,主要基於Faster R-CNN

3. 視頻行為識別

常用方法

CNN特徵簡單組合


3D版本CNN


RNN+CNN

RNN用於CNN特徵融合CNN進行特徵提取;LSTM判斷;多次識別結果進行分析。


CNN進行特徵提取;LSTM融合;Linear regr + Softmax分類。


RNN用於CNN特徵篩選+融合並不是所有的視頻圖像包含確定分類信息;RNN用於確定哪些frame是有用的;對有用的圖像特徵融合;


RNN用於目標檢測CNN直接產生目標候選區;LSTM對產生候選區進行融合(相鄰時刻位置近似);確定最終的精確位置。


4. 圖片/視頻問答

給定一張圖片,提出圖片內容相關問題,問答模型給出答案。

問題的種類

方法流程

按照語言問答路程解決;圖片特徵同語言特徵融合;訓練數據:問題+圖片->答案


模型設計

純文字問答系統

背景故事生成(word embedding)問題特徵生成;背景,問題特徵融合;標準答案迴歸。

圖片問答系統

基本模型 背景故事特徵生成-CNN;問題特徵生成;背景,問題特徵融合;標準答案迴歸。


模型優化1 對圖片特徵向量進一步處理,建立CNN特徵的fisher特徵;提高特徵表達的效率,更容易同encoding特徵組合。


模型優化2 用問題作為“候選區域”對原始CNN特徵圖局部識別。


模型優化3 注意力圖對圖片問答進行幫助;根據問題產生第一次注意力圖;然後產生最終的注意力圖;


5. 實例:學習Image Caption 圖片自動標註

一個將圖片轉換為相應文字描述的例子。

fork代碼參見:https://github.com/KoalaTree/models/tree/master/im2txt