94-страничный обзор статьи «Сверточные нейронные сети: от базовой технологии к исследовательским перспективам»

искусственный интеллект Нейронные сети компьютерное зрение Архитектура
94-страничный обзор статьи «Сверточные нейронные сети: от базовой технологии к исследовательским перспективам»
Статья выбрана из arXiv, собрана сердцем машины
Сверточные нейронные сети (CNN) достигли беспрецедентного успеха в компьютерном зрении, но в настоящее время у нас нет полного понимания того, почему они настолько эффективны. Недавно Исма Хаджи и Ричард П. Уайлдс с факультета электротехники и компьютерных наук Йоркского университета опубликовали статью «Что мы понимаем о сверточных сетях?», в которой представлен обзор технической основы, строительных блоков, текущего состояния и исследовательские перспективы сверточных сетей Уход, представляя наше текущее понимание CNN. The Heart of the Machine составил этот документ в виде реферата.Для получения более подробной информации, пожалуйста, обратитесь к оригинальному документу и связанной с ним литературе, проиндексированной в нем.

Адрес бумаги:АР Вест V.org/ABS/1803.08…

1. Введение

1.1 Мотивация

В последние несколько лет исследования компьютерного зрения в основном были сосредоточены на сверточных нейронных сетях (часто сокращенно ConvNet или CNN). Эти работы достигли нового современного уровня производительности в широком диапазоне задач классификации и регрессии. Условно говоря, хотя история этих методов насчитывает много лет, теоретическое понимание того, как эти системы достигают отличных результатов, отстает. На самом деле, многие из современных достижений в области компьютерного зрения используют CNN как черный ящик.Этот подход эффективен, но причина его эффективности очень неясна, что серьезно не соответствует требованиям научных исследований. Особенно эти два взаимодополняющих вопроса: (1) С точки зрения того, что изучается (например, ядра свертки), что именно изучается? (2) Почему с точки зрения архитектурного дизайна (например, количество слоев, количество ядер, стратегия объединения, выбор нелинейности) одни варианты лучше других? Ответы на эти вопросы не только помогут улучшить наше научное понимание CNN, но и их полезность.
Кроме того, современные подходы к реализации CNN требуют большого количества обучающих данных, а проектные решения оказывают большое влияние на итоговую производительность. Более глубокое теоретическое понимание должно облегчить зависимость от проектирования, управляемого данными. Несмотря на то, что были проведены эмпирические исследования, изучающие, как работают реализованные сети, до сих пор эти результаты в основном ограничивались визуализацией внутренней обработки, чтобы понять, что происходит на разных уровнях в CNN.

1.2 Цели

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

1.3 План отчета

Этот отчет структурирован следующим образом: В этой главе представлены мотивы для пересмотра нашего понимания сверточных сетей. В главе 2 будут описаны различные многоуровневые сети и представлены наиболее успешные архитектуры, используемые в приложениях компьютерного зрения. В главе 3 более подробно рассматривается каждый из строительных блоков типичной сверточной сети, а также обсуждается структура различных компонентов как с биологической, так и с теоретической точек зрения. Наконец, в Главе 4 обсуждаются текущие тенденции в разработке CNN и понимание работы CNN, а также освещаются некоторые остающиеся ключевые недостатки.

2 многоуровневые сети

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

2.1 Многоуровневая архитектура

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

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

Многоуровневую архитектуру можно определить как вычислительную модель, которая позволяет извлекать полезную информацию из нескольких уровней абстракции входных данных. Как правило, многоуровневые архитектуры разрабатываются с целью выделения важных аспектов ввода на более высоких уровнях, в то же время становясь все более устойчивыми к менее важным изменениям. Большинство многоуровневых архитектур представляют собой наборы простых строительных блоков с чередующимися линейными и нелинейными функциями. За прошедшие годы исследователи предложили множество различных типов многоуровневых архитектур, и в этой главе будут рассмотрены наиболее известные из таких архитектур, используемых в приложениях компьютерного зрения. Искусственные нейронные сети находятся в центре внимания, потому что эта архитектура работает очень хорошо. Для простоты позже мы будем называть этот тип сети напрямую «нейронной сетью».

2.1.1 Нейронная сеть

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

Рисунок 2.1: Схематическая диаграмма типичной архитектуры нейронной сети из [17].

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

Рисунок 2.2: Структура типичной сети автоэнкодера из [17]

2.1.2 Рекуррентная нейронная сеть

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




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

Рисунок 2.4: Схематическая диаграмма типичной ячейки LSTM. Вход в этот блок — это вход для текущего времени и вход для предыдущего времени, затем он возвращает выход и подает его в следующий раз. Окончательный вывод ячейки LSTM контролируется входным затвором, выходным затвором и состоянием ячейки памяти. Рисунок из [33]

2.1.3 Сверточные сети

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

Рисунок 2.5: Схематическая диаграмма структуры стандартной сверточной сети из [93].
Рисунок 2.6: Схематическая диаграмма Неокогнитрона из [49].

2.1.4 Генеративно-состязательные сети

Типичная генеративно-состязательная сеть (GAN) состоит из двух конкурирующих модулей или подсетей, а именно: сети генератора и сети дискриминатора.
Рисунок 2.7: Схематическая диаграмма общей структуры генеративно-состязательной сети

2.1.5 Обучение многоуровневых сетей

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


2.1.6 Кратко о трансферном обучении

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


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

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


2.2.1 Ключевые архитектуры в последних разработках CNN
Рисунок 2.8: Архитектура AlexNet. Следует отметить, что хотя на диаграмме это двухпоточная архитектура, на самом деле это однопоточная архитектура.Эта диаграмма только иллюстрирует параллельное обучение AlexNet на 2 разных графических процессорах. Рисунок из [88]
Рисунок 2.9: Архитектура GoogLeNet. (a) Типичный начальный модуль, показывающий операции, выполняемые последовательно и параллельно. (b) Схематическая диаграмма типичной начальной архитектуры, состоящей из множества начальных модулей, расположенных в слоях. Рисунок из [138]
Рисунок 2.10: Архитектура ResNet. (а) Остаточный модуль. (b) Схематическая диаграмма типичной архитектуры ResNet, состоящей из множества остаточных модулей, сложенных в слои. Рисунок из [64]
Рисунок 2.11: Архитектура DenseNet. (а) Плотный модуль. (b) (b) Схематическое изображение типичной архитектуры DenseNet, состоящей из множества модулей высокой плотности, сложенных слоями. Рисунок из [72]

2.2.2 Реализация инвариантности CNN

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


2.2.3 Внедрение локализации CNN

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


2.3 Пространственно-временные сверточные сети

Использование CNN привело к значительному повышению производительности для различных приложений, основанных на изображениях, и вызвало интерес к расширению 2D пространственных CNN до 3D пространственно-временных CNN для анализа видео. В общем, различные пространственно-временные архитектуры, предложенные в литературе, являются всего лишь попытками расширить двумерную архитектуру пространственной области (x, y) во временную область (x, y, t). В области пространственно-временных CNN на основе обучения выделяются 3 различных архитектурных решения: CNN на основе LSTM, 3D CNN и двухпотоковые CNN.

2.3.1 Пространственно-временная CNN на основе LSTM

Пространственно-временные CNN на основе LSTM были одними из первых попыток расширить 2D-сети для обработки пространственно-временных данных. Их работу можно разделить на три этапа, как показано на рис. 2.16. На первом этапе для обработки каждого кадра используется 2D-сеть, а векторы признаков извлекаются из последнего слоя этих 2D-сетей. На втором этапе эти функции с разных временных интервалов используются в качестве входных данных для LSTM для получения временных результатов. На третьем этапе эти результаты затем усредняются или линейно объединяются перед передачей в классификатор softmax для получения окончательного прогноза.


2.3.2 3D CNN

Эта выдающаяся пространственно-временная сеть является наиболее прямым обобщением 2D CNN в пространственно-временной области изображения. Он напрямую обрабатывает временной поток изображений RGB и обрабатывает эти изображения, применяя изученные трехмерные сверточные фильтры.


2.3.3 Two-Stream CNN

Этот тип пространственно-временной архитектуры опирается на двухпоточный дизайн. Стандартная двухпоточная архитектура использует два параллельных пути — один для внешнего вида и другой для движения; этот подход подобен гипотезе двойного потока при изучении биологических зрительных систем.


2.4 Общее обсуждение

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


3 Понимание строительных блоков CNN

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

3.1 Сверточный слой

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

3.2 Исправление

Многослойные сети обычно сильно нелинейны, и выпрямление обычно является первым этапом обработки, на котором нелинейность вводится в модель. Ректификация относится к применению точечной нелинейности (также известной как функция активации) к выходным данным сверточного слоя. Термин заимствован из области обработки сигналов, где выпрямление относится к преобразованию переменного тока в постоянный. Это также этап обработки, который может найти причины как биологически, так и теоретически. Вычислительные нейробиологи вводят этап исправления, чтобы найти подходящие модели, которые лучше всего объясняют текущие данные нейробиологии. С другой стороны, исследователи машинного обучения используют исправление, чтобы модели обучались быстрее и лучше. Интересно, что исследователи в обеих областях, как правило, соглашаются в этом: они не только нуждаются в исправлении, но все они заканчиваются одним и тем же исправлением.
Рисунок 3.7: Нелинейные функции выпрямления, используемые в литературе по многоуровневым сетям

3.3 Нормализация

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

3.4 Объединение

Будь то биологически вдохновленные, основанные исключительно на обучении или полностью разработанные человеком, почти все модели CNN содержат этап объединения. Целью операции объединения является обеспечение некоторой степени инвариантности к изменениям положения и размера, а также агрегирование ответов внутри и между картами объектов. Подобно трем модулям CNN, рассмотренным в предыдущих разделах, объединение поддерживается как биологическими, так и теоретическими исследованиями. На этом уровне обработки сети CNN основным предметом спора является выбор функции объединения. Двумя наиболее широко используемыми функциями пулинга являются средний пул и максимальный пул. В этом разделе будут рассмотрены преимущества и недостатки различных функций объединения, описанных в соответствующей литературе.
Рисунок 3.10: Сравнение среднего и максимального объединения изображений, отфильтрованных Габором. (а) показывает эффект объединения средних значений в разных масштабах, где верхняя строка на (а) — результат, примененный к исходному изображению в градациях серого, а нижняя строка на (а) — результат, примененный к изображению, отфильтрованному Габором. Среднее объединение приводит к более гладкой версии изображения в градациях серого, в то время как разреженные изображения с фильтром Габора исчезают. Условно говоря, (b) показывает эффект максимального объединения в разных масштабах, где верхняя строка в (b) — это результат, примененный к исходному изображению с оттенками серого, а нижняя строка в (b) применяется к фильтрации Габора. на рисунке. Здесь видно, что максимальное объединение приводит к ухудшению качества изображения в градациях серого, в то время как разреженные края в изображении, отфильтрованном Габором, улучшаются. Рисунок из [131]

4 Текущий статус

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

4.1 Текущие тенденции

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

4.2 Проблемы, которые еще предстоит решить

Исходя из вышеизложенного, для методов, основанных на визуализации, существуют следующие ключевые направления исследований:
  • Прежде всего: важно разработать методы, позволяющие сделать визуальные оценки более объективными, чего можно добиться путем введения метрик, оценивающих качество и/или смысл сгенерированных визуализаций.
  • Кроме того, хотя сетецентрические методы визуализации кажутся более перспективными (поскольку они не полагаются на саму сеть для создания визуализаций), также представляется необходимым стандартизировать процесс их оценки. Возможным решением является использование эталона для создания визуализаций для сетей, обученных в тех же условиях. Такой стандартизированный подход, в свою очередь, позволит проводить оценки на основе индикаторов, а не текущий интерпретационный анализ.
  • Другая разработка заключается в одновременной визуализации нескольких единиц, чтобы лучше понять распределенные аспекты изучаемого представления, даже при использовании контролируемого подхода.
Ниже приведены потенциальные направления исследований методов, основанных на изучении абляции:
  • Используйте общий систематически организованный набор данных с различными проблемами, общими для компьютерного зрения (такими как угол обзора и изменения освещения), и требуйте более сложных категорий (таких как текстура, часть и сложность объекта). На самом деле такие наборы данных появились совсем недавно [6]. Использование исследования абляции для такого набора данных в сочетании с анализом полученной матрицы путаницы может выявить закономерности, в которых архитектура CNN работает неправильно, что приведет к лучшему пониманию.
  • Кроме того, систематическое изучение того, как множественные скоординированные абляции влияют на производительность модели, представляет большой интерес. Такие исследования должны расширить наше понимание того, как работают отдельные единицы.
Наконец, эти контролируемые методы являются многообещающими направлениями будущих исследований, поскольку они позволяют нам получить более глубокое понимание операций и представлений этих систем, чем это было бы возможно с помощью методов, основанных исключительно на обучении. Эти интересные направления исследований включают в себя:
  • Шаг за шагом исправьте сетевые параметры и проанализируйте их влияние на поведение сети. Например, параметры ядра свертки фиксируются по одному уровню за раз (на основе текущих априорных знаний о задаче) для анализа применимости принятого ядра на каждом уровне. Этот прогрессивный подход обещает раскрыть роль обучения, а также может использоваться в качестве метода инициализации для минимизации времени обучения.
  • Точно так же дизайн самой сетевой архитектуры (например, количество слоев или количество фильтров на каждом уровне) можно изучить, анализируя свойства входного сигнала (например, что общего в сигнале). Такой подход помогает довести архитектуру до подходящей для приложения сложности.
  • Наконец, использование контролируемых методов в сетевых реализациях позволяет систематически изучать роль других аспектов CNN, которым уделялось меньше внимания из-за сосредоточения внимания на изученных параметрах. Например, можно исследовать роль различных стратегий объединения и остаточных соединений, когда большинство изученных параметров фиксированы.