Чтение онлайн

ЖАНРЫ

Искусственный интеллект
Шрифт:

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

Каждый слой свёртки передаёт свой выход на слой субдискретизации, и это важная особенность рассматриваемой архитектуры. Субдискретизация нелинейно уплотняет карту признаков так, что группа пикселей (обычно 3x3) преобразуется в один пиксель, и это делается при помощи нелинейного преобразования (обычно используется функция максимизации). Суть этой операции в том, чтобы получить карту признаков с предыдущего слоя свёртки и «огрубить» изображение. Другими словами, происходит отказ от ненужных деталей, и нейронная сеть начинает рассматривать всё более и более абстрактные признаки исходного изображения. Кроме максимизации в качестве операции субдискретизации, могут использоваться и другие, и от этого зависят свойства получаемой нейронной сети, лучше или хуже подходящие для решения поставленной задачи.

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

Для чего нужна свёрточная нейронная сеть? Как показали эксперименты, свёрточные нейросети:

• являются одним из лучших методов по распознаванию образов;

• по сравнению с полносвязными архитектурами (например, с перцептронами), требуют намного меньшего количества вычисляемых в процессе обучения параметров, из чего следует возможность построения сетей с большим количеством слоёв; • позволяют эффективно распараллеливать свои вычисления;

• обладают устойчивостью к поворотам и сдвигам распознаваемых образов.

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

Развёрточные нейронные сети – это как бы перевёрнутые задом наперёд свёрточные сети. Они были предложены Мэтью Зайлером для простой задачи – анализа работы свёрточных нейронных сетей. Дело в том, что глубинное обучение задействует воистину огромное количество слоёв, а в свёрточных нейросетях эти слои ещё и разных типов, и субдискретизация осуществляется по разным каналам, а с учётом того, что чем глубже и полносвязнее сеть, тем сложнее понять, как она обучается, необходим хотя бы какой-то эвристический механизм или инструмент для оценки того, правильно ли обучается свёрточная нейросеть и не переобучилась ли она.

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

Перейдём к следующему важному варианту архитектуры искусственных нейронных сетей. Это генеративно-состязательная сеть (GAN), которая предназначена для обучения без учителя. Генеративно-состязательная нейронная сеть составлена из двух подсетей. Одна из них (сеть G – генеративная сеть) генерирует различные образцы, а вторая (сеть D – дискриминационная сеть) – отличает правильные образцы от неправильных. Для целей машинного обучения сети G и D имеют противоположные задачи, и между ними организуется «антагонистическая игра», т. е. игра, в которой участвуют два игрока, выигрыши которых противоположны. Сеть G генерирует образец (например, изображение), начиная со смешивания некоторых исходных образцов, используя случайные значения своих скрытых параметров (весовых коэффициентов). После генерации образца сеть D пытается отбраковать те образцы, которые выглядят неприемлемо, и результат работы этой сети подаётся на вход сети G, которая при помощи метода обратного распространения ошибки перестраивает свои весовые коэффициенты так, чтобы «обмануть» сеть D. В итоге на каждой итерации генерируемые образцы становятся всё лучше и лучше.

Обычно в качестве сети D берётся свёрточная сеть глубокого обучения – ну просто потому, что именно свёрточные сети, как уже описано, лучше всего занимаются распознаванием образов, а дискриминационная сеть должна именно распознавать образы, которые создаёт генеративная сеть. А в качестве последней используются те сети, которые могут генерировать образы. И вообще говоря, сегодня именно генеративные нейронные сети находятся на пике интереса, и здесь могут быть самые разные варианты нейросетей. Например, генеративно-состязательные нейронные сети нашли очень широкое применение в вопросе так называемого машинного творчества.

Финский учёный в области искусственного интеллекта Теуво Кохонен предложил несколько интереснейших концепций в рамках машинного обучения и искусственных нейронных сетей, из-за чего он стал наиболее часто цитируемым финским учёным. В частности, им предложены:

• фундаментальная теория ассоциативной памяти;

• особенный алгоритм обучения нейронных сетей;

• особый класс нейронных сетей (нейронные сети Кохонена);

• самоорганизующиеся карты Кохонена;

• модель нейрона и специального слоя (слой Кохонена).

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

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

Самоорганизующаяся карта Кохонена

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

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

Поделиться с друзьями: