Некоторая предыстория

(Слайд-колоду для этой работы можно найти https://speakerdeck.com/jchin/decomposing-dynamics-from-different-time-scale-for-time-lapse-image-sequences-with-a-deep-cnn )

Я оставил свою работу научным сотрудником в PacBio после 9-летнего предприятия, которое помогало сделать секвенирование отдельных молекул полезным для научного сообщества (см. Мой рассказ о первой паре лет в PacBio). Большая часть моей научно-технической работы была связана с последовательностями ДНК. Несмотря на то, что есть несколько захватывающих подходов к глубокому обучению для решения пары интересных проблем, мне нравится немного исследовать за пределами области секвенирования ДНК.

Я присоединился к DNAnexus некоторое время назад. Компания зарекомендовала себя как лидер платформ облачных вычислений для обработки биологических данных / данных секвенирования. Я подумал, что было бы полезно поэкспериментировать с платформой для демонстрации разработки моделей глубокого обучения для биологических данных, отличных от последовательностей ДНК. С этой целью мы с бывшим CSO Эндрю Кэрроллом решили посмотреть, что мы можем сделать для некоторых работ, связанных с биологической визуализацией.

Когда мы искали несколько примеров, Джин Майерс (да, тот, кто провел первую сборку дробовика полного генома человека) опубликовал инструмент CSBdeep из своей лаборатории в Институте молекулярной клеточной биологии им. Макса Планка и Genetics (MPI-CBG) в Дрездене, Германия, для создания изображений сверхвысокого разрешения из конфокальных изображений светового листа для изучения процесса биологического развития.

Вдохновленный статьей CSBDeep, Эндрю обратился к официальному сотруднику, Ин Гу, чтобы узнать, есть ли у нее какие-нибудь интересные изображения, которые мы могли бы продемонстрировать с помощью CSBDeep на нашей платформе. Было относительно легко воспроизвести результаты CSBDeep и применить их к новым изображениям с помощью платформы облачных вычислений DNAnexus. Тем не менее, я думал, можем ли мы сделать что-то немного другое, что-то новое, по крайней мере, для меня.

Фильм - это немного веселее, чем просто статические изображения

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

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

Как мы можем отделить движущуюся часть от статической в ​​таких видеороликах с замедленной съемкой?

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

Использование нескольких автокодировщиков для прогнозирования будущего в разном масштабе времени

Что является фоном в такой замедленной съемке? В архитектурах нейронных сетей с глубоким обучением автокодировщик может изучать сокращенное представление со скрытым слоем для воспроизведения входных данных. Функция потерь во время обучения обычно представляет собой разность L2 между выходами и входами. Если мы думаем, что фон является инвариантной частью фильмов, мы должны надеяться, что сможем использовать такой автокодировщик, чтобы изучить сокращенное представление, которое может предсказывать вывод в более позднее время из ввода в более раннее время. Инвариантная часть изображений в разные моменты времени должна быть запрограммирована автокодировщиком.

Мы можем думать, что изображение в данный момент времени может быть реконструировано из функций или компонентов более раннего времени в разных масштабах. Мы используем автоматический кодировщик, который прогнозирует изображение в момент времени t из (t-∆t). Если ∆t велико, то мы надеемся, что автокодировщик сможет изучить фоновую часть. Мы можем изучить более быструю часть с меньшим ∆t и так далее. Например, мы можем построить изображение в момент времени t как композицию предсказания из изображений в t-8 (кадры), t-4 (кадры), t-2 (кадры) и t-1 (кадры), чтобы поймать вклад из разных временных масштабов.

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

Прочие родственные работы

Хотя я думаю, что подход, который мы разработали, интересен и его очень легко реализовать с помощью PyTorch, безусловно, есть некоторые предыдущие работы, которые решают аналогичные проблемы. Например, в статье Прогнозирование в условиях неопределенности с использованием сетей кодирования ошибок (EEN) Микаэль Хенафф, Джунбо Чжао и Ян ЛеКун используют механизм обратной связи от ошибок прогнозирования в скрытое пространство для получения лучших результатов прогнозирования.

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

Построение моделей глубокого обучения с помощью облачной платформы DNAnexus

Часть моих упражнений здесь также предназначена для практики есть собачий корм, как новичок в платформе DNAnexus. Ниже приведен снимок экрана прототипа, над которым мы с коллегами работали над интеграционным решением облачной рабочей станции Jupyter Lab Workstation на платформе DNAnexus. Благодаря такой интеграции мы можем легко интегрировать управление данными, построение моделей и оценку.

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

Подтверждение

Я хочу поблагодарить Сяорань Синь и Инь Гу за то, что они поделились результатами своих исследований, чтобы мы могли проверить эту идею. Я также хочу поблагодарить Эндрю Кэрролла за то, что он подключил нас к лаборатории Ин Гу. Конечно, я никогда не буду достаточно благодарен своим коллегам из DNAnexus, которые помогли мне быстро освоиться, чтобы я мог начать использовать платформу для интересных работ по машинному обучению и искусственному интеллекту.