日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

论文笔记:Image Caption(Show and Tell)

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论文笔记:Image Caption(Show and Tell) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Show and Tell: A Neural Image Caption Generator

Show and Tell

1、四個問題

  • 要解決什么問題?
    • Image Caption(自動根據圖像生成一段文字描述)。
  • 用了什么方法解決?
    • 作者提出了一個基于深度循環架構的生成式模型。
    • 訓練時的目標是最大化這個從輸入圖像到目標描述語句的似然。
  • 效果如何?
    • 所提出模型在幾個數據集上的效果都不錯。
    • 比如,此前在Pascal數據集上效果最好的BLEU-1分數是25,這里達到了59,與人類的表現(69左右)相當。
    • 在Flickr30k上的BLEU-1分數從56提高到了66。
    • 在SBU上,從19提高到了28.
    • 在最新的COCO數據集上,BLEU-4分數達到了27.7,是目前最好的結果。
  • 還存在什么問題?
    • 由于這篇論文是在15年發表的,當時的state-of-the-art,現在已經算是比較落后的了。
    • 圖像特征僅僅是只在開始的時候以bias的形式傳入,只關注到了全局特征,模型也是學習到了一種模板然后往里面填詞。
  • 2、論文概述

    2.1、簡介

    • Image Caption任務,顧名思義,就是讓算法根據輸入的一幅圖像自動生成對應的描述性文字。
    • Image Caption的難點在于,不止要檢測到圖像中的物體,還需要表示出這些物體相互之間的關系。
    • 此前關于Image Caption的嘗試,大多數是考慮將那些子問題的一些現有的解決算法拼在一起。
    • Image Caption任務數學模型:
      • 輸入圖像為III
      • 輸出語句是S=S1,S2,...S = {S_1, S_2, ...}S=S1?,S2?,...,每個單詞StS_tSt?都是從一個給定的字典中得到的。可以充分地對圖像進行描述。
      • 目標函數是最大化似然函數:p(S∣I)p(S | I)p(SI)
    • 文中提出的主要思路來自于最近的機器翻譯相關的工作。
      • 機器翻譯的主要任務是將源語言的語句SSS轉換為目標語言的語句TTT,通過最大化似然函數p(S∣I)p(S | I)p(SI)
      • 近期的工作中使用RNN做機器翻譯可以取得相當不錯的效果。
      • 整體思路是:使用一個“編碼器”RNN讀取源語句,并將其轉換為長度固定的特征向量,而這些特征向量又被用作“解碼器”RNN的初始隱藏層狀態。最后使用“解碼器”RNN來生成目標語句。

    • 上圖是文中提出的模型,NIC。
    • 思路很簡單,在機器翻譯中有一個編碼器RNN、一個解碼器RNN,然后把編碼器RNN替換成CNN。
      • 在近些年來的研究中,已經充分證明了CNN可以從輸入圖像中充分地提取特征并嵌入到一個定長的向量中。
      • 很自然地,可以將CNN用作一個編碼器,先在ImageNet上進行預訓練,隨后將其最后一層隱藏層作為作為RNN的輸入。
    • 論文的貢獻有以下三點:
    • 提出了一個端到端的系統來解決Image Caption任務。
    • NIC模型結合了分別在CV和NLP領域state-of-the-art的子網絡模型。
    • 相比其他方法,取得了state-of-the-art的效果。

    2.2、模型

    • 近期的基于統計機器翻譯的發展說明了,只要提供了一個強大的序列模型,我們能夠直接通過最大化給定輸入語句的正確翻譯的概率(以一種端到端的方式),來獲得state-of-the-art的結果。
    • 這些模型使用RNN對變長輸入進行編碼,得到定長的特征向量,然后再用來解碼成期望的輸出語句。
    • 將編碼器的部分換成,輸入圖像到CNN,輸出定長的特征向量。
    • 最大化似然的公式可以描述為如下公式:
      • θ?=argmaxθ∑(I,S)log?p(S∣I;θ)\theta^* = argmax_{\theta} \sum_{(I, S)} \log p(S | I; \theta)θ?=argmaxθ?(I,S)?logp(SI;θ),其中III是輸入圖像,SSS是正確的圖像描述,θ\thetaθ是模型的參數。
      • SSS可以表示任意語句,它的長度是不確定的。
    • 使用鏈式法則來對S0S_0S0?SNS_NSN?的聯合概率建模是很常見的:
      • log?p(S∣I)=∑t=0Nlog?p(St∣I,S0,...,St?1)\log p(S | I) = \sum_{t=0}^N \log p(S_t | I, S_0, ..., S_{t-1})logp(SI)=t=0N?logp(St?I,S0?,...,St?1?)
      • 為簡便起見,丟棄了θ\thetaθ的依賴。
      • 訓練中,(S,I)(S, I)(S,I)是一對樣本對。我們求上式的log概率之和,使用SGD進行優化,使其最大。
      • 使用RNN來對p(St∣I,S0,...,St?1)p(S_t | I, S_0, ..., S_{t-1})p(St?I,S0?,...,St?1?)建模,0到t?1t-1t?1為止的可變詞數可以用一個定長的隱藏層hth_tht?來表示。
      • 在得到一個新的輸入xtx_txt?后,會使用一個非線性函數fff更新ht+1=f(ht,xt)h_{t+1} = f(h_t, x_t)ht+1?=f(ht?,xt?)
      • 為了讓上述的RNN模型更具體,還有兩個重要的問題要考慮:
      • 非線性函數fff具體的形式是什么樣子?
        • fff使用一個LSTM網絡來表示。
      • 圖像和單詞如何轉換成輸入xtx_txt?
        • 使用CNN從圖像提取特征,來表示圖像。

    2.3、LSTM

    • 在設計和訓練RNN過程中,最具挑戰的是如何解決梯度消失和梯度爆炸的問題,所以選擇了LSTM。

    2.4、訓練

    • 如果用III表示輸入圖像,用S=(S0,...,SN)S=(S_0, ..., S_N)S=(S0?,...,SN?)表示描述這個圖像的真實句子,展開過程如下:

    • 每個單詞都被表示為一個與字典等長的one-hot向量StS_tSt?
    • S0S_0S0?表示開始單詞,SNS_NSN?表示結束單詞。 從LSTM檢測到停止單詞,就意味著已經生成了一個完整的句子。
    • 圖像和單詞都被映射到同一個特征空間,使用CNN提取圖像特征,使用word embedding將單詞映射為詞向量。
    • 圖像只在t=?1t=-1t=?1時輸入,以告知LSTM圖像中的內容。

    • loss函數是每個步驟中正確單詞的負對數概率之和。

    2.4、Inference

    • 我們有多種方法來使用NIC模型根據輸入圖像生成描述。
    • 第一種是采樣。我們可以根據p1p_1p1?采樣得到第一個單詞,然后提供對應的embedding作為輸入,并采樣p2p_2p2?,不斷重復,知道我們采樣到特殊句末標識,或到達了最大句長。
    • 第二種是BeamSearch。迭代地選取直到時間ttt最好的kkk個語句作為候選,來長度為t+1t+1t+1時刻的句子,最后只保留其中的kkk個最好結果。
    • 后續的實驗中采用BeamSearch的方法,beam大小為20。如果將beam大小取為1,結果會降低2個BLEU點數。

    2.5、實驗

    • 數據集

    • 訓練細節:
      • 訓練中很容易碰到過擬合。
      • 解決過擬合的一個很簡單的辦法就是,提供大量的數據。但是已有的數據量卻不足。
      • 經過實驗,作者發現最有效的避免過擬合的方法是使用預訓練權重(ImageNet)來初始化CNN。
      • 另外一組權重,即word embedding的權重,使用在一個大型新聞語料庫下預訓練的結果效果并不理想。所以最后為簡單起見,直接就不對其做初始化。
      • 還用了其他一些防止過擬合的策略:dropout,ensemble等。
      • 訓練時采用SGD,學習率固定,沒有momentum。除了CNN的權重采用ImageNet的預訓練權重,其他權重參數都是隨機初始化的。
      • embedding的維度是512維,也是LSTM記憶單元的大小。
    • 生成結果見表1。

    • 生成多樣性討論
      • 表3顯示了從beamsearch解碼器中返回的N個最佳列表的一些樣本,而不是最好的假設。

    • 如果選出最好的候選句子,那么這個句子就會在約80%的時間里出現在訓練集中。考慮到訓練數據較少,并不難預料到,模型相對容易會選取一個模板句子,然后填詞進去。
    • 如果分析的是生成的前15個最好的句子,大約在50%的時間內,我們可以看到一個全新的語句描述,也可以取得差不多高的BLEU分數。
    • 排名結果:

    • 人工評估:

    • word embedding分析
      • 把輸入的前一個詞St?1S_{t-1}St?1?送入LSTM然后輸出StS_tSt?,使用了word embedding方法,這樣能夠擺脫字典大小的依賴。
      • 如表6中所示,一些示例單詞,和其最近鄰的詞向量所對應的單詞。
      • 請注意模型學習到一些關系是如何幫助視覺組件的。
        • 比如,將“馬”、“小馬”和“驢”的詞向量彼此靠近,將會鼓勵CNN提取與馬匹動物相關的特征。

    3、參考資料

  • Show and Tell: A Neural Image Caption Generator 翻譯
  • Image caption——圖像理解——看圖說話綜述(2015-2018)
  • 總結

    以上是生活随笔為你收集整理的论文笔记:Image Caption(Show and Tell)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。