Попробуйте Известные операторы!

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

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

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

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

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

В качестве первого примера я хочу выделить компьютерную томографию (КТ). В КТ мы обычно проектируем сканер, и его геометрия хорошо известна. Сама проблема компьютерной томографии довольно проста, потому что ее можно выразить в виде набора линейных уравнений, а решение задачи томографии по существу связано с обращением матрицы. Проблема заключается в том, что рассматриваемая матрица довольно велика. Для обычного размера трехмерной задачи с 512 ³ вокселями и 512 проекциями с 512 ² пикселями каждая инвертируемая матрица потребует 65 000 ТБ памяти с точностью до чисел с плавающей запятой. Поэтому простое изучение обратной матрицы с нуля не является возможным решением даже во времена глубокого обучения.

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

Интересно, что таким образом мы можем не только решить проблему, но и сопоставить обученные веса с их исходной интерпретацией. Если мы это сделаем, то увидим, что инициализация после Parker et al. повторно обучен формированию гирь с правой стороны. Решение нейронной сети демонстрирует поразительное сходство с эвристикой, которую позже предложили Шефер и его коллеги. Из конфигурации гирь мы узнаем, что лучи, проходящие через области недостаточных измерений, усиливаются, чтобы компенсировать детерминированную потерю массы. Очевидно, что этот подход можно распространить и на итерационные методы, такие как Hammernik et al. продемонстрировал.

Однако не все приложения позволят получить доступ к таким обширным предварительным знаниям, как в случае КТ. Поэтому интересно выяснить, можем ли мы также повторно использовать классические методы. Fu et al. сделали это в своем подходе Frangi-Net. Эта сеть основана на Фильтре сосудов Франги. Они даже продемонстрировали, что такие операции, как вычисление собственных значений, могут быть выражены в виде слоев. Таким образом, большую часть структуры фильтра Франги можно использовать повторно. В частности, сверточные слои подходят для обучения конкретному приложению. В своих результатах они могут показать, что обучение на нескольких образцах действительно улучшает метод и позволяет лучше сегментировать сосуды, близкие к характеристикам U-net.

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

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

Существующие подходы к решению проблемы требуют лучевой интерполяции нескольких проекций. Это по своей сути снижает пространственное разрешение изображений и, следовательно, их диагностическую ценность. Поскольку обе геометрии могут быть выражены как матричные умножения, мы можем решить проекции конического луча для x и вставить это в уравнение для проекции параллельного луча. К сожалению, решение теперь имеет большую обратную матрицу, которую дорого калибровать и вычислять в прямом проходе. Как мы уже наблюдали в решении CT, этот шаг часто можно выразить как свертку или точечное умножение в области Фурье. Следовательно, мы постулируем, что желаемое решение принимает эту форму, и определяем топологию для новой сети, которая решает проблему. Результаты впечатляют, фильтр можно обучить только на синтетических примерах с использованием шума и эллипсов и напрямую применить к новым данным, таким как антропоморфный фантом, как показано выше.

Подводя итог, я считаю, что обучение известных операторов - это интересный метод для всех приложений, в которых имеется мало данных для обучения и доступна хорошо известная теория. Для интеграции в глубокую сеть подходит любая операция, позволяющая вычислить субградиент. В качестве таковых могут использоваться даже очень нелинейные операции, такие как медианный фильтр. Фактически, обучение известных операторов уже давно растет, например в компьютерном зрении, где целые трассировщики лучей вводятся в глубокие сети. Я лично надеюсь, что известный операторский подход также поможет обеспечить лучшее понимание глубоких сетей и позволит их повторно использовать без необходимости переноса подходов к обучению. Некоторые первые результаты Fu et al. указывают, что это возможно. Следовательно, я считаю, что этот подход интересен и может хорошо подходить для задач, которые вы хотите решать в своей собственной работе. Теперь приступайте к программированию в нашей среде для онлайн-экспериментов и попробуйте известных операторов!

Если вам понравилось это эссе, вы можете найти дополнительные обучающие материалы по Deep Learning здесь или посмотреть мой канал на YouTube. Эта статья выпущена под лицензией Creative Commons 4.0 Attribution License.