Технологическая индустрия запечатана такими словами, как «нейронные сети», «глубокое обучение» и «искусственный интеллект». Но что это? Чем оно отличается от машинного обучения и почему оно похоже на нейроны в нашем мозгу?

В этой статье я отвечу на эти основные вопросы и объясню типы нейронных сетей. Давайте начнем и немного поговорим на эту тему.

Что такое машинное обучение с моей стороны?

Машинное обучение превращает вещи (данные) в числа и находит закономерности в этих числах.

Введение в искусственную нейронную сеть

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

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

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

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

Основной единицей мозга является нейрон, в нашей нервной системе около 85 миллиардов нейронов, которые связаны с 10¹⁴-10¹⁵ синапсами. Каждый нейрон получает сигнал от синапсов и выдает результат после обработки сигнала. Эта идея взята из мозга для построения нейронной сети. Электронные и биологические методы вычисления мозга всегда сравнивались с момента их появления. Однако термины нейрокибернетика, нейроинформатика и нейрокомпьютер были введены очень поздно, в середине 1980-х годов. В знаменитой книге Н. Винера «Кибернетика» (1948 г.) есть подзаголовок «Управление и связь в живых существах и машинах». Основную идею нейрокибернетики можно описать так: «Единственный объект, который может мыслить, — это человеческий мозг». Поэтому «мыслящее» устройство должно быть хоть в чем-то похоже на структуру человеческого мозга. Таким образом, нейрокибернетика была нацелена на создание устройства, похожего по строению на мозг. Физиологи давно установили, что мозг человека состоит из большого количества нейронов, которые взаимодействуют друг с другом и с нервными клетками. Поэтому усилия нейрокибернетики были направлены на создание системы, подобной нейронам. Такие системы называются нейронными сетями или нейронными сетями. Первые нейронные сети были разработаны в конце 1950-х годов американскими учеными Розенблаттом и Маккуиком. Это была попытка создать систему, которая моделирует человеческий глаз и связывает его с мозгом. Каждый нейрон выполняет скалярное произведение между входными данными и весами, добавляет смещения, применяет функцию активации и выдает выходные данные. Когда большое количество нейронов присутствует вместе, чтобы выдать большое количество выходов, это формирует нейронный слой. Наконец, несколько слоев объединяются в нейронную сеть. Нейронные сети являются функциональной единицей глубокого обучения и, как известно, имитируют поведение человеческого мозга для решения сложных задач, управляемых данными.

Архитектура нейронной сети

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

Вот различные компоненты нейрона.

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

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

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

Функция активации — вводит нелинейность в работу персептронов, чтобы учитывать различную линейность входных данных. Без этого выходные данные были бы просто линейной комбинацией входных значений и не могли бы внести нелинейность в сеть.

Смещение. Роль смещения заключается в смещении значения, полученного функцией активации. Его роль аналогична роли константы в линейной функции.

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

Ниже мы описали основные компоненты этого типа структуры.

Входной слой

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

Скрытые слои

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

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

Выходной слой

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

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

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

Типы нейронных сетей

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

Персептрон

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

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

Преимущества персептрона
Персептроны могут реализовывать логические элементы, такие как И, ИЛИ или И-НЕ.

Недостатки персептрона
Персептроны могут изучать только линейно разделимые задачи, такие как логическая задача И. Для нелинейных задач, таких как логическое XOR, это не работает.

Нейронные сети с прямой связью

Приложения в нейронных сетях с прямой связью:

  • Простая классификация (где традиционные алгоритмы классификации на основе машинного обучения имеют ограничения)
  • Распознавание лиц [Простая прямая обработка изображений]
  • Компьютерное зрение [где целевые классы трудно классифицировать]
  • Распознавание речи

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

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

Преимущества нейронных сетей с прямой связью

  1. Менее сложный, простой в проектировании и обслуживании
  2. Быстро и быстро [Одностороннее распространение]
  3. Высокая чувствительность к зашумленным данным

Недостатки нейронных сетей с прямой связью:

  1. Нельзя использовать для глубокого обучения [из-за отсутствия плотных слоев и обратного распространения]

Многослойный персептрон

Приложения на многослойном персептроне

  • Распознавание речи
  • Машинный перевод
  • Сложная классификация

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

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

Преимущества многослойного персептрона

  1. Используется для глубокого обучения [из-за наличия плотных полносвязных слоев и обратного распространения]

Недостатки многослойного персептрона:

  1. Сравнительно сложный в проектировании и обслуживании

Сравнительно медленный (зависит от количества скрытых слоев)

Сверточная нейронная сеть

Приложения на сверточной нейронной сети

Сверточная нейронная сеть содержит трехмерное расположение нейронов вместо стандартного двумерного массива. Первый слой называется свёрточным слоем. Каждый нейрон в сверточном слое обрабатывает информацию только из небольшой части поля зрения. Входные функции берутся в пакетном режиме, как фильтр. Сеть понимает изображения по частям и может выполнять эти операции несколько раз, чтобы завершить полную обработку изображения. Обработка включает преобразование изображения из шкалы RGB или HSI в шкалу серого. Дальнейшие изменения значения пикселя помогут обнаружить края, и изображения можно будет классифицировать по разным категориям.

Распространение является однонаправленным, когда CNN содержит один или несколько сверточных слоев, за которыми следует объединение, и двунаправленным, когда выходные данные слоя свертки направляются в полностью подключенную нейронную сеть для классификации изображений, как показано на диаграмме выше. Фильтры используются для выделения определенных частей изображения. В MLP входные данные умножаются на веса и передаются в функцию активации. Свертка использует RELU, а MLP использует нелинейную функцию активации, за которой следует softmax. Сверточные нейронные сети показывают очень эффективные результаты в распознавании изображений и видео, семантическом анализе и обнаружении парафраз.

Преимущества сверточной нейронной сети:

  1. Используется для глубокого обучения с несколькими параметрами
  2. Меньше параметров для изучения по сравнению с полносвязным слоем

Недостатки нейронной сети свертки:

  • Сравнительно сложный в проектировании и обслуживании
  • Сравнительно медленный [зависит от количества скрытых слоев]

Рекуррентные нейронные сети

Приложения рекуррентных нейронных сетей

  • Обработка текста, например автоматическое предложение, проверка грамматики и т. д.
  • Обработка текста в речь
  • Теггер изображений
  • Анализ настроений
  • Перевод
  • Рекуррентная нейронная сеть, предназначенная для сохранения выходных данных слоя, возвращается к входным данным, чтобы помочь в прогнозировании результата слоя. Первый слой обычно представляет собой нейронную сеть с прямой связью, за которой следует слой рекуррентной нейронной сети, где некоторая информация, имевшаяся на предыдущем временном шаге, запоминается функцией памяти. В этом случае реализовано прямое распространение. Он хранит информацию, необходимую для будущего использования. Если прогноз неверен, скорость обучения используется для внесения небольших изменений. Следовательно, постепенно увеличивая его, чтобы сделать правильный прогноз во время обратного распространения.

Преимущества рекуррентных нейронных сетей

  1. Модель последовательных данных, в которой можно предположить, что каждая выборка зависит от исторических, является одним из преимуществ.
  2. Используется со слоями свертки для повышения эффективности пикселей.

Недостатки рекуррентных нейронных сетей

  1. Проблемы исчезновения и взрыва градиента
  2. Обучение рекуррентных нейронных сетей может оказаться сложной задачей
  3. Сложно обрабатывать длинные последовательные данные, используя ReLU в качестве функции активации.

Улучшение по сравнению с RNN: сети LSTM (долговременная кратковременная память)

Сети LSTM — это разновидность RNN, в которой помимо стандартных единиц измерения используются специальные единицы. Блоки LSTM включают в себя «ячейку памяти», которая может хранить информацию в памяти в течение длительных периодов времени. Набор вентилей используется для управления тем, когда информация поступает в память, когда она выводится, и когда она забывается. Есть три типа ворот, а именно: входные ворота, выходные ворота и ворота забывания. Входной вентиль определяет, сколько информации из последней выборки будет храниться в памяти; выходные ворота регулируют объем данных, передаваемых на следующий уровень, а ворота забывания контролируют скорость разрыва хранимой памяти. Эта архитектура позволяет им изучать долгосрочные зависимости.

Это одна из реализаций ячеек LSTM, существует множество других архитектур.

И конец поста. Я надеюсь, что это полезно для вас.

Это все для этой истории. Надеюсь, вы чему-то научились и, конечно же, получили удовольствие.

Мой аккаунт на github: https://github.com/KhalidNazzar

Для получения дополнительной полезной информации проверьте и подпишитесь на меня в LinkedIn: https://www.linkedin.com/in/xalid-nazarov-0164761a6/

Всем спасибо за внимание.