Wybór funkcji za pomocą głębokiego uczenia się?

9

Chcę obliczyć ważność każdej funkcji wejściowej przy użyciu modelu głębokiego.

Ale znalazłem tylko jeden artykuł na temat wyboru funkcji za pomocą głębokiego uczenia się - głęboki wybór funkcji . Wstawiają warstwę węzłów połączonych bezpośrednio z każdą operacją przed pierwszą ukrytą warstwą.

Słyszałem, że do tego rodzaju pracy można również wykorzystać sieć głębokiej wiary (DBN). Ale myślę, że DBN zapewnia tylko abstrakcje (klastry) funkcji takich jak PCA, więc chociaż może skutecznie zmniejszyć wymiar, zastanawiam się, czy jeśli można obliczyć ważność (wagę) każdej cechy.

Czy można obliczyć ważność funkcji za pomocą DBN? Czy istnieją inne znane metody wyboru funkcji za pomocą głębokiego uczenia się?

z991
źródło

Odpowiedzi:

10

Jednym z podejść, które można zastosować w prawie każdym modelu prognostycznym, jest najpierw wytrenowanie modelu i znalezienie jego dokładności, a następnie dla jednego wejścia dodać trochę hałasu i ponownie sprawdzić dokładność. Powtórz to dla każdego wejścia i obserwuj, jak hałas pogarsza prognozy. Jeśli dane wejściowe są ważne, dodatkowa niepewność związana z hałasem będzie szkodliwa.

Pamiętaj, aby ustawić wariancję hałasu tak, aby była proporcjonalna do wariancji danych wejściowych.

Oczywiście szum jest przypadkowy i nie chcesz, aby jeden sygnał wejściowy wydawał się nieistotny z powodu losowych efektów. Jeśli masz kilka przykładów treningu, rozważ wielokrotne obliczanie zmiany dokładności dla każdego przykładu treningu z dodawanym za każdym razem nowym hałasem.

W odpowiedzi na komentarze:

Tę analizę można również wykonać przez całkowite usunięcie zmiennej, ale ma to pewne wady w porównaniu do dodawania szumu.

  • Załóżmy, że jedno z twoich danych wejściowych jest stałe, działa jak termin uprzedzenia, więc ma pewną rolę do odegrania w przewidywaniu, ale nie dodaje żadnych informacji. Jeśli całkowicie usuniesz te dane wejściowe, przewidywanie stałoby się mniej dokładne, ponieważ perceptrony mają niewłaściwe odchylenie. To sprawia, że ​​dane wejściowe wyglądają, jakby były ważne dla przewidywania, nawet jeśli nie dodają żadnych informacji. Dodanie hałasu nie spowoduje tego problemu. Ten pierwszy punkt nie stanowi problemu, jeśli ujednoliciłeś wszystkie dane wejściowe tak, aby miały zero.

  • Jeśli dwa dane wejściowe są skorelowane, informacje o jednym wejściu dają informacje o drugim. Model może być dobrze wyszkolony, jeśli użyjesz tylko jednego ze skorelowanych danych wejściowych, aby analiza wykazała, że ​​jedno dane wejściowe nie są pomocne. Jeśli właśnie usunąłeś jedno z danych wejściowych, to podobnie jak pierwszy punkt dokładność prognozy znacznie by się zmniejszyła, co wskazuje, że jest to ważne. Jednak dodanie hałasu nie spowoduje tego problemu.

Hugh
źródło
2
Hugh, znam się na tym, usuwając tę ​​funkcję. Jakie są zalety zastąpienia tej funkcji hałasem?
DaL
@ Dan Nie miałem na myśli, że funkcja powinna zostać całkowicie zastąpiona przez szum, tylko że należy dodać trochę hałasu. Usunięcie elementu może sprawić, że nieistotne elementy będą wyglądać na ważne, jeśli mają niezerową średnią lub są skorelowane z innymi zmiennymi. Zredagowałem swoją odpowiedź, aby wyjaśnić.
Hugh,
Dziękuje za komentarz. Ale w rzeczywistości mam wiele zestawów funkcji (danych wejściowych) i wiele z nich jest skorelowanych. W takim przypadku być może czas obliczeniowy będzie bliski n! ponieważ muszę rozważyć kombinacje. Dlatego chcę zastosować model oparty na głębokim uczeniu się, który może uwzględniać złożone kombinacje funkcji.
z991
@ z991 w wielowymiarowej regresji liniowej ten sam problem może wystąpić w przypadku zmiennych, które nie są idealnie skorelowane. Często wprowadzamy każdą zmienną pojedynczo lub używamy wszystkich zmiennych i usuwamy je pojedynczo. Nie ma sposobu, aby po prostu obliczyć najlepszą kombinację. Jeśli nie zostało to rozwiązane dla regresji liniowej, nie znajdziesz rozwiązania dla NN. Możesz zastosować to samo podejście i usuwać zmienne pojedynczo i unikać n! obliczenie.
Hugh,
1
@ Ogromne Dziękujemy za komentarz. Zgadzam się z Tobą. Ale tak naprawdę chciałem wiedzieć, jak obliczyć znaczenie każdej funkcji za pomocą głębokiego uczenia lub sieci neuronowej. Ponieważ używają kilku wyciągów funkcji (ukrytych warstw), trudno było mi przeanalizować znaczenie funkcji. Można obliczyć całkowitą wagę każdej funkcji, ale wydaje się ona dość złożona i czasochłonna. Połączony papier wykorzystał pojedynczą warstwę liniową i myślę, że to dobry pomysł. Chciałem poznać inne lepsze metody analizy znaczenia funkcji w sieci.
z991
2

Może sprawdź ten artykuł: https://arxiv.org/pdf/1712.08645.pdf

Używają dropout do oceniania funkcji.

... W tej pracy wykorzystujemy koncepcję rezygnacji na wejściowej warstwie obiektów i optymalizujemy odpowiadający jej współczynnik rezygnacji. Ponieważ każda cecha jest usuwana stochastycznie, nasza metoda daje podobny efekt do łączenia elementów (Ho, 1995) i udaje mu się uszeregować skorelowane cechy lepiej niż inne metody bez workowania, takie jak LASSO. Porównujemy naszą metodę do Random Forest (RF), LASSO, ElasticNet, Marginal ranking i kilku technik w celu uzyskania znaczenia w DNN, takich jak Deep Feature Selection i różne heurystyki ...

Florida Man
źródło