Feature-Selection

使用深度學習進行特徵選擇?

  • December 8, 2016

我想使用深度模型計算每個輸入特徵的重要性。

但是我只找到了一篇關於使用深度學習進行特徵選擇的論文——深度特徵選擇。他們在第一個隱藏層之前插入一層直接連接到每個特徵的節點。

我聽說深度信念網絡(DBN)也可以用於這種工作。但是我認為,DBN 只提供了像 PCA 這樣的特徵的抽象(集群),所以雖然它可以有效地降低維度,但我想知道是否可以計算每個特徵的重要性(權重)。

是否可以使用 DBN 計算特徵重要性?還有其他已知的使用深度學習進行特徵選擇的方法嗎?

對於幾乎任何預測模型,您可以採用的一種方法是首先訓練您的模型並找到其準確性,然後為一個輸入添加一些噪聲並再次檢查準確性。對每個輸入重複此操作,並觀察噪聲如何使預測惡化。如果輸入很重要,那麼由噪聲引起的額外不確定性將是有害的。

請記住將噪聲的方差設置為與相關輸入的方差成比例。

當然,噪聲是隨機的,您不希望一個輸入由於隨機效應而顯得不重要。如果您的訓練示例很少,請考慮重複計算每個訓練示例的準確度變化,每次都添加一個新的噪聲。

回應評論:

這種分析也可以通過完全刪除一個變量來完成,但與添加噪聲相比,這有一些缺點。

  • 假設您的一個輸入是恆定的,它就像一個偏差項,因此它在預測中發揮了一些作用,但它不添加任何信息。如果你完全刪除了這個輸入,那麼預測就會變得不那麼準確,因為感知器得到了錯誤的偏差。這使得輸入看起來對預測很重要,即使它沒有添加任何信息。添加噪音不會導致此問題。如果您已將所有輸入標準化為均值為零,那麼第一點就不是問題。
  • 如果兩個輸入相關,則有關一個輸入的信息會提供有關另一個輸入的信息。如果您只使用一個相關輸入,則可以很好地訓練模型,因此您希望分析發現一個輸入沒有幫助。如果您只是刪除了一個輸入,那麼就像第一點一樣,預測精度會降低很多,這表明它很重要。但是,添加噪聲不會導致此問題。

引用自:https://stats.stackexchange.com/questions/250381

comments powered by Disqus