Эволюция и применение CNNs, и почему именно глубокое обучение?
🎙️ Yann LeCunРазвитие свёрточных нейронных сетей (CNNs)
Нейроны в мозге животных реагируют на грани, расположенные перпендикулярно. Группы нейроннов, реагирующие на одинаковые расположения повторяются по всей области зрения.
Фукусима (1982) построил нейронную сеть (NN) которая работала по тому же принципу, что и головной мозг, основываясь на двух концепциях. Во-первых, нейроны повторялись по всей области зрения. Во-вторых, наличие составных ячеек, которые субдискретизировали информацию из простых ячеек (ориентационно-выборочные элементы). В результате сдвиг картинки изменит активацию простых ячеек, но не повлияет на активацию интегрированных составных ячеек (свёрточная субдискретизация).
Лекун (1990) использовал метод обратного распространения ошибки для обучения CNN, чтобы распознавать рукописные цифры. Есть демонстрация 1992 года, где алгоритм распознаёт цифры в любом стиле. Выполнение распознавания символов/образов используя модель, обученную сквозным образом, было новым в то время. До тех пор люди использовали извлечение признаков с наблюдающей моделью поверх него.
Эти новые CNN системы могли распознавать несколько символов на изображении одновременно. Для достижения результата люди использовали маленькое окно для CNN и проводили его через всё изображение. Если оно активировалось, это означало, что там присутствует отдельный символ.
Позже эта идея была применена к обнаружению лиц/людей и семантической сегментации (попиксельная классификация). Примеры включают в себя Hadsell (2009) и Farabet (2012). Со временем это стало популярно в промышленности, используется в приложениях автономного вождения таких, как отслеживание дорожной полосы.
Специализированные виды железа для обучения CNN были горячей темой 1980-х, потом интерес упал, и сейчас это стало популярным снова.
Революция глубокого обучения (хотя термин не использовался в то время) началась в 2010-2013. Исследователи фокусировались на изобретении алгоритмов, которые могли бы помочь обучить крупные CNNs быстрее. Крижевский (2012) представил AlexNet, которая была намного большей CNN, чем использующиеся ранее, она была обучена на ImageNet (1.3 миллионов элементов) при помощи GPUs. Через пару недель выполнения программы AlexNet побила производительность лучших конкурирующих систем с большим отрывом – 25.8% против 16.4% топ-5 процент ошибки.
После очевидного успеха AlexNet, сообщество в компьютерном зрении (CV) было убеждено, что CNNs работают. В то время, как все статьи в 2011-2012, которые упоминали CNNs были отвергнуты, начиная с 2016, большинство принятых работ в компьютерном зрении используют CNNs.
С годами количество использующихся слоёв возрастало: LeNet – 7, AlexNet – 12, VGG – 19, ResNet – 50. Однако, это влечёт компромисс между количеством операций, необходимых для вычисления выхода, размером модели и точностью. Таким образом, сейчас популярной темой является, как сжать сеть, чтобы делать вычисления быстрее.
Глубокое Обучение и Извлечение Признаков
Многослойные сети успешны, поскольку они реализуют составную структуру естественных данных. От составной иерархии, сочетания объектов на одном слое иерархии, до формы объектов на следующем. Если мы сымитируем эту иерархию, как многослойность и предоставим сети обучить соответствующие комбинации признаков, мы получим то, что называется архитектурой Глубокого Обучения. Таким образом, сети Глубокого Обучения иерархические по своей природе.
Архитектуры глубокого обучения привели к невероятному прогрессу в задачах комьютерного зрения, начиная с идентификации и and создания точных масок вокруг объектов, заканчивая определением пространственных свойств объекта. Архитектуры Mask-RCNN и RetinaNet в основном и привели к данным улучшениям.
Mask RCNNs нашли своё применение в сегментировании отдельных объектов, то есть создании масок для каждого объекта на изображении. Вход и выход - оба являются изображениями. Эта архитектура также может использоваться в классовой сегментации, то есть идентификации объектов одного типа на изображении. Detectron, Facebook AI Research (FAIR) программная система с открытым исходным кодом, реализует все эти state-of-the-art алгоритмы обнаружения объектов.
Некоторые практические применения of CNNs включают в себя автономное вождение и анализ медицинских снимков.
Хотя наука и математика, лежащие в основе глубокого обучения, довольно понятны, есть ещё несколько интересных вопросов, которые требуют дополнительных исследований. Эти вопросы вклчают в себя следующие: почему многослойные архитектуры работают лучше, учитывая, что мы можем аппроксимировать любую функцию двумя слоями? Почему CNNs хорошо работают с естественными данными, такими как речь, изображения и текст? Как мы способны так хорошо оптимизировать невыпуклые функции? Почему чрезмерно параметризованные архитектуры работают?
Извлечение признаков заключается в расширении репрезентативной размерности, так, что расширенные признаки с большей вероятностью будут линейно разделимы: точки данных в пространстве большей размерности с большей вероятностью будут линейно разделимы за счёт увеличения количества возможных разделяющих плоскостей.
Ранее специалисты по машинному обучению полагались на признаки высокого качества, ручной работы и зависящие от конкретной задачи, чтобы создавать модели искусственного интеллекта, но с появлением глубокого обучения модели могут извлекать общие признаки автоматически. Некоторые общие походы, используемые в алгоритмах извлечения признаков, выделены ниже:
- Разделение пространства на блоки
- Случайные проекции
- Полиномиальный классификатор (векторное произведение признаков)
- Радиальные базисные функции
- Ядерные методы
Из-за композиционной природы данных, обученные признаки имеют иерархическое представление с возрастающим уровнем абстракции. Например:
- Изображения - На самом детальном уровне изображения можно рассматривать как пиксели. Комбинация пикселей составляет грани, которые при объединении образуют текстоны (многогранные формы). Текстоны образуют мотивы, а мотивы формируют части изображения. Соединив эти части вместе, мы получим окончательное изображение.
- Текст - Точно так же существует внутрення иерархия текстовых данных. Символы образуют слова, когда мы объединяем слова вместе, получаем словосочетания, клаузы, затем, комбинируя клаузы, мы получаем предложения. Предложения, наконец, рассказывают нам, какая история была передана.
- Речь - В речи сэмплы образуют группы, которые образуют звуки, которые составляют созвучия, затем фонемы, потом целые слова, затем предложения, таким образом показывая четкую иерархию в представлении.
Обучение представлений
Есть те, кто отвергает глубокое обучение: если мы можем аппроксимировать любую функцию двумя слоями, зачем нам больше?
Например: метод опорных векторов находит разделяющую гиперплоскость “в диапазоне данных”, это означает, что предсказания основаны на сравнении с обучающими примерами. Метод опорных векторов по сути очень упрощённая двухслойная нейронная сеть, где первый слой определяет “шаблоны”, а второй слой - линейный классификатор. Проблема с двухуровневым заблуждением заключается в том, что сложность и размер среднего слоя экспоненциально зависит от $N$ (чтобы справиться со сложной задачей, необходимо МНОГО шаблонов). Но если Вы увеличите количество слоёв до $\log(N)$, слои станут линейными по $N$. Существует компромисс между временем и пространством.
Аналогия в разработке схемы для вычисления булевой функции с помощью не более двух слоёв вентилей – мы можем вичслить любую булеву функцию таким образом! Но сложность и ресурсы первого уровня (количество вентилей) быстро становятся невыполнимыми для сложных функций.
Что является “глубоким”?
- Метод опорных векторов не глубокий, потому что состоит только из двух слоёв
- Дерево классификация не глубокое, поскольку каждый слой анализирует те же самые (необработанные) признаки
- Глубокая сеть состоит из нескольких слоёв и использует их для построения иерархии признаков возрастающей сложности
Как модели могут обучить представления (хорошие признаки)?
Гипотеза многообразия: естественные данные существуют в многообразии низкой размерности . Множество возможных изображений практически бесконечно, множество “естественных” изображений - это малое подмножество. Например: для изображения человека множество возможных изображений величина порядка определяется количеством лицевых мышц, которые он может двигать (степени свободы) ~ 50. Идеальный (и нереалистичный) выделитель признаков прдеставляет все факторы изменений (каждую мышцу, освещение, и т. п.).
Вопросы и ответы окончания лекции:
- Для лица, может ли какая-либо другая техника уменьшения размерности (то есть Метод главных компонент) извлечь эти признаки?
- Ответ: будет работать, только если поверхность многообразия является гиперплоскостью, а это не так
📝 Marina Zavalina, Peeyush Jain, Adrian Pearl, Davida Kollmar
Evgeniy Pak
27 Jan 2020