Jak wybrać funkcje sieci neuronowej?

16

Wiem, że nie ma jednoznacznej odpowiedzi na to pytanie, ale załóżmy, że mam ogromną sieć neuronową z dużą ilością danych i chcę dodać nową funkcję na wejściu. „Najlepszym” sposobem byłoby przetestowanie sieci za pomocą nowej funkcji i zobaczenie wyników, ale czy istnieje metoda sprawdzania, czy funkcja JEST NIEPRAWDOPODOBNIE? Jak miary korelacji ( http://www3.nd.edu/~mclark19/learn/CorrelationComparison.pdf ) itp.?

marcodena
źródło
1
Korelacja nieprzypadkowa może wskazywać, że funkcja jest przydatna. Nie jestem jednak pewien, czy testy przedtreningowe mogłyby wykluczyć pomysły. Dokument, który łączysz, wyjaśnia, że ​​korelacje nieliniowe nie są dobrze wykrywane przez dostępne testy, ale sieć neuronowa ma szansę je znaleźć i wykorzystać.
Neil Slater,

Odpowiedzi:

16

Bardzo silna korelacja między nową i istniejącą funkcją jest dość dobrym znakiem, że nowa funkcja zapewnia niewiele nowych informacji. Prawdopodobnie preferowana jest niska korelacja między nową funkcją a istniejącymi funkcjami.

Silna korelacja liniowa między nową cechą a przewidywaną zmienną jest dobrym znakiem, że nowa cecha będzie cenna, ale brak wysokiej korelacji nie jest konieczny, oznaką słabej cechy, ponieważ sieci neuronowe nie są ograniczone do kombinacji liniowych zmiennych.

Jeśli nowa funkcja została ręcznie zbudowana z połączenia istniejących funkcji, rozważ jej pominięcie. Piękno sieci neuronowych polega na tym, że niewiele wymaga inżynierii cech i przetwarzania wstępnego - funkcje są uczone przez warstwy pośrednie. O ile to możliwe, wolą funkcje edukacyjne niż je opracowywać.

Madison May
źródło
Zawsze myślałem o porównaniu wartości do przewidzenia z funkcjami, mówisz o korelacji między funkcjami. Czy twoja odpowiedź dotyczy także mojej sprawy? teoretycznie powinienem dodawać tylko nowe funkcje, które są skorelowane z wartością do przewidzenia, prawda?
marcodena
To także cenny wskaźnik - właśnie zaktualizowałem moją odpowiedź, aby również to rozwiązać.
Madison,
Krótko mówiąc, silna korelacja z przewidywaną wartością jest doskonałym znakiem, ale słaba korelacja z przewidywaną wartością niekoniecznie jest złym znakiem.
Madison,
Dzięki. Piszę raport i chciałem pokazać korelacje liniowe / nieliniowe, aby uzasadnić cechy (nawet przed wynikami). Czy to ma jakiś sens? Z twojej odpowiedzi mogę zrobić matrycę korelacji, ale może to nosese
marcodena
1
Użyłbym
0

Jeśli używasz sklearn, dostępna jest dobra funkcja o nazwie model.feature_importances_. Wypróbuj swój model / nową funkcję i sprawdź, czy to pomoże. Zobacz także tutaj i tutaj przykłady.

Aniket
źródło