1

我一直在探索通過神經網絡進行圖像識別。經過一番研究,我開始使用Encog和他們的「ImageNeuralNetwork.java」示例。神經網絡訓練標準:如何訓練多個類別(即形狀和顏色)沒有過度訓練

在他們的例子,它們使用一個圖像每美國貨幣硬幣(便士,硬幣等)作爲訓練集,然後相應地確定硬幣的給定圖像。

現在我想用他們的例子作爲一個起點來練習不同的圖像。我試圖使用形狀/顏色作爲訓練。例如,我想讓程序識別紅色圓圈和紅色矩形之間的區別,但我也想知道紅色圓圈和藍色圓圈之間的區別。

看完記得,你不應該過度的火車,給訓練圖像的每一個可能的組合(如在這種情況下給予2個不同顏色的圓圈和2個不同顏色的矩形的4個圖像)。

我仍然可以使用Encog的硬幣識別示例來訓練多個類別(形狀和顏色)還是這是另一個概念?如果不提供所有可能的顏色/形狀組合並因此過度訓練,是否可以提供特定的最少數量的訓練圖像?

回答

1

當談到避免過度訓練時,沒有可靠的拇指規則。它完全取決於您的網絡結構和數據特徵。大多數構建神經網絡的人通過反覆試驗來管理過度訓練(或過度擬合)的問題。只要您的網絡以高準確度對訓練數據進行分類並以低精度測試數據,您就會過度訓練,您需要減少訓練迭代次數並重新構建網絡並不斷重複此操作。所以要回答你的第二個問題,沒有特定的最小數量的圖像。

關於你提到的第一個問題,你絕對可以培養對多個類別,有幾種方法可以做到這一點...無論是通過使每個類型的多個輸出神經元或具有編碼的輸出...但最常見的有每個類別的單獨網絡效果更好。對於顏色或形狀識別,在大多數情況下,與神經網絡相比,主成分分析的效果更好。

+0

我結束了使用兩個網絡,一個用於形狀,一個用於顏色。我的例子都使用Encog 100%準確。 –