<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 深度學習字幕生成模型的溫和介紹 > 原文: [https://machinelearningmastery.com/deep-learning-caption-generation-models/](https://machinelearningmastery.com/deep-learning-caption-generation-models/) 字幕生成是在給定照片的情況下生成人類可讀的文本描述的具有挑戰性的人工智能問題。 它需要來自計算機視覺領域的圖像理解和來自自然語言處理領域的語言模型。 重要的是要考慮和測試多種方法來構建給定的預測建模問題,并且確實有很多方法來構建為照片生成字幕的問題。 在本教程中,您將發現 3 種可以構建字幕生成方式以及如何為每種方法開發模型的方法。 我們將看到的三個字幕生成模型是: * 模型 1:生成整個序列 * 模型 2:從 Word 生成 Word * 模型 3:從序列生成單詞 我們還將回顧一些在準備數據和開發字幕生成模型時要考慮的最佳實踐。 讓我們開始吧。 ## 模型 1:生成整個序列 第一種方法涉及為給定照片的照片生成整個文本描述。 * **輸入**:照片 * **輸出**:完整的文字說明。 這是一對多序列預測模型,以一次性方式生成整個輸出。 ![Model 1 - Generate Whole Sequence](img/10b0cd22ffb0fbceff19c128b2752e96.jpg) 模型 1 - 生成整個序列 該模型給語言模型帶來了沉重的負擔,以正確的順序生成正確的單詞。 照片通過特征提取模型,例如在 ImageNet 數據集上預先訓練的模型。 一個熱編碼用于輸出序列,允許模型預測整個詞匯表中序列中每個單詞的概率分布。 所有序列都填充到相同的長度。這意味著模型被迫在輸出序列中生成多個“_ 無字 _”時間步長。 測試這種方法,我發現需要一個非常大的語言模型,即使這樣,也很難超越生成 NLP 等效持久性的模型,例如:生成與整個序列長度重復的相同字作為輸出。 ## 模型 2:從 Word 生成 Word 這是一種不同的方法,其中 LSTM 生成給定照片和一個單詞作為輸入的一個單詞的預測。 * **輸入 1** :照片。 * **輸入 2** :先前生成的單詞或序列標記的開始。 * **輸出**:順序的下一個字。 這是一對一序列預測模型,通過對模型的遞歸調用生成文本描述。 ![Model 2- Generate Word From Word](img/efb412506f58e1ccdd0405086e39d711.jpg) 模型 2 - 從 Word 生成單詞 單詞輸入是在第一次調用模型時指示序列開始的標記,或者是從上次調用模型時生成的單詞。 照片通過特征提取模型,例如在 ImageNet 數據集上預先訓練的模型。輸入字是整數編碼的,并通過字嵌入。 輸出字是一個熱編碼,以允許模型預測整個詞匯表中單詞的概率。 重復遞歸字生成過程,直到生成序列標記的結束。 測試這個方法,我發現模型確實產生了一些好的 n-gram 序列,但是在一個循環中被捕獲,重復相同的單詞序列以進行長描述。模型中沒有足夠的內存來記住之前生成的內容。 ## 模型 3:從序列生成單詞 給定照片和已經為照片生成的一系列單詞作為輸入,預測描述中的下一個單詞。 * **輸入 1** :照片。 * **輸入 2** :先前生成的單詞序列,或序列標記的開始。 * **輸出**:順序的下一個字。 這是一個多對一序列預測模型,通過對模型的遞歸調用生成文本描述。 ![Model 3 - Generate Word From Sequence](img/a972f08e77f6fd0762eca0f5f01afe26.jpg) 模型 3 - 從序列生成單詞 它是上述模型 2 的概括,其中單詞的輸入序列為模型提供了用于生成序列中的下一個單詞的上下文。 照片通過特征提取模型,例如在 ImageNet 數據集上預先訓練的模型。可以在每個時間步驟中提供照片,或者在開始時提供一次,這可能是優選的方法。 輸入序列被填充為固定長度和整數編碼以通過字嵌入。 輸出字是一個熱編碼,以允許模型預測整個詞匯表中單詞的概率。 重復遞歸字生成過程,直到生成序列標記的結束。 這似乎是關于該主題的論文中描述的首選模型,并且可能是我們目前針對此類問題的最佳結構。 測試這種方法,我發現該模型很容易生成可讀的描述,其質量通常由經過更長時間訓練的大型模型改進。該模型技能的關鍵是屏蔽填充的輸入序列。沒有掩蔽,所產生的單詞序列是可怕的,例如,序列標記的結束反復重復。 ## 建模最佳實踐 本節列出了開發字幕生成模型時的一些常規技巧。 * **預訓練的照片特征提取模型**。使用在 ImageNet 等大型數據集上預訓練的照片特征提取模型。這稱為轉學習。 2014 年贏得 ImageNet 競賽的牛津視覺幾何組(VGG)模型是一個良好的開端。 * **預訓練的單詞嵌入模型**。使用經過預先訓練的單詞嵌入模型,該模型使用平均大型語料庫訓練的向量或訓練您的特定文本數據。 * **Fine Tune 預訓練模型**。探索在您的模型中訓練預訓練模型,看看它們是否可以針對您的特定問題進行撥入,并導致技能略有提升。 * **預處理文本**。預處理文本描述以減少要生成的單詞的詞匯量,進而減少模型的大小。 * **預處理照片**。預處理照片特征提取模型的照片,甚至預提取特征,以便在訓練模型時不需要完整的特征提取模型。 * **填充文字**。將輸入序列填充到固定長度;這實際上是為深度學習庫向量化輸入的要求。 * **掩蔽填充**。在嵌入層上使用掩碼忽略“_ 無字 _”時間步長,當字是整數編碼時通常為零值。 * **注意**。在生成輸出字時要注意輸入序列,以便在生成每個字時獲得更好的表現并理解模型“_ 看 _”的位置。 * **評估**。使用標準文本翻譯指標(如 BLEU)評估模型,并將生成的描述與多個參考圖像標題進行比較。 您是否有自己的最佳實踐來開發強大的字幕模型? 請在下面的評論中告訴我。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 * [Show and Tell:神經圖像標題生成器](https://arxiv.org/abs/1411.4555),2015。 * [顯示,參與和講述:視覺注意的神經圖像標題生成](https://arxiv.org/abs/1502.03044),2015。 * [將圖像放在圖像標題生成器](https://arxiv.org/abs/1703.09137)中的位置,2017。 * [圖像自動生成描述:模型,數據集和評估措施的調查](https://www.jair.org/media/4900/live-4900-9139-jair.pdf),2016。 ## 摘要 在本教程中,您發現了 3 個序列預測模型,可用于解決為照片生成人類可讀文本描述的問題。 你有沒有嘗試過這些模型? 在下面的評論中分享您的經歷。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看