Сверточная нейронная сеть ( CNN ) — это регуляризованный тип нейронной сети прямого распространения , которая сама изучает признаки с помощью оптимизации фильтра (или ядра). Этот тип сети глубокого обучения применялся для обработки и прогнозирования множества различных типов данных, включая текст, изображения и аудио. [1] Сети на основе свертки являются фактическим стандартом в подходах к глубокому обучению , основанных на компьютерном зрении и обработке изображений, и только недавно были заменены — в некоторых случаях — более новыми архитектурами глубокого обучения, такими как transformer . Исчезающие градиенты и взрывные градиенты, наблюдаемые во время обратного распространения в более ранних нейронных сетях, предотвращаются за счет использования регуляризованных весов для меньшего количества соединений. [2] [3] Например, для каждого нейрона в полностью связанном слое для обработки изображения размером 100 × 100 пикселей потребовалось бы 10 000 весов. Однако, применяя каскадные ядра свертки (или кросс-корреляции), [4] [5] для обработки плиток размером 5x5 требуется всего 25 нейронов. [6] [7] Признаки более высокого уровня извлекаются из более широких контекстных окон по сравнению с признаками более низкого уровня.
Некоторые приложения CNN включают в себя:
CNN также известны как инвариантные к сдвигу или инвариантные к пространству искусственные нейронные сети , основанные на архитектуре с общим весом ядер свертки или фильтров, которые скользят по входным признакам и обеспечивают трансляционно- эквивариантные ответы, известные как карты признаков. [13] [14] Вопреки интуиции, большинство сверточных нейронных сетей не инвариантны к трансляции из-за операции понижения частоты, которую они применяют к входным признакам. [15]
Нейронные сети прямого распространения обычно являются полностью связанными сетями, то есть каждый нейрон в одном слое связан со всеми нейронами в следующем слое . «Полная связанность» этих сетей делает их склонными к переобучению данных. Типичные способы регуляризации или предотвращения переобучения включают: штрафование параметров во время обучения (например, снижение веса) или обрезку связности (пропущенные соединения, выпадение и т. д.) Надежные наборы данных также увеличивают вероятность того, что CNN изучат обобщенные принципы, которые характеризуют данный набор данных, а не смещения плохо заполненного набора. [16]
Сверточные сети были вдохновлены биологическими процессами [17] [18] [19] [20] в том смысле , что схема связей между нейронами напоминает организацию зрительной коры животных . Отдельные корковые нейроны реагируют на стимулы только в ограниченной области зрительного поля, известной как рецептивное поле . Рецептивные поля различных нейронов частично перекрываются, так что они покрывают все зрительное поле.
CNN используют относительно небольшую предварительную обработку по сравнению с другими алгоритмами классификации изображений . Это означает, что сеть учится оптимизировать фильтры (или ядра) посредством автоматического обучения, тогда как в традиционных алгоритмах эти фильтры создаются вручную . Эта независимость от предшествующих знаний и вмешательства человека в извлечение признаков является основным преимуществом. [ для кого? ]
Сверточная нейронная сеть состоит из входного слоя, скрытых слоев и выходного слоя. В сверточной нейронной сети скрытые слои включают один или несколько слоев, которые выполняют свертки. Обычно это слой, который выполняет скалярное произведение ядра свертки с входной матрицей слоя. Этот продукт обычно является внутренним произведением Фробениуса , а его функция активации обычно является ReLU . Поскольку ядро свертки скользит вдоль входной матрицы для слоя, операция свертки генерирует карту признаков, которая, в свою очередь, вносит вклад во вход следующего слоя. За этим следуют другие слои, такие как слои пула , полностью связанные слои и слои нормализации. Здесь следует отметить, насколько близка сверточная нейронная сеть к согласованному фильтру . [21]
В CNN входными данными является тензор с формой:
(количество входов) × (высота входа) × (ширина входа) × (входные каналы )
После прохождения через сверточный слой изображение преобразуется в карту признаков, также называемую картой активации, имеющую форму:
(количество входов) × (высота карты признаков) × (ширина карты признаков) × ( каналы карты признаков ).
Сверточные слои сворачивают входные данные и передают их результат следующему слою. Это похоже на реакцию нейрона в зрительной коре на определенный стимул. [22] Каждый сверточный нейрон обрабатывает данные только для своего рецептивного поля .
Хотя полностью связанные нейронные сети прямого распространения могут использоваться для изучения признаков и классификации данных, эта архитектура, как правило, непрактична для больших входных данных (например, изображений с высоким разрешением), которые требуют огромного количества нейронов, поскольку каждый пиксель является соответствующим входным признаком. Полностью связанный слой для изображения размером 100 × 100 имеет 10 000 весов для каждого нейрона во втором слое. Свертка уменьшает количество свободных параметров, позволяя сети быть глубже. [6] Например, использование области мозаичного размещения 5 × 5, каждая с одинаковыми общими весами, требует всего 25 нейронов. Использование регуляризованных весов для меньшего количества параметров позволяет избежать проблем исчезающих градиентов и взрывных градиентов, наблюдавшихся во время обратного распространения в более ранних нейронных сетях. [2] [3]
Для ускорения обработки стандартные сверточные слои можно заменить глубинно-разделяемыми сверточными слоями, [23] , которые основаны на глубинной свертке, за которой следует точечная свертка. Глубинная свертка — это пространственная свертка, применяемая независимо к каждому каналу входного тензора, в то время как точечная свертка — это стандартная свертка, ограниченная использованием ядер.
Сверточные сети могут включать локальные и/или глобальные слои пула наряду с традиционными сверточными слоями. Слои пула уменьшают размерность данных, объединяя выходы нейронных кластеров на одном слое в один нейрон на следующем слое. Локальное пуление объединяет небольшие кластеры, обычно используются размеры плитки, такие как 2 × 2. Глобальное пуление действует на все нейроны карты признаков. [24] [25] Существует два распространенных типа пула в популярном использовании: максимальный и средний. Максимальный пул использует максимальное значение каждого локального кластера нейронов на карте признаков, [26] [27] в то время как средний пул берет среднее значение.
Полностью связанные слои соединяют каждый нейрон в одном слое с каждым нейроном в другом слое. Это то же самое, что и традиционная многослойная персептронная нейронная сеть (MLP). Сглаженная матрица проходит через полностью связанный слой для классификации изображений.
В нейронных сетях каждый нейрон получает входные данные из некоторого количества мест в предыдущем слое. В сверточном слое каждый нейрон получает входные данные только из ограниченной области предыдущего слоя, называемой рецептивным полем нейрона . Обычно эта область представляет собой квадрат (например, 5 на 5 нейронов). Тогда как в полностью связанном слое рецептивное поле представляет собой весь предыдущий слой . Таким образом, в каждом сверточном слое каждый нейрон получает входные данные из большей области на входе, чем предыдущие слои. Это происходит из-за многократного применения свертки, которая учитывает значение пикселя, а также его окружающие пиксели. При использовании расширенных слоев количество пикселей в рецептивном поле остается постоянным, но поле становится более разреженным по мере увеличения его размеров при объединении эффекта нескольких слоев.
Чтобы манипулировать размером рецептивного поля по желанию, существуют некоторые альтернативы стандартному сверточному слою. Например, атрофированная или расширенная свертка [28] [29] расширяет размер рецептивного поля без увеличения числа параметров путем чередования видимых и слепых областей. Более того, один расширенный сверточный слой может включать фильтры с несколькими коэффициентами расширения, [30] таким образом имея переменный размер рецептивного поля.
Каждый нейрон в нейронной сети вычисляет выходное значение, применяя определенную функцию к входным значениям, полученным от рецептивного поля в предыдущем слое. Функция, применяемая к входным значениям, определяется вектором весов и смещением (обычно действительными числами). Обучение заключается в итеративной корректировке этих смещений и весов.
Векторы весов и смещений называются фильтрами и представляют собой определенные особенности входных данных (например, определенную форму). Отличительной чертой CNN является то, что многие нейроны могут совместно использовать один и тот же фильтр. Это уменьшает объем памяти , поскольку единое смещение и единый вектор весов используются во всех рецептивных полях, которые совместно используют этот фильтр, в отличие от каждого рецептивного поля, имеющего собственное смещение и векторное взвешивание. [31]
Деконволюционная нейронная сеть по сути является противоположностью CNN. Она состоит из деконволюционных слоев и слоев депулинга. [32]
Слой деконволюции — это транспонирование слоя свертки. В частности, слой свертки можно записать как умножение с матрицей, а слой деконволюции — это умножение с транспонированием этой матрицы. [33]
Слой unpooling расширяет слой. Слой max-unpooling является самым простым, так как он просто копирует каждую запись несколько раз. Например, слой max-unpooling размером 2 на 2 — это .
Слои деконволюции используются в генераторах изображений. По умолчанию они создают периодический артефакт шахматной доски, который можно исправить масштабированием и сверткой. [34]
CNN часто сравнивают с тем, как мозг обрабатывает зрительную информацию в живых организмах . [35]
Работа Хьюбела и Визеля в 1950-х и 1960-х годах показала, что зрительная кора кошек содержит нейроны, которые индивидуально реагируют на небольшие области поля зрения . При условии, что глаза не двигаются, область зрительного пространства, в которой зрительные стимулы влияют на активацию одного нейрона, известна как его рецептивное поле . [36] Соседние клетки имеют схожие и перекрывающиеся рецептивные поля. Размер и расположение рецептивного поля систематически варьируются по всей коре, образуя полную карту зрительного пространства. [ требуется цитата ] Кора в каждом полушарии представляет собой контралатеральное зрительное поле . [ требуется цитата ]
В своей статье 1968 года они определили два основных типа зрительных клеток в мозге: [18]
Хьюбел и Визель также предложили каскадную модель этих двух типов клеток для использования в задачах распознавания образов. [37] [36]
Вдохновленный работой Хьюбела и Визеля, в 1969 году Кунихико Фукусима опубликовал глубокую CNN, которая использует функцию активации ReLU . [38] В отличие от большинства современных сетей, эта сеть использовала разработанные вручную ядра. Она не использовалась в его неокогнитроне, поскольку все веса были неотрицательными; вместо этого использовалось латеральное торможение. Выпрямитель стал самой популярной функцией активации для CNN и глубоких нейронных сетей в целом. [39]
« Неокогнитрон » был представлен Кунихико Фукусимой в 1979 году. [40] [19] [17] Ядра обучались методом неконтролируемого обучения . Он был вдохновлен вышеупомянутой работой Хьюбела и Визеля. Неокогнитрон представил два основных типа слоев:
В варианте неокогнитрона, называемом крецептроном , вместо использования пространственного усреднения Фукусимы с торможением и насыщением, Дж. Вэн и др. в 1993 году представили метод, называемый максимальным пулом, где блок понижающей дискретизации вычисляет максимум активаций блоков в своем участке. [41] Максимальное пуло часто используется в современных сверточных нейронных сетях. [42]
За прошедшие десятилетия было предложено несколько алгоритмов контролируемого и неконтролируемого обучения для тренировки весов неокогнитрона. [17] Однако сегодня архитектура CNN обычно обучается с помощью обратного распространения .
Термин «свертка» впервые появляется в нейронных сетях в статье Тошитеру Хоммы, Леса Атласа и Роберта Маркса II на первой конференции по нейронным системам обработки информации в 1987 году. В их статье умножение было заменено сверткой во времени, что по сути обеспечивает инвариантность сдвига, мотивированную и более непосредственно связанную с концепцией обработки сигналов фильтра , и продемонстрировано на задаче распознавания речи. [7] Они также указали, что как обучаемая данными система свертка по сути эквивалентна корреляции, поскольку изменение весов не влияет на конечную обученную функцию («Для удобства мы обозначаем * как корреляцию вместо свертки. Обратите внимание, что свертывание a(t) с b(t) эквивалентно корреляции a(-t) с b(t)»). [7] Современные реализации CNN обычно выполняют корреляцию и называют ее сверткой для удобства, как они сделали здесь.
Нейронная сеть с задержкой по времени (TDNN) была введена в 1987 году Алексом Вайбелем и др. для распознавания фонем и была одной из первых сверточных сетей, поскольку достигла инвариантности сдвига. [43] TDNN — это одномерная сверточная нейронная сеть, в которой свертка выполняется вдоль временной оси данных. Это первая CNN, использующая распределение веса в сочетании с обучением методом градиентного спуска с использованием обратного распространения . [44] Таким образом, при использовании пирамидальной структуры, как в неокогнитроне, она выполнила глобальную оптимизацию весов вместо локальной. [43]
TDNN — это сверточные сети, которые разделяют веса по временному измерению. [45] Они позволяют обрабатывать речевые сигналы инвариантно во времени. В 1990 году Хэмпшир и Вайбель представили вариант, который выполняет двумерную свертку. [46] Поскольку эти TDNN работали со спектрограммами, результирующая система распознавания фонем была инвариантна как к временным, так и к частотным сдвигам, как и в случае с изображениями, обработанными неокогнитроном.
TDNN улучшили производительность распознавания речи на большом расстоянии. [47]
Денкер и др. (1989) разработали двумерную систему сверточных нейронных сетей для распознавания рукописных номеров почтовых индексов . [48] Однако отсутствие эффективного метода обучения для определения коэффициентов ядра задействованных сверток означало, что все коэффициенты приходилось кропотливо проектировать вручную. [49]
После достижений в обучении одномерных сверточных нейронных сетей (1-D CNN) Вайбеля и др. (1987), Ян Лекун и др. (1989) [49] использовали обратное распространение для обучения коэффициентов ядра свертки непосредственно из изображений рукописных цифр. Таким образом, обучение было полностью автоматическим, выполнялось лучше, чем ручное проектирование коэффициентов, и подходило для более широкого спектра задач распознавания изображений и типов изображений. Вэй Чжан и др. (1988) [13] [14] использовали обратное распространение для обучения ядер свертки CNN для распознавания алфавитов. Модель называлась нейронной сетью распознавания образов с инвариантным сдвигом до того, как название CNN было придумано позже, в начале 1990-х годов. Вэй Чжан и др. также применили ту же CNN без последнего полностью связанного слоя для сегментации объектов медицинских изображений (1991) [50] и обнаружения рака груди в маммограммах (1994). [51]
Этот подход стал основой современного компьютерного зрения .
В 1990 году Ямагучи и др. представили концепцию максимального пула, фиксированной операции фильтрации, которая вычисляет и распространяет максимальное значение заданной области. Они сделали это, объединив TDNN с максимальным пулом, чтобы реализовать независимую от говорящего изолированную систему распознавания слов. [26] В своей системе они использовали несколько TDNN на слово, по одному на каждый слог . Результаты каждой TDNN по входному сигналу были объединены с использованием максимального пула, а затем выходные данные слоев пула были переданы сетям, выполняющим фактическую классификацию слов.
LeNet-5, пионерская 7-уровневая сверточная сеть, созданная LeCun et al. в 1995 году, [52] классифицирует рукописные цифры на чеках ( британский английский : cheques ), оцифрованные в изображения размером 32x32 пикселя. Возможность обработки изображений с более высоким разрешением требует большего количества слоев сверточных нейронных сетей, поэтому эта техника ограничена доступностью вычислительных ресурсов.
Она превосходила другие коммерческие системы считывания суммы любезности (по состоянию на 1995 год). Система была интегрирована в системы считывания чеков NCR и введена в эксплуатацию в нескольких американских банках с июня 1996 года, считывая миллионы чеков в день. [53]
Нейронная сеть, инвариантная к сдвигу, была предложена Вэй Чжаном и др. для распознавания символов на изображениях в 1988 году. [13] [14] Это модифицированный Неокогнитрон, сохраняющий только сверточные взаимосвязи между слоями признаков изображения и последним полностью связанным слоем. Модель была обучена с обратным распространением. Алгоритм обучения был дополнительно улучшен в 1991 году [54] для улучшения его способности к обобщению. Архитектура модели была изменена путем удаления последнего полностью связанного слоя и применена для сегментации медицинских изображений (1991) [50] и автоматического обнаружения рака молочной железы на маммограммах (1994) . [51]
Другой дизайн на основе свертки был предложен в 1988 году [55] для применения к разложению одномерных электромиографических свернутых сигналов посредством деконволюции. Этот дизайн был модифицирован в 1989 году для других дизайнов на основе деконволюции. [56] [57]
Хотя сверточные нейронные сети были изобретены в 1980-х годах, их прорыв в 2000-х годах потребовал быстрой реализации на графических процессорах (GPU).
В 2004 году KS Oh и K. Jung показали, что стандартные нейронные сети могут быть значительно ускорены на GPU. Их реализация была в 20 раз быстрее, чем эквивалентная реализация на CPU . [58] В 2005 году в другой статье также подчеркивалась ценность GPGPU для машинного обучения . [59]
Первая реализация CNN на GPU была описана в 2006 году К. Челлапиллой и др. Их реализация была в 4 раза быстрее, чем эквивалентная реализация на CPU. [60] В тот же период GPU также использовались для неконтролируемого обучения сетей глубоких убеждений . [61] [62] [63] [64]
В 2010 году Дэн Сиресан и др. из IDSIA обучили глубокие сети прямого распространения на графических процессорах. [65] В 2011 году они распространили это на сверточные нейронные сети, ускорившись на 60 по сравнению с обучением на центральном процессоре. [24] В 2011 году сеть выиграла конкурс по распознаванию изображений, где впервые достигла сверхчеловеческой производительности. [66] Затем они выиграли еще несколько конкурсов и достигли современного уровня в нескольких тестах. [67] [42] [27]
Впоследствии AlexNet , аналогичная CNN на базе графического процессора, разработанная Алексом Крижевским и др., победила в конкурсе ImageNet Large Scale Visual Recognition Challenge 2012. [68] Это было раннее событие, способствовавшее буму ИИ .
По сравнению с обучением CNN с использованием графических процессоров , центральному процессору уделялось не так много внимания. (Viebke et al 2019) распараллеливает CNN с помощью параллелизма на уровне потоков и SIMD , который доступен на Intel Xeon Phi . [69] [70]
В прошлом для распознавания изображений использовались традиционные модели многослойного персептрона (MLP). [ нужен пример ] Однако полная связность между узлами вызывала проклятие размерности и была вычислительно неразрешимой для изображений с более высоким разрешением. Изображение размером 1000×1000 пикселей с цветовыми каналами RGB имеет 3 миллиона весов на полностью связанный нейрон, что слишком много для эффективной обработки в масштабе.
Например, в CIFAR-10 изображения имеют размер только 32×32×3 (32 в ширину, 32 в высоту, 3 цветовых канала), поэтому один полностью связанный нейрон в первом скрытом слое обычной нейронной сети будет иметь 32*32*3 = 3072 веса. Однако изображение 200×200 приведет к нейронам, которые будут иметь 200*200*3 = 120 000 весов.
Кроме того, такая сетевая архитектура не учитывает пространственную структуру данных, обрабатывая входные пиксели, которые находятся далеко друг от друга, так же, как и пиксели, которые находятся близко друг к другу. Это игнорирует локальность ссылок в данных с топологией сетки (например, изображения) как вычислительно, так и семантически. Таким образом, полная связность нейронов является расточительной для таких целей, как распознавание изображений, в которых доминируют пространственно локальные входные шаблоны.
Сверточные нейронные сети — это разновидности многослойных персептронов, разработанные для имитации поведения зрительной коры . Эти модели смягчают проблемы, связанные с архитектурой MLP, используя сильную пространственно-локальную корреляцию, присутствующую в естественных изображениях. В отличие от MLP, CNN имеют следующие отличительные особенности:
Вместе эти свойства позволяют CNN достигать лучшего обобщения при проблемах со зрением . Распределение веса значительно сокращает количество свободных обучаемых параметров, тем самым снижая требования к памяти для работы сети и позволяя обучать более крупные и мощные сети.
Архитектура CNN формируется стеком отдельных слоев, которые преобразуют входной объем в выходной объем (например, содержащий оценки классов) посредством дифференцируемой функции. Обычно используются несколько отдельных типов слоев. Они более подробно обсуждаются ниже.
Сверточный слой является основным строительным блоком CNN. Параметры слоя состоят из набора обучаемых фильтров (или ядер ), которые имеют небольшое рецептивное поле, но простираются на всю глубину входного объема. Во время прямого прохода каждый фильтр сворачивается по ширине и высоте входного объема, вычисляя скалярное произведение между записями фильтра и входом, создавая двумерную карту активации этого фильтра. В результате сеть обучается фильтрам, которые активируются, когда она обнаруживает определенный тип признака в некоторой пространственной позиции на входе. [73] [nb 1]
Складывание карт активации для всех фильтров по глубинному измерению формирует полный выходной объем сверточного слоя. Таким образом, каждая запись в выходном объеме может также интерпретироваться как выход нейрона, который смотрит на небольшую область на входе. Каждая запись в карте активации использует тот же набор параметров, который определяет фильтр.
Самоконтролируемое обучение было адаптировано для использования в сверточных слоях с использованием разреженных участков с высоким коэффициентом маски и глобального слоя нормализации отклика. [ необходима ссылка ]
При работе с высокоразмерными входами, такими как изображения, нецелесообразно подключать нейроны ко всем нейронам в предыдущем объеме, поскольку такая сетевая архитектура не учитывает пространственную структуру данных. Сверточные сети используют пространственно локальную корреляцию, обеспечивая разреженную локальную схему связей между нейронами соседних слоев: каждый нейрон подключен только к небольшой области входного объема.
Степень этой связности — гиперпараметр, называемый рецептивным полем нейрона. Связи локальны в пространстве (по ширине и высоте), но всегда простираются по всей глубине входного объема. Такая архитектура гарантирует, что обученные ( британский английский : learned ) фильтры выдают наиболее сильный ответ на пространственно локальный входной шаблон.
Размер выходного объема сверточного слоя контролируется тремя гиперпараметрами : глубиной, шагом и размером заполнения:
Пространственный размер выходного объема является функцией размера входного объема , размера поля ядра нейронов сверточного слоя, шага и величины нулевого заполнения на границе. Количество нейронов, которые «вписываются» в заданный объем, тогда равно:
Если это число не является целым числом , то шаги неверны и нейроны не могут быть размещены так, чтобы соответствовать входному объему симметричным образом . В общем случае, установка нулевого отступа при шаге гарантирует, что входной объем и выходной объем будут иметь одинаковый размер в пространстве. Однако не всегда абсолютно необходимо использовать все нейроны предыдущего слоя. Например, проектировщик нейронной сети может решить использовать только часть отступа.
Схема совместного использования параметров используется в сверточных слоях для управления числом свободных параметров. Она основана на предположении, что если патч-функция полезна для вычисления в некоторой пространственной позиции, то она также должна быть полезна для вычисления в других позициях. Обозначая один 2-мерный срез глубины как срез глубины , нейроны в каждом срезе глубины ограничены использованием тех же весов и смещений.
Поскольку все нейроны в одном глубинном срезе имеют одни и те же параметры, прямой проход в каждом глубинном срезе сверточного слоя может быть вычислен как свертка весов нейрона с входным объемом. [nb 2] Поэтому обычно называют наборы весов фильтром (или ядром ), который свертывается с входными данными. Результатом этой свертки является карта активации , а набор карт активации для каждого отдельного фильтра складывается вместе вдоль измерения глубины для получения выходного объема. Совместное использование параметров способствует инвариантности трансляции архитектуры CNN. [15]
Иногда предположение о совместном использовании параметров может не иметь смысла. Это особенно актуально, когда входные изображения для CNN имеют определенную центрированную структуру; для которой мы ожидаем, что совершенно разные признаки будут изучены в разных пространственных положениях. Одним из практических примеров является случай, когда входные данные представляют собой лица, которые были центрированы на изображении: мы можем ожидать, что разные признаки, характерные для глаз или волос, будут изучены в разных частях изображения. В этом случае обычно ослабляют схему совместного использования параметров и вместо этого просто называют слой «локально связанным слоем».
Еще одной важной концепцией CNN является объединение, которое используется как форма нелинейной субдискретизации . Объединение обеспечивает субдискретизацию, поскольку оно уменьшает пространственные размеры (высоту и ширину) входных карт признаков, сохраняя при этом наиболее важную информацию. Существует несколько нелинейных функций для реализации объединения, среди которых наиболее распространены максимальное объединение и среднее объединение . Объединение объединяет информацию из небольших областей ввода, создавая разделы входной карты признаков, обычно используя окно фиксированного размера (например, 2x2) и применяя шаг (часто 2) для перемещения окна по входу. [75] Обратите внимание, что без использования шага больше 1 объединение не будет выполнять субдискретизацию, поскольку оно просто будет перемещать окно объединения по входу на один шаг за раз, не уменьшая размер карты признаков. Другими словами, шаг — это то, что на самом деле вызывает субдискретизацию, определяя, насколько окно объединения перемещается по входу.
Интуитивно, точное местоположение признака менее важно, чем его приблизительное местоположение относительно других признаков. Это идея, лежащая в основе использования пула в сверточных нейронных сетях. Слой пула служит для постепенного уменьшения пространственного размера представления, для уменьшения количества параметров, объема памяти и объема вычислений в сети, а следовательно, и для контроля переобучения . Это известно как понижение частоты дискретизации. Обычно слой пула периодически вставляют между последовательными сверточными слоями (за каждым из которых обычно следует функция активации, такая как слой ReLU) в архитектуре CNN. [73] : 460–461 Хотя слои пула способствуют локальной инвариантности трансляции, они не обеспечивают глобальной инвариантности трансляции в CNN, если только не используется форма глобального пула. [15] [72] Слой пула обычно работает независимо на каждой глубине или срезе входных данных и изменяет их размер пространственно. Очень распространенная форма максимального пулинга — это слой с фильтрами размером 2×2, применяемый с шагом 2, который подвыбирает каждый срез глубины на входе на 2 по ширине и высоте, отбрасывая 75% активаций: В этом случае каждая операция max превышает 4 числа. Измерение глубины остается неизменным (это справедливо и для других форм пулинга).
В дополнение к максимальному пулингу, пулинговые единицы могут использовать другие функции, такие как усредненный пул или пул ℓ 2 -нормы . Усредненный пул часто использовался исторически, но недавно вышел из моды по сравнению с максимальным пулингом, который обычно работает лучше на практике. [76]
Из-за эффектов быстрого пространственного уменьшения размера представления, [ какой? ] в последнее время наблюдается тенденция к использованию меньших фильтров [77] или полному отказу от слоев объединения. [78]
Слой операции максимального пула каналов (CMP) проводит операцию MP вдоль стороны канала среди соответствующих позиций последовательных карт признаков с целью устранения избыточной информации. CMP заставляет значимые признаки собираться вместе в меньшем количестве каналов, что важно для мелкозернистой классификации изображений, которая требует больше различающих признаков. Между тем, еще одним преимуществом операции CMP является уменьшение количества каналов карт признаков до того, как он подключится к первому полностью связанному слою (FC). Подобно операции MP, мы обозначаем входные карты признаков и выходные карты признаков слоя CMP как F ∈ R(C×M×N) и C ∈ R(c×M×N) соответственно, где C и c — номера каналов входных и выходных карт признаков, M и N — ширина и высота карт признаков соответственно. Обратите внимание, что операция CMP изменяет только количество каналов карт признаков. Ширина и высота карт признаков не изменяются, что отличается от операции MP. [79]
Обзоры методов объединения см. в [80] [81] .
ReLU — это аббревиатура от rectified linear unit (выпрямленная линейная единица) . Она была предложена Олстоном Хаусхолдером в 1941 году [82] и использована в CNN Кунихико Фукусимой в 1969 году. [38] ReLU применяет ненасыщающую функцию активации . [68] Она эффективно удаляет отрицательные значения из карты активации, устанавливая их в ноль. [83] Она вносит нелинейность в функцию принятия решения и в общую сеть, не влияя на рецептивные поля слоев свертки. В 2011 году Ксавье Глорот, Антуан Бордес и Йошуа Бенжио обнаружили, что ReLU обеспечивает лучшее обучение более глубоких сетей [84] по сравнению с широко используемыми функциями активации до 2011 года.
Другие функции также могут быть использованы для увеличения нелинейности, например, насыщающий гиперболический тангенс , и сигмоидальная функция . ReLU часто предпочтительнее других функций, поскольку она обучает нейронную сеть в несколько раз быстрее без существенного ухудшения точности обобщения . [85]
После нескольких сверточных и максимальных слоев пула окончательная классификация выполняется через полностью связанные слои. Нейроны в полностью связанном слое имеют связи со всеми активациями в предыдущем слое, как это видно в обычных (несверточных) искусственных нейронных сетях . Таким образом, их активации могут быть вычислены как аффинное преобразование с матричным умножением , за которым следует смещение смещения ( векторное сложение изученного или фиксированного члена смещения).
«Слой потерь» или « функция потерь » определяет, как обучение штрафует отклонение между прогнозируемым выходом сети и истинными метками данных (во время контролируемого обучения). Могут использоваться различные функции потерь в зависимости от конкретной задачи.
Функция потерь Softmax используется для прогнозирования одного класса из K взаимоисключающих классов. [nb 3] Сигмоидальная кросс-энтропийная потеря используется для прогнозирования K независимых значений вероятности в . Евклидова потеря используется для регрессии к действительным меткам .
Гиперпараметры — это различные настройки, которые используются для управления процессом обучения. CNN используют больше гиперпараметров , чем стандартный многослойный персептрон (MLP).
Ядро — это количество пикселей, обработанных вместе. Обычно оно выражается размерами ядра, например, 2x2 или 3x3.
Заполнение — это добавление (обычно) пикселей со значением 0 на границах изображения. Это делается для того, чтобы граничные пиксели не были недооценены (потеряны) из выходных данных, поскольку они обычно участвуют только в одном экземпляре рецептивного поля. Применяемое заполнение обычно на единицу меньше соответствующего измерения ядра. Например, сверточный слой, использующий ядра 3x3, получит заполнение в 2 пикселя, то есть по 1 пикселю с каждой стороны изображения. [ необходима цитата ]
Шаг — это количество пикселей, на которое перемещается окно анализа на каждой итерации. Шаг 2 означает, что каждое ядро смещено на 2 пикселя относительно своего предшественника.
Поскольку размер карты признаков уменьшается с глубиной, слои около входного слоя, как правило, имеют меньше фильтров, в то время как более высокие слои могут иметь больше. Чтобы уравнять вычисления на каждом слое, произведение значений признаков v a на позицию пикселя сохраняется примерно постоянным по всем слоям. Сохранение большего количества информации о входе потребовало бы поддержания общего числа активаций (числа карт признаков, умноженного на число позиций пикселей) не уменьшающимся от одного слоя к другому.
Количество карт признаков напрямую влияет на производительность и зависит от количества доступных примеров и сложности задачи.
Обычные размеры фильтров, встречающиеся в литературе, сильно различаются и обычно выбираются на основе набора данных. Типичные размеры фильтров варьируются от 1x1 до 7x7. В качестве двух известных примеров можно привести AlexNet , использовавший 3x3, 5x5 и 11x11. Inceptionv3 использовал 1x1, 3x3 и 5x5.
Задача состоит в том, чтобы найти правильный уровень детализации, чтобы создавать абстракции в нужном масштабе, учитывая конкретный набор данных и не допуская переобучения .
Обычно используется пул Max pooling , часто с размером 2x2. Это означает, что входные данные резко уменьшаются , что снижает стоимость обработки.
Большее объединение уменьшает размер сигнала и может привести к неприемлемой потере информации . Часто неперекрывающиеся окна объединения работают лучше всего. [76]
Расширение подразумевает игнорирование пикселей внутри ядра. Это снижает обработку/память потенциально без значительной потери сигнала. Расширение 2 на ядре 3x3 расширяет ядро до 5x5, при этом по-прежнему обрабатывая 9 (равномерно расположенных) пикселей. Соответственно, расширение 4 расширяет ядро до 7x7. [ необходима цитата ]
Обычно предполагается, что CNN инвариантны к сдвигам входных данных. Слои свертки или объединения в CNN, которые не имеют шага больше единицы, действительно эквивариантны к переводам входных данных. [72] Однако слои с шагом больше единицы игнорируют теорему выборки Найквиста-Шеннона и могут привести к наложению спектров входного сигнала [72] Хотя в принципе CNN способны реализовывать фильтры сглаживания, было замечено, что на практике этого не происходит [86] и выдают модели, которые неэквивариантны к переводам. Кроме того, если CNN использует полностью связанные слои, эквивариантность перевода не подразумевает инвариантности перевода, поскольку полностью связанные слои не инвариантны к сдвигам входных данных. [87] [15] Одним из решений для полной инвариантности перевода является избежание любой понижающей дискретизации по всей сети и применение глобального среднего объединения на последнем слое. [72] Кроме того, было предложено несколько других частичных решений, таких как сглаживание перед операциями по понижению частоты дискретизации, [88] пространственные сети преобразователей, [89] увеличение данных , субдискретизация в сочетании с объединением, [15] и капсульные нейронные сети . [90]
Точность окончательной модели основана на подчасти набора данных, выделенного в начале, часто называемого тестовым набором. В других случаях применяются такие методы, как k -кратная перекрестная проверка . Другие стратегии включают использование конформного предсказания . [91] [92]
Регуляризация — это процесс введения дополнительной информации для решения некорректно поставленной проблемы или предотвращения переобучения . CNN используют различные типы регуляризации.
Поскольку полностью связанный слой занимает большую часть параметров, он склонен к переобучению. Одним из методов снижения переобучения является dropout , представленный в 2014 году. [93] На каждом этапе обучения отдельные узлы либо «выпадают» из сети (игнорируются) с вероятностью , либо сохраняются с вероятностью , так что остается сокращенная сеть; входящие и исходящие ребра к выпавшему узлу также удаляются. Только сокращенная сеть обучается на данных на этом этапе. Затем удаленные узлы повторно вставляются в сеть с их исходными весами.
На этапах обучения он обычно составляет 0,5; для входных узлов он обычно намного выше, поскольку при игнорировании входных узлов информация напрямую теряется.
Во время тестирования после завершения обучения мы в идеале хотели бы найти выборочное среднее значение всех возможных выпавших сетей; к сожалению, это невозможно для больших значений . Однако мы можем найти приближение, используя полную сеть с выходом каждого узла, взвешенным на коэффициент , поэтому ожидаемое значение выхода любого узла будет таким же, как на этапах обучения. Это самый большой вклад метода выпадения: хотя он эффективно генерирует нейронные сети и, как таковой, допускает комбинирование моделей, во время тестирования нужно тестировать только одну сеть.
Избегая обучения всех узлов на всех обучающих данных, выпадение уменьшает переобучение. Метод также значительно повышает скорость обучения. Это делает комбинацию моделей практичной даже для глубоких нейронных сетей . Похоже, что этот метод уменьшает взаимодействие узлов, что позволяет им изучать более надежные признаки [ необходимо разъяснение ] , которые лучше обобщаются на новые данные.
DropConnect — это обобщение dropout, в котором каждое соединение, а не каждый выходной блок, может быть сброшено с вероятностью . Таким образом, каждый блок получает входные данные от случайного подмножества блоков в предыдущем слое. [94]
DropConnect похож на dropout, поскольку он вводит динамическую разреженность в модель, но отличается тем, что разреженность находится на весах, а не на выходных векторах слоя. Другими словами, полностью связанный слой с DropConnect становится разреженно связанным слоем, в котором соединения выбираются случайным образом на этапе обучения.
Основным недостатком Dropout является то, что он не дает тех же преимуществ для сверточных слоев, где нейроны не полностью связаны.
Еще до Dropout, в 2013 году, техника, называемая стохастическим пулингом, [95] заменила обычные детерминированные операции пулинга на стохастическую процедуру, где активация в каждой области пулинга выбирается случайным образом в соответствии с мультиномиальным распределением , заданным активностью в области пулинга. Этот подход свободен от гиперпараметров и может быть объединен с другими подходами регуляризации, такими как dropout и data augmentation .
Альтернативный взгляд на стохастическое объединение заключается в том, что оно эквивалентно стандартному максимальному объединению, но со многими копиями входного изображения, каждая из которых имеет небольшие локальные деформации . Это похоже на явные упругие деформации входных изображений, [96] что обеспечивает превосходную производительность на наборе данных MNIST . [96] Использование стохастического объединения в многослойной модели дает экспоненциальное число деформаций, поскольку выборки в более высоких слоях независимы от выборок ниже.
Поскольку степень переобучения модели определяется как ее мощностью, так и объемом обучения, которое она получает, предоставление сверточной сети большего количества обучающих примеров может уменьшить переобучение. Поскольку часто не хватает доступных данных для обучения, особенно учитывая, что некоторую часть следует сохранить для последующего тестирования, два подхода заключаются в том, чтобы либо генерировать новые данные с нуля (если это возможно), либо вносить изменения в существующие данные для создания новых. Последний используется с середины 1990-х годов. [52] Например, входные изображения можно обрезать, вращать или масштабировать для создания новых примеров с теми же метками, что и исходный обучающий набор. [97]
Один из самых простых методов предотвращения переобучения сети — просто остановить обучение до того, как переобучение успело произойти. Недостатком этого метода является то, что процесс обучения останавливается.
Другой простой способ предотвратить переобучение — ограничить количество параметров, обычно ограничивая количество скрытых единиц в каждом слое или ограничивая глубину сети. Для сверточных сетей размер фильтра также влияет на количество параметров. Ограничение количества параметров напрямую ограничивает предсказательную силу сети, уменьшая сложность функции, которую она может выполнять над данными, и, таким образом, ограничивает количество переобучения. Это эквивалентно « нулевой норме ».
Простая форма добавленного регуляризатора — это распад веса, который просто добавляет дополнительную ошибку, пропорциональную сумме весов ( норма L1 ) или квадрату величины ( норма L2 ) вектора веса, к ошибке в каждом узле. Уровень приемлемой сложности модели можно снизить, увеличив константу пропорциональности (гиперпараметр 'альфа'), тем самым увеличив штраф для больших векторов веса.
Регуляризация L2 является наиболее распространенной формой регуляризации. Она может быть реализована путем штрафования квадрата величины всех параметров непосредственно в цели. Регуляризация L2 имеет интуитивную интерпретацию сильного штрафа пиковых весовых векторов и предпочтения диффузных весовых векторов. Из-за мультипликативных взаимодействий между весами и входами это имеет полезное свойство, побуждая сеть использовать все свои входы понемногу, а не некоторые из своих входов много.
Регуляризация L1 также распространена. Она делает весовые векторы разреженными во время оптимизации. Другими словами, нейроны с регуляризацией L1 в конечном итоге используют только разреженное подмножество своих самых важных входов и становятся почти инвариантными к шумным входам. Регуляризацию L1 с L2 можно комбинировать; это называется эластичной сетевой регуляризацией .
Другая форма регуляризации заключается в принудительном применении абсолютной верхней границы величины вектора веса для каждого нейрона и использовании спроецированного градиентного спуска для принудительного применения ограничения. На практике это соответствует выполнению обновления параметров как обычно, а затем принудительному применению ограничения путем фиксации вектора веса каждого нейрона для удовлетворения . Типичные значения имеют порядок 3–4. В некоторых работах сообщается об улучшениях [98] при использовании этой формы регуляризации.
Объединение теряет точные пространственные отношения между высокоуровневыми частями (например, носом и ртом на изображении лица). Эти отношения необходимы для распознавания личности. Наложение пулов таким образом, чтобы каждая особенность встречалась в нескольких пулах, помогает сохранить информацию. Перевод сам по себе не может экстраполировать понимание геометрических отношений на радикально новую точку зрения, например, на другую ориентацию или масштаб. С другой стороны, люди очень хорошо умеют экстраполировать; увидев новую форму, они могут распознать ее с другой точки зрения. [99]
Более ранний распространенный способ решения этой проблемы — обучение сети на преобразованных данных в разных ориентациях, масштабах, освещении и т. д., чтобы сеть могла справляться с этими изменениями. Это требует больших вычислительных затрат для больших наборов данных. Альтернативой является использование иерархии координатных фреймов и использование группы нейронов для представления сочетания формы признака и его позы относительно сетчатки . Поза относительно сетчатки — это отношение между координатной фреймом сетчатки и координатной фреймом внутренних признаков. [100]
Таким образом, один из способов представления чего-либо — это встроить в него систему координат. Это позволяет распознавать крупные черты, используя согласованность поз их частей (например, позы носа и рта делают согласованный прогноз позы всего лица). Такой подход гарантирует, что сущность более высокого уровня (например, лицо) присутствует, когда сущность более низкого уровня (например, нос и рот) согласуется со своим прогнозом позы. Векторы нейронной активности, которые представляют позу («векторы позы»), допускают пространственные преобразования, смоделированные как линейные операции, которые облегчают сети изучение иерархии визуальных сущностей и обобщение по точкам обзора. Это похоже на то, как человеческая зрительная система накладывает системы координат для представления форм. [101]
CNN часто используются в системах распознавания изображений . В 2012 году сообщалось о частоте ошибок 0,23% в базе данных MNIST . [27] В другой статье об использовании CNN для классификации изображений сообщалось, что процесс обучения был «удивительно быстрым»; в той же статье наилучшие опубликованные результаты по состоянию на 2011 год были достигнуты в базе данных MNIST и базе данных NORB. [24] Впоследствии похожая CNN под названием AlexNet [102] выиграла конкурс ImageNet Large Scale Visual Recognition Challenge 2012.
При применении к распознаванию лиц CNN достигли значительного снижения частоты ошибок. [103] В другой статье сообщалось о 97,6%-ной частоте распознавания для «5600 неподвижных изображений более 10 субъектов». [20] CNN использовались для объективной оценки качества видео после ручного обучения; полученная система имела очень низкую среднеквадратичную ошибку . [104]
ImageNet Large Scale Visual Recognition Challenge является эталоном в классификации и обнаружении объектов с миллионами изображений и сотнями классов объектов. В ILSVRC 2014 [105] крупномасштабной задаче визуального распознавания почти каждая высоко оцененная команда использовала CNN в качестве своей базовой структуры. Победитель GoogLeNet [106] (основа DeepDream ) увеличил среднюю точность обнаружения объектов до 0,439329 и снизил ошибку классификации до 0,06656, лучшего результата на сегодняшний день. Его сеть применяла более 30 слоев. Эта производительность сверточных нейронных сетей в тестах ImageNet была близка к производительности людей. [107] Лучшие алгоритмы все еще испытывают трудности с объектами, которые являются маленькими или тонкими, такими как маленький муравей на стебле цветка или человек, держащий перо в руке. У них также возникают проблемы с изображениями, которые были искажены фильтрами, что все чаще встречается в современных цифровых камерах. Напротив, такие виды изображений редко беспокоят людей. Однако люди, как правило, испытывают трудности с другими вопросами. Например, они не очень хороши в классификации объектов по мелким категориям, таким как конкретная порода собак или вид птиц, тогда как сверточные нейронные сети справляются с этим. [ необходима цитата ]
В 2015 году многослойная CNN продемонстрировала способность определять лица с самых разных углов, в том числе перевернутые, даже частично закрытые, с конкурентоспособной производительностью. Сеть обучалась на базе данных из 200 000 изображений, включавших лица под разными углами и в разных ориентациях, а также еще 20 миллионов изображений без лиц. Они использовали партии из 128 изображений в течение 50 000 итераций. [108]
По сравнению с областями данных изображений, существует относительно мало работ по применению CNN для классификации видео. Видео сложнее изображений, поскольку оно имеет другое (временное) измерение. Тем не менее, были исследованы некоторые расширения CNN в область видео. Один из подходов заключается в том, чтобы рассматривать пространство и время как эквивалентные измерения входных данных и выполнять свертки как во времени, так и в пространстве. [109] [110] Другой способ заключается в слиянии признаков двух сверточных нейронных сетей, одной для пространственного, а другой для временного потока. [111] [112] [113] Рекуррентные блоки долговременной краткосрочной памяти (LSTM) обычно включаются после CNN для учета межкадровых или межклиповых зависимостей. [114] [115] Были введены схемы неконтролируемого обучения для обучения пространственно-временных признаков, основанные на сверточных стробированных ограниченных машинах Больцмана [116] и независимом анализе подпространств. [117] Его применение можно увидеть в модели «текст-видео» . [ необходима ссылка ]
CNN также были исследованы для обработки естественного языка . Модели CNN эффективны для различных задач NLP и достигли превосходных результатов в семантическом разборе , [118] поиске поисковых запросов, [119] моделировании предложений, [120] классификации, [121] прогнозировании [122] и других традиционных задачах NLP. [123] По сравнению с традиционными методами обработки языка, такими как рекуррентные нейронные сети , CNN могут представлять различные контекстные реалии языка, которые не полагаются на предположение о последовательности серий, в то время как RNN лучше подходят, когда требуется классическое моделирование временных рядов. [124] [125] [126] [127]
CNN с одномерными свертками использовалась для временных рядов в частотной области (спектральный остаток) неконтролируемой моделью для обнаружения аномалий во временной области. [128]
CNN использовались в разработке лекарств . Прогнозирование взаимодействия между молекулами и биологическими белками может определять потенциальные методы лечения. В 2015 году Atomwise представила AtomNet, первую нейронную сеть глубокого обучения для разработки лекарств на основе структуры . [129] Система обучается непосредственно на трехмерных представлениях химических взаимодействий. Подобно тому, как сети распознавания изображений учатся составлять более мелкие, пространственно близкие элементы в более крупные, сложные структуры, [130] AtomNet обнаруживает химические элементы, такие как ароматичность , sp 3 углерод и водородные связи . Впоследствии AtomNet использовался для прогнозирования новых кандидатов на биомолекулы для множества целей заболеваний, в частности, для лечения вируса Эбола [131] и рассеянного склероза . [132]
CNN использовались в игре в шашки . С 1999 по 2001 год Фогель и Челлапилла опубликовали статьи, показывающие, как сверточная нейронная сеть может научиться играть в шашки, используя коэволюцию. Процесс обучения не использовал предыдущие профессиональные игры людей, а скорее был сосредоточен на минимальном наборе информации, содержащейся в шахматной доске: расположение и тип фигур, а также разница в количестве фигур между двумя сторонами. В конечном итоге программа ( Blondie24 ) была протестирована на 165 играх против игроков и заняла наивысшее место в 0,4%. [133] [134] Она также одержала победу над программой Chinook на ее «экспертном» уровне игры. [135]
CNN использовались в компьютерной игре Go . В декабре 2014 года Кларк и Сторки опубликовали статью, в которой показано, что CNN, обученная контролируемым обучением на основе базы данных профессиональных игр людей, может превзойти GNU Go и выиграть несколько игр против поиска по дереву Монте-Карло Fuego 1.1 за малую часть времени, которое потребовалось Fuego для игры. [136] Позже было объявлено, что большая 12-слойная сверточная нейронная сеть правильно предсказала профессиональный ход в 55% позиций, что соответствует точности игрока-человека с 6-м даном . Когда обученная сверточная сеть использовалась непосредственно для игры в игры Go, без какого-либо поиска, она превзошла традиционную программу поиска GNU Go в 97% игр и сравнялась с производительностью программы поиска по дереву Монте-Карло Fuego, имитирующей десять тысяч розыгрышей (около миллиона позиций) за ход. [137]
Несколько CNN для выбора ходов («политическая сеть») и оценки позиций («ценностная сеть»), управляющих MCTS, использовались AlphaGo , первой, кто победил лучшего игрока-человека того времени. [138]
Рекуррентные нейронные сети обычно считаются лучшими архитектурами нейронных сетей для прогнозирования временных рядов (и моделирования последовательностей в целом), но недавние исследования показывают, что сверточные сети могут работать сопоставимо или даже лучше. [139] [12] Расширенные свертки [140] могут позволить одномерным сверточным нейронным сетям эффективно изучать зависимости временных рядов. [141] Свертки могут быть реализованы более эффективно, чем решения на основе RNN, и они не страдают от исчезающих (или взрывных) градиентов. [142] Сверточные сети могут обеспечить улучшенную производительность прогнозирования, когда есть несколько похожих временных рядов для обучения. [143] CNN также могут применяться для дальнейших задач в анализе временных рядов (например, классификация временных рядов [144] или квантильное прогнозирование [145] ).
Поскольку археологические находки, такие как глиняные таблички с клинописью , все чаще приобретаются с помощью 3D-сканеров , становятся доступными эталонные наборы данных, включая HeiCuBeDa [146], предоставляющий почти 2000 нормализованных 2-D и 3-D наборов данных, подготовленных с помощью GigaMesh Software Framework . [147] Таким образом, основанные на кривизне меры используются в сочетании с геометрическими нейронными сетями (GNN), например, для классификации периодов этих глиняных табличек, являющихся одними из древнейших документов человеческой истории. [148] [149]
Для многих приложений данные для обучения не очень доступны. Сверточные нейронные сети обычно требуют большого количества данных для обучения, чтобы избежать переобучения . Распространенным методом является обучение сети на большем наборе данных из связанной области. После того, как параметры сети сошлись, выполняется дополнительный шаг обучения с использованием данных в области для точной настройки весов сети, это известно как трансферное обучение . Кроме того, этот метод позволяет успешно применять архитектуры сверточных сетей к задачам с небольшими наборами обучения. [150]
Сквозное обучение и прогнозирование являются обычной практикой в компьютерном зрении . Однако для критических систем, таких как беспилотные автомобили , требуются интерпретируемые человеком объяснения . [151] Благодаря последним достижениям в области визуальной заметности , пространственного внимания и временного внимания , наиболее критические пространственные регионы/временные моменты могут быть визуализированы для обоснования прогнозов CNN. [152] [153]
Глубокая Q-сеть (DQN) — это тип модели глубокого обучения, которая объединяет глубокую нейронную сеть с Q-обучением , формой обучения с подкреплением . В отличие от более ранних агентов обучения с подкреплением, DQN, которые используют CNN, могут обучаться непосредственно из многомерных сенсорных входов посредством обучения с подкреплением. [154]
Предварительные результаты были представлены в 2014 году, а сопроводительная статья — в феврале 2015 года . [155] Исследование описывало применение к играм Atari 2600. Ему предшествовали другие модели глубокого обучения с подкреплением. [156]
Сверточные сети глубокого убеждения (CDBN) имеют структуру, очень похожую на сверточные нейронные сети, и обучаются аналогично сетям глубокого убеждения. Поэтому они используют двумерную структуру изображений, как это делают CNN, и используют предварительное обучение, как сети глубокого убеждения . Они предоставляют общую структуру, которая может использоваться во многих задачах обработки изображений и сигналов. Результаты бенчмаркинга на стандартных наборах данных изображений, таких как CIFAR [157], были получены с использованием CDBN. [158]
Архитектура прямой связи сверточных нейронных сетей была расширена в нейронной пирамиде абстракции [159] боковыми и обратными связями. Полученная рекуррентная сверточная сеть допускает гибкое включение контекстной информации для итеративного разрешения локальных неоднозначностей. В отличие от предыдущих моделей, были получены выходные данные, похожие на изображения, с наивысшим разрешением, например, для задач семантической сегментации, реконструкции изображений и локализации объектов.
Сверточные нейронные сети представляют собой архитектуры глубокого обучения, которые в настоящее время используются в широком спектре приложений, включая компьютерное зрение, распознавание речи, обнаружение вредоносных программ, анализ временных рядов в финансах и многие другие.
{{cite book}}
: CS1 maint: location missing publisher (link) CS1 maint: multiple names: authors list (link)Понятие свертки или корреляции, используемое в представленных моделях, популярно в инженерных дисциплинах и широко применяется при проектировании фильтров, систем управления и т. д.
Сверточные нейронные сети являются перспективным инструментом для решения задачи распознавания образов.
Функции активации выпрямителя и softplus. Вторая является плавной версией первой.
{{cite journal}}
: CS1 maint: multiple names: authors list (link){{cite book}}
: CS1 maint: multiple names: authors list (link)