簡體   English   中英

通過反轉數據集中的圖像來增加大量神經網絡訓練時間

[英]Massive neural network training time increase by inverting images in a data set

我已經使用神經網絡幾個月了,我有一個我自己無法解決的小謎團。

我想創建和訓練一個神經網絡,它可以識別 56*56 像素灰度圖像中的簡單幾何形狀(正方形、圓形和三角形)。 如果我使用黑色背景和白色形狀的圖像,一切都很好。 訓練時間約為 18 個 epoch,准確率非常接近 100%(通常為 99.6% - 99.8%)。

但是當我反轉圖像(即,現在是白色背景和黑色形狀)時,所有這一切都發生了變化。 訓練時間猛增到大約 600 個 epoch,而在最初的 500-550 個 epoch 中,什么都沒有發生。 在最初的 500-550 個時期,損失幾乎沒有減少,似乎有些東西“卡住了”。

為什么訓練時間會增加這么多,我該如何減少它(如果可能)?

顏色反轉

您必須從本質上“切換” WxH 像素,因此在每個圖像的增強過程中觸摸每個可能的像素,這相當於大量計算。

總共將是每個時期的 DxWxH 操作(D 是數據集的大小)。

您可能想要預先計算這些並在之后用它們提供您的神經網絡。

失利

神經網絡更難,因為白色用 1 編碼,而黑色用 0 編碼。反之,白色為 0,黑色為 1。

這意味着大多數神經網絡權重都是由背景像素激活的!

更重要的是,每個敏感信號(反轉情況下為 0)乘以零值,對最終損失沒有影響。

使用硬 {0, 1} 編碼的神經網絡試圖從背景中獲取信號(現在黑色像素為 1),這幾乎沒有意義(每個權重將趨於零或幾乎為零,因為它幾乎沒有信息)以及它是什么而是將分布擬合到您的標簽(如果我只預測 1,無論輸入如何,我都會得到較小的損失)。

無聊時試試

嘗試使用平滑值對像素進行編碼,例如白色為 0.1,黑色為 0.9(盡管 1.0 可能工作正常,但可能需要更多的時期,因為 0很難通過反向傳播獲得)並查看結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM