Вибір особливостей за допомогою глибокого навчання?


9

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

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

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

Чи можливо обчислити важливість функції за допомогою DBN? Чи існують інші відомі методи вибору особливостей за допомогою глибокого навчання?

Відповіді:


10

Один із підходів, який ви можете застосувати майже для будь-якої моделі прогнозування, - спершу навчити свою модель і знайти її точність, а потім за один вхід додати трохи шуму до неї та ще раз перевірити точність. Повторіть це для кожного входу і спостерігайте, як шум погіршує прогнози. Якщо вхід важливий, то додаткова невизначеність через шум буде згубна.

Пам'ятайте, що дисперсія шуму повинна бути пропорційною дисперсії вхідного питання.

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

У відповідь на коментарі:

Цей аналіз також можна зробити, видаливши змінну повністю, але це має деякі недоліки порівняно з додаванням шуму.

  • Припустимо, що один з ваших даних є постійним, він діє як термін зміщення, тому він повинен грати певну роль у передбаченні, але він не додає інформації. Якщо ви повністю вилучили цей вхід, то прогнозування стане менш точним, оскільки перцептрони отримують неправильні ухили. Це робить вхід таким, як він важливий для прогнозування, хоча він не додає інформації. Додавання шуму не спричинить цю проблему. Цей перший пункт не є проблемою, якщо ви стандартизували всі входи на нульову середню.

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


2
Х'ю, я знайомий з цим, видаляючи функцію. Які переваги замінити функцію шумом?
DaL

@Дон я не мав на увазі, що цю функцію слід повністю замінити на шум, просто додасться якийсь шум. Видалення функції може зробити неважливі функції важливими, якщо вони мають нульове значення або якщо вони співвідносяться з іншими змінними. Я відредагував свою відповідь, щоб пояснити.
Х'ю

Дякую за коментар Але насправді у мене є ряд наборів функцій (входів), і багато з них є співвіднесеними. У цьому випадку, можливо, час обчислення буде близьким до n! як мені потрібно розглянути комбінації. Тому я хочу застосувати глибоку модель, засновану на навчанні, яка може розглянути складні комбінації функцій.
z991

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

1
@Huge Дякую за коментар. Я погоджуюсь з тобою. Але мені дуже хотілося знати, як обчислити важливість кожної функції за допомогою глибокого навчання чи нейронної мережі. Оскільки вони використовують кілька вилучень функцій (прихованих шарів), мені було важко проаналізувати важливість функції. Можна розрахувати всю вагу кожної особливості, але це здається досить складним і трудомістким. Зв'язаний папір використовував один лінійний шар, і я думаю, що це гарна ідея. Мені хотілося знати інші кращі методи аналізу важливості функції в мережі.
z991

2

Можливо, перевірте цей документ: https://arxiv.org/pdf/1712.08645.pdf

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

... У цій роботі ми використовуємо концепцію відміни на вхідному шарі функцій та оптимізуємо відповідну функціональну швидкість відсіву. Оскільки кожна функція видаляється стохастично, наш метод створює аналогічний ефект, ніж функція пакетування функцій (Ho, 1995) і вдається класифікувати корельовані функції краще, ніж інші методи, що не містять пакети, такі як LASSO. Ми порівнюємо наш метод з випадковим лісом (РФ), LASSO, ElasticNet, маргінальним рейтингом та декількома методами, щоб отримати важливість у DNN, таких як глибокий вибір функцій та різноманітна евристика ...


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.