У мене є доступ до дуже великого набору даних. Дані з MEG- записів людей, які слухають музичні уривки, з одного з чотирьох жанрів. Дані такі:
- 6 Предметів
- 3 Експериментальні повтори (епохи)
- 120 випробувань за епоху
- 8 секунд даних за пробу при 500 Гц (= 4000 зразків) з 275 МЕГ-каналів
Отже, кожен "приклад" є матрицею розміру [4000x275], і є 2160 таких прикладів, і це перед будь-яким вилученням функції. Мета - передбачити жанр на основі сигналу мозку (класифікація 4 класу).
Очевидно, що тут є кілька складних питань, а саме:
- Набір даних не вміщується в пам'яті
- У даних буде сильна часова кореляція, а міжпредметна різниця буде величезною. Як результат, не очевидно, як розділити дані
- Співвідношення сигнал / шум дуже низьке
- Не очевидно, якими були б правильні функції класифікатора
Беручи це по черзі:
Можна зробити різні речі. По-перше, ми можемо безпечно зменшити вибірку з 500 Гц до ~ 200 ГГц, оскільки навіть враховуючи ліміт Найквіста, мозкова активність насправді не відбувається на 100 ГГц. Ми також можемо підпробовувати з набору каналів (наприклад, центр над слуховими ділянками), але ми б не хотіли робити це апріорі , оскільки може бути діяльність в інших областях (лобових тощо), які можуть представляти інтерес. Напевно, ми можемо також скинути частину часового вікна. Можливо, для виконання завдання важливі лише перші 2? Це насправді не відомо. Звичайно, всі будуть кричати " Зменшення розмірності "! ", але це теж не банально. По-перше, нам слід бути дуже обережними щодо наших розбитків поїздів / тестів (див. 2.), і також не очевидно, чи потрібно робити це до або після генерації функцій. По-друге, крім дорогого перехресне підтвердження або кропітка візуальна перевірка, немає очевидного способу вибору відповідного методу або відповідної кількості вимірів. Ми, звичайно, можемо просто використати, наприклад, PCA, ICA або випадкові прогнози і сподіватися на найкраще ....
Це хитро. Якщо у нас є послідовні зразки у навчальному наборі, ми, ймовірно, переобладнаємо навчальний набір, тоді як якщо у нас є послідовні зразки, розбиті на набори поїздів і тестові набори, ми, ймовірно, будемо недоопрацьовувати навчальний набір, але все-таки можемо перевищити тестовий комплект. Тут, здається, існують різні варіанти:
- Єдина предметна класифікація . Візьміть кожен окремий предмет самостійно і розділіть за епохами. Це повинно бути найпростішим завданням, оскільки ми не намагаємось передбачити мізки. У межах цього можна використати дві залишки епохи для перехресної перевірки. Для повноти слід обертати всі комбінації. Ми просто повідомимо про середню точність за всіма предметами. Звичайно, ми б не очікували, що ці моделі взагалі добре узагальнені.
- У межах класифікації предметів . Візьміть усі предмети разом і розділіть за епохами. Насправді це може бути найпростішим завданням, оскільки ми побачили всі предмети на тренінгу. Однак ми, мабуть, не сподіваємось, що моделі добре узагальнить нові теми. У межах цього можна використати дві залишки епохи для перехресної перевірки. Для повноти слід обертати всі комбінації.
- Між предметами класифікації . Також відомий як "відпуск-один-вихід", де один предмет береться за тестові дані, а решта використовується для навчання. Потім ми б оберталися через усі предмети. Перехресна перевірка буде виконуватися над суб'єктами. Ми б очікували, що це буде набагато складніше завдання, оскільки ми намагаємось передбачити "новий мозок" кожен раз. Тут ми могли б очікувати, що моделі добре узагальнюватимуться для більшої кількості населення, хоча виникає проблема надійності тестування повторного тестування (тобто, скільки перевиконання спричинене тимчасовими кореляціями).
Це класична проблема «голка в копиці сіна» - власне сигнал, що стосується розпізнавання музичного жанру, або будь-якої жанрової обробки, ймовірно, буде незначним порівняно з «супом» діяльності в мозку. Також є помітні артефакти, які можна видалити лише частково (в основному пов'язані з рухом). Будь-які функції, які ми отримуємо з даних, і будь-які способи обробки даних, повинні уникати руйнування частини сигналу, що цікавить.
Тут можна було б уявити, як робити різні речі. Першим було б просто використовувати необроблені дані (об'єднані у вектор) як вектор функції. Я не впевнений, наскільки це плідно - я думаю, що ці вектори, ймовірно, були б однаково випадковими. Тоді це справді питання щодо обробки сигналів, але є деякі загальні рекомендації, яких можна дотримуватися. Перший - це зробити стандартний аналіз Фур’є через розсувне вікно, з якого компоненти можна розділити на окремі діапазони частот (альфа / бета / гамма тощо), і статистика цих (середнє, стд. Відхилення) може використовуватися як функції. Або можна використовувати Wavelets, Hilbert Transforms або навіть спробувати шукати хаотичні атрактори. Звичайно, тоді у нас є вибір ядер (лінійних, поліномних, RBF тощо), які збільшують кількість перестановок. Можливо, найкраще тут зробити - створити якомога більше різноманітних наборів функцій, а потім використовувати MKL або прискорюючі методи, щоб поєднати їх разом.
Як би ви підійшли до такого типу наборів даних (якщо не конкретно до цього)? Чи є щось, що я пропустив по дорозі? Яка найімовірніша стратегія для досягнення успіху, не витрачаючи нескінченну кількість часу дослідників та обчислювальних ресурсів?