機器不學習 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
閱讀更多 i機器不學習 的文章