Как выполнить классификацию с помощью нейронной сети: что такое перцептрон?

Добавлено 5 января 2020 в 00:37

Данная статья исследует основы теории и структуру известной топологии нейронной сети.

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

Остальную часть серии статей про перцептрон вы можете найти в меню с содержанием в начале статьи.

Что такое нейронная сеть?

Нейронные сети – это инструменты обработки сигналов, которые в значительной степени основаны на структуре человеческого мозга. Они обычно ассоциируются с искусственным интеллектом (ИИ, или AI, «artificial intelligence»). Мне не нравится термин «искусственный интеллект», потому что он неточный и упрощенный. Если вы определяете «интеллект» как способность быстро выполнять численные вычисления, то нейронные сети – это определенно ИИ. Но интеллект, на мой взгляд, это гораздо большее – это такая вещь, которая проектирует систему, которая быстро выполняет численные вычисления, затем пишет статью об этом, затем обдумывает значение слова «интеллект», и затем задается вопросом, зачем люди создают нейронные сети и пишут о них статьи.

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

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

Что такое перцептрон?

Базовая нейронная сеть перцептрон, в принципе, проста. Он может состоять из двух входных узлов и одного выходного узла, объединенных взвешенными соединениями:

Рисунок 1 Базовая нейросеть перцептрон
Рисунок 1 – Базовая нейросеть перцептрон

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

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

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

Что происходит внутри узла? (Или как работают нейронные сети?)

Узлы во входном слое – это просто точки подключения; они не изменяют входные данные. Выходной слой, а также любые дополнительные слои между входным и выходным содержат вычислительные узлы сети. Когда числовые данные поступают в вычислительные узлы, сначала они суммируются, а затем они подвергаются функции «активации»:

Рисунок 2 Обработка данных в нейросети
Рисунок 2 – Обработка данных в нейросети

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

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

Рисунок 3 Взаимосвязь ввода-вывода базовой единичной ступенчатой функции активации
Рисунок 3 – Взаимосвязь входа и выхода базовой единичной ступенчатой функции активации

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

Несмотря на то, что реальные нейроны работают по некоторой модели включено/выключено, пороговый подход к (искусственной) активации нейронной сети не является оптимальным. Мы вернемся к этой теме в следующей статье.

Заключение

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

Нейронные сети – это обширная тема, и я честно предупреждаю вас, что это может быть длинная серия статей. Но я думаю, что она будет неплохой.

Теги

Искусственный интеллект, ИИ / Artificial Intelligence, AIМашинное обучение / Machine LearningНейросеть / Нейронная сетьПерцептрон / Perceptron

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.