Могут ли клетки гиппокампа млекопитающих запоминать их прошлые местоположения и предсказывать местоположения в будущем?

Введение и предыстория

В 2019 году Тампуу и др. из факультета компьютерных наук Тартуского университета, Эстония, и из Университетского колледжа Лондона, опубликовали статью Эффективное нейронное декодирование собственного местоположения с помощью глубокой рекуррентной сети, в которой они смогли предсказать местоположение крысы с помощью RNN (LSTM). точнее) и записи нейронов гиппокампа. Они показали, что их подход лучше, чем байесовский декодер, для предсказания местоположения крысы в ​​2D-среде. В частности, они разработали декодер, который принимает количество импульсов нейронов из частично перекрывающихся временных окон, а затем предсказывает местонахождение крысы в ​​середине последнего временного окна. Авторы оригинальной статьи получили набор данных из лаборатории Касвелла Барри в Калифорнийском университете.

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

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

Предсказание будущего с помощью нейронных сетей

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

Метод

В оригинальной статье исследователи использовали нейронную сеть с узлами LSTM, чтобы предсказать текущее местоположение крысы. LSTM (или долгая кратковременная память) - это тип рекуррентной нейронной сети. Узлы LSTM также «запоминают» информацию в течение некоторого произвольного количества времени, возможно, подобно тому, как это делает мозг.

В то время как крысы перемещались в 2D-среде, количество нейронных спайков их локационных клеток измерялось для каждых 200 мс интервалов, так называемых временных шагов. Вход RNN на основе LSTM был сформирован измерениями на 100 таких последовательных временных шагах. Затем сеть попросили предсказать местоположение крысы в ​​центре последнего временного окна. Таким образом, исследователи получили довольно хорошее приближение к текущему местонахождению крысы. Мы можем проиллюстрировать этот процесс на картинке ниже.

Простой подход к предсказанию будущего состоит в том, чтобы просто использовать ту же архитектуру и входные данные, но изменить местоположение, которое мы предсказываем. Например, если у нас есть временные шаги 200 мс, мы можем попросить сеть спрогнозировать 200 мс, 400 мс, 600 мс и т. Д. В будущем на основе данных последнего всплеска.

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

Итак, если бы мы предсказывали будущее, используя этот подход, иллюстрация сверху изменилась бы на это:

Сетевая архитектура

Сама нейронная сеть состоит из входного слоя, двух слоев узлов LSTM и выходного слоя. К обоим слоям LSTM также прикреплен дропаут, чтобы избежать переобучения. Всего в модели около 3 миллионов обучаемых параметров. Как вы, возможно, знаете, обучение больших нейронных сетей может занять довольно много времени. Особенно, если вы используете свой обычный процессор. Если вы хотите чего-то добиться в разумные сроки, вам действительно стоит использовать ускорение графического процессора. К счастью, Google Colab - идеальное место для такого рода экспериментов, и мы его использовали.

Результаты

После обучения этих моделей в течение 40 эпох мы получили вот такие результаты. Ось X показывает, насколько далеко вперед мы прогнозировали будущее, а ось Y представляет среднеквадратичную ошибку для наших прогнозов (размер 2D-среды, в которой наблюдались крысы, составлял 1 метр x 1 метр).

Результаты выглядят примерно так, как мы и ожидали. Чем дальше мы прогнозируем будущее, тем больше становится ошибка. Обратите внимание, что нас действительно не интересует, насколько точна модель, а только то, как увеличивается ошибка с точки зрения того, как далеко мы прогнозируем будущее (время T в мс). Здесь нет четкой границы, по которой мы можем сказать, что данная крыса не планировала так далеко.

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

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

Отделение воспоминаний и планов на будущее Крысы от информации о текущих движениях

Метод

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

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

  1. Базовая модель - предсказывайте прошлые или будущие местоположения на основе только текущего местоположения крысы, скорости и направления движения (т. е. вообще без использования данных о выбросах нейронов). Для этого мы решили использовать алгоритм обучения регрессора случайного леса scikit-learn.
  2. Расширенная модель - используйте тот же алгоритм обучения с теми же гиперпараметрами, что и в базовой модели, но используйте в качестве входных данных как текущее местоположение, так и информацию о движении, а также данные о всплеске нейронов.

Идея: если частота ошибок в расширенной модели, описанной выше, меньше, чем частота ошибок для базовой модели, указанной выше, мы можем точно сказать что данные нейронных импульсов кодируют больше данных, чем просто текущее местоположение крысы, направление и скорость движения. Обучая и тестируя таким образом массив моделей для разных временных интервалов в прошлом или будущем (по одной модели на каждый временной интервал), мы можем определить нижние границы того, насколько далеко в прошлом крыса помнит, где она была или как далеко. в будущее крыса заранее планирует свои движения.

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

Исходные данные

Данные о всплеске нейронов, представленные в репозитории GitHub исходной статьи, легко предварительно обрабатываются во множестве различных разделов. Есть измерения для нескольких крыс для 2 разных экспериментов в отдельных файлах данных, и для каждой крысы измерения предварительно обрабатываются в разных временных окнах (которые перекрываются для временных окон более 200 мс) для подсчета импульсов нейронов.

Мы сосредоточились на двухмерном эксперименте, то есть на данных о навигации крысы в ​​двухмерной среде. В рамках двухмерного эксперимента мы сосредоточились на наборе данных, который обеспечивал подсчет импульсов нейронов в неперекрывающихся временных окнах 200 мс. В этом наборе данных одна точка данных в наборе данных эксперимента включает количество всплесков на нейрон в качестве характеристик в течение 200 мс и местоположение крысы в ​​середине наблюдаемого периода времени в качестве метки. .

Измерения данных нейрональных импульсов и местоположения крысы проводились в течение 20 минут.

Предварительная обработка данных и модели для разных интервалов времени

Чтобы научить модель угадывать, где была крыса в прошлом или где она будет в будущем, мы должны сдвинуть метки (местоположения крысы) по оси времени. Скажем, мы хотим знать, есть ли у клеток места крысы какие-либо воспоминания о своем местонахождении на 10 секунд назад. Затем нам нужно сместить метки в исходном наборе данных, чтобы для каждой точки данных нейронных всплесков у нас было соответствующее местоположение за 10 секунд в прошлом. Затем мы можем использовать эти данные для обучения нашей модели и проверки, чтобы найти среднюю абсолютную ошибку при прогнозировании 10 секунд назад.

И мы хотели создать такие модели для разных временных интервалов, а не только для 10 секунд, чтобы увидеть, знают ли и насколько далеко в прошлом или будущем ячейки местоположения крысы о ее местоположении. Мы решили сканировать все временные интервалы, начиная с 1 минуты в прошлом, заканчивая 1 минутой в будущее, с временными шагами 200 мс. Итак, для каждой крысы мы сгенерировали 2 x 601 разных моделей:

  • 300 моделей для угадывания прошлых местоположений для каждого типа модели (базовая и расширенная),
  • 1 модель для текущего местоположения на тип модели (базовая и расширенная),
  • 300 моделей для будущих локаций на каждый тип модели (базовая и расширенная).

Таким образом, всего была сгенерирована 601 модель для базовых моделей и 601 модель для расширенных моделей (как описано выше в подразделе «Метод»).

Результаты

На следующем рисунке показаны результаты обучения и тестирования всех этих моделей описанным выше способом для одной конкретной крысы с кодовым именем R2192. Ось X отражает временной диапазон от 1 минуты прошлого до 1 минуты будущего. 0-точка на оси X - это «текущее время» - это то место, где берутся входные характеристики для прогнозов, а затем прогнозы местоположения для разного времени выполняются со всеми различными моделями соответственно.

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

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

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

Во-первых, поскольку как базовая, так и расширенная модели включают текущее местоположение, а также направление и скорость движения в качестве входных характеристик, ожидается, что MAE-значения обеих моделей упадут до нуля в момент времени 0 («текущее время»). . Для наших моделей действительно тривиально научиться предсказывать текущее местоположение, используя текущее местоположение в качестве входного объекта, не так ли? Что подтверждается запуском модельных тестов. Конечно, если обе модели предсказывают текущее местоположение без ошибок, разница в их ошибках также будет равна 0.

Что должно вызвать наш интерес, так это то, что по мере того, как мы перемещаемся дальше от точки 0 по оси времени, либо в прошлое, либо в будущее, мы можем наблюдать, что для определенных временных диапазонов, вплоть до нескольких секунд, разница между MAE базовой и продвинутой моделей значительно больше, чем для других регионов, расположенных дальше по оси времени. Эти области в рамке добавлены к нижнему графику, чтобы лучше определить различия MAE. Это сигнал, который мы искали. Это дает нам указание (с некоторыми оговорками, призывающими к осторожности при поспешных выводах для уверенных выводов), что клетки местоположения крысы действительно могут помнить свое прошлое местоположение в течение некоторого времени, а также могут «знать», куда крыса планирует пойти. . Этот результат достаточно интересен, поэтому необходимо провести более тщательное исследование этого вопроса.

Однако есть несколько других наблюдений на этих диаграммах, которые требуют объяснений:

Вопрос 1. Почему мы наблюдаем такую ​​колеблющуюся тенденцию как в MAE, так и в разнице MAE? Это артефакт того, как набор данных для обучения и тестирования для каждого временного расстояния (прошлого или будущего ) генерируется. Как описано выше в подразделе «Предварительная обработка данных», мы смотрим на временной диапазон от одной минуты в прошлом до одной минуты в будущее, разделенный на временные шаги 200 мс, что означает 600 различных временных интервалов (300 x 200 мс в прошлом и 300 x 200 мс в будущее). Для каждого такого временного интервала мы обучаем отдельную модель. Для этого мы берем набор функций и вырезаем из него первые 300 и последние 300 строк, чтобы обеспечить наличие ярлыков для одного и того же набора функций в случае каждого наблюдаемого временного интервала. Однако , это означает, что совокупность меток (местоположений, которые мы прогнозируем) смещается, шаг за шагом, по мере того как мы просматриваем все 600 временных шагов. Это означает, что статистическое распределение меток (местоположений, в которых была крыса) также немного меняется для разных временных интервалов, и это происходит постепенно (т. Е. С тенденцией / колебаниями), т. Е. источник слабого наблюдаемого колебательного тренда МАЭ (и различий МАЭ двух разных моделей вместе с ним). К счастью, сигнал, который мы ищем, в непосредственной близости от «текущего времени» еще сильнее, чтобы выделиться из колеблющегося шума для большинства крыс (для одной отдельной крысы из четырех крыс сигнал о планах на будущее, если он присутствовал, то был слишком подавлен колебанием MAE, чтобы выделяться - см. график для крысы R2336 ниже). Предполагая, что это так, наличие большего количества данных (покрывающих большее время для одной и той же крысы) вылечило бы ситуацию, так как это уменьшило бы важность местоположения крыс на этих 300 временных шагах от начала и конца окна измерения (которое в настоящее время составляет около 20 минут).

Вопрос 2: Почему расширенная модель дает худшие результаты, чем базовая в регионах, далеких от t = 0? Как видно из второй диаграммы, очевидно, что большая часть различий в MAE находится дальше от t = 0 отрицательны. Это означает, что в среднем MAE базовой модели немного меньше MAE расширенной модели. Вопрос в том, почему? Как мы знаем из общей мудрости машинного обучения, чем больше мы накапливаем данные о функциях, не увеличивая соответственно количество обучающих экземпляров, тем больше вероятность того, что мы переобучаемся. Поскольку расширенная модель отличается от базовой модели добавлением данных о всплеске нейронов к набору функций (в случае показанного выше крысы R2192, есть данные о всплеске для 63 нейронов, то есть 63 дополнительных входных функции), мы ожидаем, что у нас будет несколько нейронов. добавить больше шума для алгоритма ML и, таким образом, вызвать некоторое переоснащение.

Вопрос 3: Почему прогнозы на будущее кажутся слабее, чем предположения на основе воспоминаний о прошлых местах («желтый прямоугольник» на графике выше, чем «синий прямоугольник»)? Это наблюдение неудивительно поскольку прошлое - твердый факт, и, следовательно, крыса должна иметь конкретные воспоминания о нем. В то же время планы на будущее могут измениться по пути, что даст нам входные данные, в которых сигнал для будущих местоположений будет слабее.

Такой же анализ был проведен на трех других крысах. Ниже приведены соответствующие графики:

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

Градиентный анализ

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

Авторы оригинальной статьи обучили двухслойную сеть LSTM предсказывать текущее местоположение крысы на основе данных нейронных импульсов за последние 100 временных шагов. Вопрос заключался в том, как нейроны декодируют эту информацию и отражается ли это на параметрах нейронной сети. Одна из возможностей - посмотреть на градиенты потерь по отношению к входам модели (которые в данном случае представляют собой пиковые данные нейрона). Чем выше абсолютное значение этого градиента (сила градиента), тем больше небольшое изменение входа изменяет выход.

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

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

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

Всего мы обучили девять моделей, каждая из которых получала в качестве входных данных количество нейронных всплесков за предыдущие 100 временных шагов и предсказывала местоположение в центре последнего временного шага. Модели были либо с 1 рекуррентным слоем, 2 рекуррентными слоями, либо с 2 рекуррентными слоями и одним плотным слоем поверх повторяющихся слоев. Архитектура рекуррентного уровня была простой RNN, LSTM или GRU. Всего 9 разных моделей. Полученный график показан ниже. Каждый подзаголовок предназначен для разной архитектуры сетевого уровня, и на каждом подзаголовке одна линия соответствует архитектуре одной ячейки.

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

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

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

Заключительное слово

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

Авторы

Авторы текущего сообщения в блоге:

  • Аско Сиба, аспирант Института компьютерных наук Тартуского университета, аналитик / инженер и предприниматель в Mooncascade.
  • Альфред Сайдло, студент магистратуры Института компьютерных наук Тартуского университета, энтузиаст математики, скоростной преобразователь кубика Рубика.
  • Карел Кууск, Карел Кууск, магистрант Института компьютерных наук Тартуского университета.

Сообщение в блоге было написано как результат курсового проекта в контексте курса «Введение в вычислительную нейробиологию» в Тартуском университете. Курировали курсовой проект и написание блога: