Выбор функций с использованием глубокого обучения?


9

Я хочу рассчитать важность каждой входной функции, используя глубокую модель.

Но я нашел только одну статью о выборе функций с использованием глубокого обучения - глубокий выбор функций . Они вставляют слой узлов, связанных с каждым объектом, непосредственно перед первым скрытым слоем.

Я слышал, что сеть глубокого убеждения (DBN) также может быть использована для такой работы. Но я думаю, что DBN предоставляет только абстракции (кластеры) функций, таких как PCA, поэтому, хотя он может эффективно уменьшить размерность, мне интересно, если возможно вычислить важность (вес) каждой функции.

Можно ли рассчитать важность функции с DBN? И есть ли другие известные методы выбора функций с использованием глубокого обучения?

Ответы:


10

Один из подходов, который вы можете использовать практически для любой модели прогнозирования, - это сначала обучить вашу модель и найти ее точность, а затем для одного входа добавить к ней некоторый шум и снова проверить точность. Повторите это для каждого входа и наблюдайте, как шум ухудшает прогнозы. Если вход важен, то дополнительная неопределенность из-за шума будет вредной.

Не забудьте установить дисперсию шума, чтобы она была пропорциональна дисперсии рассматриваемого входа.

Конечно, шум является случайным, и вы не хотите, чтобы один вход казался неважным из-за случайных эффектов. Если у вас мало тренировочных примеров, рассмотрите возможность многократного расчета изменения точности для каждого тренировочного примера, каждый раз добавляя новый шум.

В ответ на комментарии:

Этот анализ также может быть сделан путем полного удаления переменной, но у этого есть некоторые недостатки по сравнению с добавлением шума.

  • Предположим, что один из ваших входных данных является постоянным, он действует как термин смещения, поэтому он играет определенную роль в прогнозировании, но не добавляет никакой информации. Если вы полностью удалите этот ввод, то прогноз станет менее точным, потому что перцептроны получают неправильное смещение. Это делает входные данные выглядящими так, как будто они важны для предсказания, даже если они не добавляют никакой информации. Добавление шума не вызовет этой проблемы. Этот первый пункт не проблема, если вы стандартизировали все входы, чтобы иметь нулевое среднее значение.

  • Если два входа коррелированы, то информация об одном входе дает информацию о другом. Модель может быть хорошо обучена, если вы используете только один из коррелированных входов, поэтому вы хотите, чтобы анализ обнаружил, что один вход не является полезным. Если вы просто удалили один из входных данных, то, как и в первом пункте, точность прогноза сильно снизится, что указывает на его важность. Однако добавление шума не вызовет этой проблемы.


2
Хью, я знаком с этим, удалив эту функцию. Каковы преимущества замены функции шумом?
Дал

@ Я не имел в виду, что эта функция должна быть полностью заменена шумом, просто нужно добавить немного шума. Удаление объекта может сделать неважные объекты выглядящими важными, если они имеют ненулевое среднее значение или если они связаны с другими переменными. Я отредактировал свой ответ, чтобы объяснить.
Хью

Спасибо за комментарий. Но на самом деле у меня есть ряд функций (входов), и многие из них взаимосвязаны. В этом случае, возможно, время вычислений будет близко к n! как мне нужно рассмотреть комбинации. Поэтому я хочу применить модель глубокого обучения, которая может учитывать сложные комбинации характеристик.
z991

@ z991 в многопараметрической линейной регрессии та же проблема может возникнуть с переменными, которые не идеально коррелированы. Часто мы вводим каждую переменную по одной или используем все переменные и удаляем их по одной. Нет способа просто рассчитать лучшую комбинацию. Если это не было решено для линейной регрессии, вы не найдете решения для NN. Вы можете использовать один и тот же подход и удалять переменные по одной и избегать n! вычисление.
Хью

1
@ Huge Спасибо за комментарий. Я с тобой согласен. Но я действительно хотел узнать, как рассчитать важность каждой функции с помощью глубокого обучения или нейронной сети. Поскольку они используют несколько извлечений объектов (скрытых слоев), мне было трудно проанализировать важность функции. Можно рассчитать общий вес каждого элемента, но он кажется довольно сложным и отнимает много времени. Связанная бумага использовала один линейный слой, и я думаю, что это хорошая идея. Я хотел знать другие лучшие методы для анализа важности функций в сети.
z991

2

Возможно, проверьте этот документ: https://arxiv.org/pdf/1712.08645.pdf

Они используют отсев для ранжирования функций.

... В этой работе мы используем концепцию выпадения на входном слое объектов и оптимизируем соответствующую частоту выпадения объектов. Поскольку каждая функция удаляется стохастически, наш метод создает эффект, аналогичный пакетированию объектов (Ho, 1995), и ему удается ранжировать коррелированные объекты лучше, чем другие методы, не относящиеся к пакетированию, такие как LASSO. Мы сравниваем наш метод с рандомизированным лесом (RF), LASSO, ElasticNet, маржинальным ранжированием и несколькими методами для определения важности в DNN, такими как глубокий выбор характеристик и различные эвристики ...


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.