У меня есть доступ к очень большому набору данных. Данные взяты из записей MEG людей, слушающих музыкальные отрывки из одного из четырех жанров. Данные следующие:
- 6 предметов
- 3 экспериментальных повторения (эпохи)
- 120 испытаний за эпоху
- 8 секунд данных на испытание при 500 Гц (= 4000 отсчетов) по 275 каналам MEG
Таким образом, каждый «пример» здесь представляет собой матрицу размера [4000x275], и таких примеров 2160, и это до извлечения каких-либо признаков. Цель состоит в том, чтобы предсказать жанр, основанный на мозговом сигнале (классификация с 4 классами).
Очевидно, что здесь есть некоторые сложные вопросы, а именно:
- Набор данных не помещается в памяти
- В данных будут сильные временные корреляции, и различия между субъектами будут огромными. В результате не очевидно, как разделить данные
- Соотношение сигнал / шум очень низкое
- Не очевидно, какими будут правильные функции для классификатора.
Принимая это в свою очередь:
Есть разные вещи, которые можно сделать. Во-первых, мы можем безопасно уменьшить частоту дискретизации от 500 Гц до ~ 200 Гц, поскольку даже с учетом ограничения Найквиста, активность мозга на самом деле не происходит при частоте более 100 Гц. Мы могли бы также выполнить выборку из набора каналов (например, сосредоточить внимание на слуховых зонах), но мы бы предпочли не делать это априори , так как может быть активность в других областях (фронтальная и т. Д.), Которая может представлять интерес. Возможно, мы также можем отбросить часть временного окна. Возможно, только первые 2s важны для задачи? Это не совсем известно. Конечно, все будут кричать « Уменьшение размерности»! ", но это тоже не тривиально. Во-первых, мы должны быть очень осторожны с разделением поездов / тестов (см. 2.), и также неясно, делать это до или после генерации функций. Во-вторых, кроме дорогих перекрестная проверка или кропотливый визуальный осмотр, нет очевидного способа выбрать ни подходящий метод, ни соответствующее количество измерений. Конечно, мы могли бы просто использовать, например, PCA, ICA или случайные проекции и надеяться на лучшее ....
Это сложно. Если у нас есть последовательные выборки в обучающем наборе, мы, вероятно, перегоним обучающий набор, тогда как, если у нас есть последовательные выборки, разбитые на обучающие и испытательные наборы, мы, вероятно, подойдем к обучающему набору, но все же можем перевыполнить набор для тестирования. Кажется, здесь есть разные варианты:
- Одиночный предмет классификации . Возьмите каждый отдельный предмет по отдельности и разделите в соответствии с эпохами. Это должно быть самой простой задачей, так как мы не пытаемся прогнозировать через мозг. В рамках этого можно использовать две оставшиеся эпохи для перекрестной проверки. Для полноты следует повернуть все комбинации. Мы просто сообщим о средней точности по всем предметам. Конечно, мы не ожидаем, что эти модели будут обобщать вообще.
- В рамках классификации предметов . Возьмите все предметы вместе и разделите их по эпохам. На самом деле это может быть самой простой задачей, так как мы увидим все предметы на тренировке. Однако мы, вероятно, не ожидаем, что модели будут хорошо обобщать новые темы. В рамках этого можно использовать две оставшиеся эпохи для перекрестной проверки. Для полноты следует повернуть все комбинации.
- Между предметами классификация . Также известен как «оставь одного», где в качестве тестовых данных берется один субъект, а остальные используются для обучения. Затем мы будем вращаться по всем предметам. Затем будет проведена перекрестная проверка по предметам. Мы ожидаем, что это будет гораздо более сложной задачей, поскольку мы пытаемся каждый раз предсказывать «новый мозг». Здесь мы ожидаем, что модели будут хорошо обобщать для большей совокупности, хотя существует проблема надежности повторного тестирования (т. Е. Какая перегрузка вызвана временными корреляциями).
Это классическая проблема «иголки в стоге сена» - фактический сигнал, относящийся к распознаванию музыкального жанра или любой жанро-специфической обработке, скорее всего, будет незначительным по сравнению с «супом» активности в мозге. Есть также заметные артефакты, которые можно удалить только частично (в основном, связанные с движением). Любые функции, которые мы получаем из данных, и любые способы обработки данных, должны избегать уничтожения части сигнала, представляющего интерес.
Здесь можно было бы делать разные вещи. Первый - просто использовать необработанные данные (объединенные в вектор) в качестве вектора признаков. Я не уверен, насколько это плодотворно - я думаю, что эти векторы, вероятно, будут по существу равномерно случайными. Тогда это действительно вопрос обработки сигналов, но есть некоторые общие рекомендации, которым можно следовать. Одним из них является проведение стандартного анализа Фурье по скользящему окну, из которого компоненты можно разделить на отдельные полосы частот (альфа / бета / гамма и т. Д.), И их статистику (среднее значение, стандартное отклонение) можно использовать в качестве признаков. Или можно использовать вейвлеты, преобразования Гильберта или даже попытаться найти хаотические аттракторы, Конечно, тогда у нас есть выбор ядер (линейных, полиномиальных, RBF и т. Д.), Которые увеличивают количество перестановок. Возможно, лучшее, что можно сделать здесь, - это создать как можно больше различных наборов функций, а затем использовать MKL или методы повышения, чтобы объединить их вместе.
Как бы вы подошли к такому набору данных (если не к этому конкретно)? Есть ли что-то, что я пропустил по пути? Какова наиболее вероятная стратегия успеха, не затрачивая бесконечные затраты времени исследователей и вычислительных ресурсов?