Игрушечная нейронная сеть классифицирует ориентацию линии

Посетите Refactored, чтобы поиграть с интерактивной сетью. Искусственные нейронные сети абстрактно вдохновлены основными вычислительными единицами мозга - нейронами. Современные решения проблем искусственного интеллекта, включая распознавание изображений, обработку естественного языка, моделирование человеческого творчества в искусстве и превосходство людей в сложных настольных играх, поддерживаются искусственными нейронными сетями. Вместо того чтобы жестко закодировать правила, искусственные нейронные сети изучают задачу на обучающих примерах. Например, при распознавании визуальных образов для распознавания изображений определенного объекта, такого как число 9, программы сталкиваются со значительной вариативностью: расцветки в стиле почерка, освещение окружающего контекста, изменения ориентации и размера. Чтобы написать точные правила, потребуются безграничные исключения. Искусственные нейронные сети решают эту проблему, обучаясь выводить правила из обучающих примеров. Здесь мы опишем механику простой нейронной сети и проиллюстрируем свойство иерархического обнаружения признаков.

Перцептрон

Биологическое вдохновение действует посредством общения с помощью электрических импульсов. Каждый биологический нейрон состоит из тела клетки (которая генерирует электрические сигналы), дендритов (которые принимают сигналы) и аксона (который посылает сигналы) (рисунок 0). Просто нейрон электрически возбуждается входом в его дендриты. Этот электрический вход поступает от другого нейрона или множества нейронов. Если входной сигнал достаточно силен, нейрон «активируется» и запускает собственный электрический выход по своему аксону. Этот аксон, возможно, связан с дендритами других нейронов. Таким образом электрические сигналы передаются по сетям нейронов. В искусственных нейронных сетях нейроны представлены узлами (красные кружки), а соединения с другими нейронами представлены ребрами (синие линии) (рисунок 1). Самая простая и самая ранняя модель - перцептрон, который также является фундаментальным строительным блоком более сложных нейронных сетей. Персептрон принимает двоичные входы,

и выводит один двоичный выход (рисунок 2).

Как рассчитывается выход? Каждый вход умножается на соответствующий вес,

Вес определяет относительное влияние каждого входа (чем больше вес, тем сильнее влияние на выход). Затем каждый вход, умноженный на его вес, суммируется:

Выход перцептрона определяется тем, превышает ли взвешенная сумма всех его входов некоторое пороговое значение:

Если мы думаем о 0 как о «выключенном» и 1 как о «включенном», то эта пороговая функция эффективно определяет, включен ли перцептрон или нет. Эта функция удачно названа функцией активации, поскольку она определяет, активирован (включен) перцептрон или нет. Активация подобна преодолению барьера или наполнению чаши. Только когда чашка переполнится или будет пересечен барьер, переключатель сработает. В биологии разные нейроны нуждаются в разных уровнях входной стимуляции, прежде чем они будут выдавать электрический сигнал. Некоторым нейронам нужно очень мало, тогда как другим нужно много для активации.

Упрощение, если мы рассмотрим все веса и входные данные как векторы:

тогда транспонирование весовой матрицы W, умноженной на входную матрицу X, совпадает с взвешенной суммой:

Кроме того, если мы позволим bias = -threshold. Тогда эквивалентное правило для перцептрона становится (рисунок 4):

Эта формулировка перцептрона наиболее часто используется в литературе.

Функции активации

Наиболее часто используемые функции активации - сигмовидная, tanh и reLU. Насколько введение нелинейности позволяет нейронной сети представлять? Как доказано, нейронные сети хотя бы с одним скрытым слоем являются универсальными аппроксиматорами, что означает, что они могут представлять любую непрерывную функцию (см. Аппроксимация суперпозициями сигмоидальной функции и наглядное доказательство ). На диаграммах каждая функция активации представлена ​​одним из следующих символов:

См. Рисунок 5, чтобы определить, какой символ соответствует какой функции активации.

Многослойная сеть

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

Эта многоуровневая организация может включать иерархию детекторов функций. Представленная выше анимация визуального распознавания игрушек иллюстрирует эту иерархическую группировку изучения более сложных составных функций на более глубоких уровнях. Более ранние слои обнаруживают более простые объекты. Первый скрытый слой распознает отдельные пиксели. Второй скрытый слой распознает композицию из двух пикселей. Третий распознает композиты из 4 пикселей, а четвертый слой распознает отрицание третьего слоя. Эта глубокая архитектура, в которой нижние уровни распознают более простые элементы, которые передаются на более высокие уровни, которые обнаруживают более сложные элементы (например, переход от ориентации краев линий к контурам и полностью развитым контурам), является прорывом в визуальном распознавании: Convolutional Deep Сети убеждений для масштабируемого неконтролируемого изучения иерархических представлений .

Чтобы проиллюстрировать эти концепции, давайте рассмотрим конкретный пример и разберем анимацию, с которой открывается эта статья. Вот схема (рисунок 7):

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

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

На входном слое нейронной сети (рисунок 7) 4 узла исследуют 4 пикселя: один узел связан с каждым пикселем входного изображения. Четырехугольник рядом с каждым узлом указывает, какой пиксель исследует каждый узел.

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

Скрытый слой 1

Скрытый слой 1 является примером первого экземпляра иерархического представления пространственных объектов, что означает, что более глубокие слои объединяют более простые более ранние слои для распознавания более сложных объектов. В то время как входной слой распознавал только один пиксель за раз, Скрытый слой 1 объединяет отдельные пиксели из входных данных в комбинации из 2 пикселей (рисунок 8). Края, которые попадают в узлы скрытого слоя 1, определяют, какие два пикселя будут объединены.

Функции активации

Для скрытых слоев 1 и 2 функция активации пропускает сигнал, пока значение не равно нулю. Ноль эффективно отключает узел, и сигнал умирает. В противном случае при любом другом значении переключатель остается включенным. На Рисунке 10 показано, где ноль переключается с переключателя. Скрытый слой 3 использует функцию активации reLU, которая превращает все отрицательные значения в ноль и оставляет положительные значения неизменными.

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

Цитаты

1. Сверточные нейронные сети CS231n для визуального распознавания
2. Нейронные сети и глубокое обучение
3. Сверточные глубокие Сети убеждений для масштабируемого неконтролируемого изучения иерархических представлений
4. Аппроксимация суперпозициями сигмоидальной функции
5. Визуальное доказательство того, что нейронные сети могут вычислить любую функцию
6. Как работают глубокие нейронные сети