機器不學習 www.jqbxx.com : 深度聚合機器學習、深度學習算法及技術實戰
卷積網絡循環網絡結合-CNN+RNN
1. CNN+RNN
相同點
都是傳統神經網絡的擴展;前向計算產生結果,反向計算進行模型的更新;每層神經網絡橫向可以多個神經元共存,縱向可以有多層神經網絡連接。不同點
CNN進行空間擴展,神經元與特徵卷積;RNN進行時間擴展,神經元與多個時間輸出計算;RNN可以用於描述時間上連續狀態的輸出,有記憶功能;CNN則用於靜態輸出;CNN高級結構可以達到100+深度;RNN的深度有限。組合的意義
大量信息同時具有時間空間特性:視頻,圖文結合,真實的場景對話;帶有圖像的對話,文本表達更具體;視頻相對圖片描述的內容更完整。組合方式
RNN特徵提取用於CNN內容分類->視頻分類
CNN特徵提取用於對話問答->圖片問答
組合方式實現
特徵提取: LSTM輸出(考慮不同時間研究對象的特徵),FC層輸出。特徵合併 Concatenate層(合併在一起形成更長的向量),Attention相乘(某些區域加強,某些區域削弱)。結果輸出 連續語句輸出LSTM,組合分類迴歸DNN。2. 圖片標註
問題描述
擁有大量圖片及其標註信息,能夠通過學習建立一個能夠自動圖片標註的模型?
基本思路
目標是產生標註語句,是一個語句生成的任務,根本上來說是一個RNN的任務,使用LSTM。描述的對象是大量的圖像信息,進行圖像信息的表達,使用CNN。CNN網絡中全連接層利用特徵進行圖片的描述,特徵與LSTM輸入進行結合。模型設計
2. 特徵提取
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. 圖片/視頻問答
給定一張圖片,提出圖片內容相關問題,問答模型給出答案。
問題的種類
方法流程
模型設計
純文字問答系統
圖片問答系統
基本模型 背景故事特徵生成-CNN;問題特徵生成;背景,問題特徵融合;標準答案迴歸。模型優化1 對圖片特徵向量進一步處理,建立CNN特徵的fisher特徵;提高特徵表達的效率,更容易同encoding特徵組合。
模型優化2 用問題作為“候選區域”對原始CNN特徵圖局部識別。
模型優化3 注意力圖對圖片問答進行幫助;根據問題產生第一次注意力圖;然後產生最終的注意力圖;
5. 實例:學習Image Caption 圖片自動標註
一個將圖片轉換為相應文字描述的例子。
fork代碼參見:https://github.com/KoalaTree/models/tree/master/im2txt