2010-01-02 75 views
1

我試圖構建一個應用程序來檢測從網頁上的廣告圖像。一旦我發現我不會讓這些顯示在客戶端。神經網絡輸入數據的優化

基本上我使用反向傳播算法來訓練神經網絡使用這裏給出的數據集:http://archive.ics.uci.edu/ml/datasets/Internet+Advertisements

但是在該數據集中沒有。屬性非常高。事實上,該項目的一位導師告訴我,如果你訓練具有許多屬性的神經網絡,需要很多時間才能接受訓練。那麼有沒有一種方法來優化輸入數據集?或者我只需要使用那麼多的屬性?

回答

5

1558實際上是適量的特徵/屬性。實例數量(3279)也很小。問題不在數據集方面,而是在訓練算法方面。

ANN訓練速度慢,我建議你使用邏輯迴歸或svm。他們兩個都非常快速地訓練。特別是,svm有很多快速算法。

在這個數據集中,您實際上是在分析文本,而不是圖像。我認爲一個線性家庭分類,即logistic迴歸或svm,對您的工作更好。

如果您使用的是生產版本,但不能使用開源代碼。與良好的ANN和SVM相比,Logistic迴歸非常容易實現。

如果您決定使用邏輯迴歸或SVM,我將來可以推薦一些文章或源代碼供您參考。

+0

先生,我的項目組想要爲此使用神經網絡? 我有神經網絡嗎?我能從某處獲得一些幫助嗎? 我可以像邏輯迴歸一樣使用神經網絡算法嗎?更重要的是有沒有那種? – 2010-01-03 15:26:30

+1

神經網絡並不是一個高維問題空間。至於使它更快嘗試使用GPU或減少功能或示例的數量。最後,ann是這份工作的錯誤工具。 – 2010-01-06 21:45:29

+0

好吧,現在我知道ANN沒有成爲正確的工具,所以我決定現在使用SVM。如果你能推薦一些關於它在我的項目中使用的文章,那將是非常棒的。 另外我想問你是否應該先執行。 PCA在實施SVM之前。 謝謝。乾杯! – 2010-01-08 09:02:34

0

aplly一個單獨的ANN爲特徵 例如 457輸入1個輸出的URL術語(ANN1) 495輸入1個輸出origurl(ANN2) ...

然後訓練所有這些每個類別 使用另一個主ANN加入結果

1

如果您實際使用帶1558個輸入節點和僅有3279個樣本的反向傳播網絡,則培訓時間是您遇到的問題中最少的:即使您的網絡非常小隻有一個包含10個神經元的隱藏層,你有1558 * 10的權重之間een輸入層和隱藏層。你怎麼能期望從3279個樣本中獲得15580個自由度的良好估計? (並且這個簡單的計算甚至不考慮「維度的詛咒」)

您必須分析您的數據以瞭解如何對其進行優化。試着理解你的輸入數據:哪些(元組)元素是(共同)統計顯着的? (爲此使用標準統計方法)是否有一些功能是冗餘的? (主成分分析對此是一個很好的說明。)不要指望人工神經網絡爲你工作。哈特着名的「免費午餐定理」:沒有分類算法適用於所有問題。對於任何分類算法X,都存在一個問題,即擲硬幣導致比X更好的結果。如果考慮到這一點,在分析數據之前決定使用什麼算法可能不是一個聰明的想法。你可能已經選擇了比你對特定問題盲目猜測更差的算法! (順便說一句:Duda & Hart &鸛的book about pattern classification是一個很好的起點了解這一點,如果你還沒有讀過它。)