Как работает нейронная сеть: разбираемся с основами. Что такое нейронные сети

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

Нейронные сети: как работают и где используются

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

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

История появления нейронных сетей

Работа ученых в этом направлении началась в 1943 году со статьи Уоррена МакКаллоха и Уолтера Питтса. Они разработали вычислительную модель нейронных сетей, основанную на математических алгоритмах и теориях деятельности мозга. Следующим шагом стала книга Дональда Хебба «Организованное поведение» в 1949 году. Канадский нейропсихолог описал процесс самоперевода искусственных нейронных сетей.

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

В 1969 году идея нейронной сети подверглась серьезной критике со стороны Мински и Пейперта. Они выделили серьезные проблемы, препятствующие эффективному использованию искусственных нейронных сетей. Например, они обращали внимание на невозможность исключить или реализовать их в НС и недостаточную вычислительную мощность существующих в то время компьютеров. Эта статья на некоторое время подорвала интерес ученых к нейронным сетям.

История нейронных сетей

История нейронных сетей

Тем не менее, этот сектор оставался очень перспективным для многих исследователей, которые продолжали пытаться сформулировать принципы работы автоматизированных систем. Метод реверсирования ошибок, предложенный Полом Вербосом в 1974 году, стал еще одним шагом на пути к созданию нейронной сети. Год спустя Фукусима разработала первый многослойный НС — Cognitron. В 1982 году Хопфилд добился двухсторонней передачи информации между нейронами, что повысило интерес ученых к поиску новых решений в этой области.

Подарок для вас! Бесплатно до 19 июня.

Прибыльная работа гарантирована в течение 1-2 дней!

Прибыльная работа гарантирована в течение 1-2 дней!

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

Понятие и принцип работы нейронной сети

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

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

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

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

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

Спасибо за внимание! Мы надеемся, что эта статья помогла вам узнать больше о нейронных сетях. В следующей статье мы обсудим смещенные нейроны и то, как обучать нейронные сети с помощью регрессии и градиентного спуска.

Что такое нейросети?

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

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

Биологические нейронные сети. Биологические нервные системы состоят из нейронов. Нейроны — это клетки, которые хранят и передают информацию в виде электрических и химических стимулов. Нейроны имеют ось, которая является основной частью клетки, и дендриты, которые являются длинными отростками клетки и могут достигать 1 см в длину. Дендриты переносят информацию от одной клетки к другой и действуют как «провода» для нервных импульсов. Они прикрепляются к другим нейронам с помощью специальных шипов, что позволяет передавать сигналы по всей нервной системе.

Например, они могут предпринять сознательные действия. Например, кто-то решает поднять руку. Сначала в мозге появляется толчок, затем информация передается от одной клетки к другой через сеть нейронов. На своем пути он трансформируется и, наконец, достигает клеток в руке. Рука поднимается вверх. Именно так работает большинство процессов в организме — процессов, контролируемых мозгом.

Но главной особенностью нейронной сети является ее способность к обучению. Именно это и составляет основу механических нейронных сетей.

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

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

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

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

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

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

Как работает нейросеть?

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

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

Как работает обучение?

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

Во время обучения нейронная сеть получает некоторую информацию, и ей сообщают, что это за информация. Другими словами, ему дается ответ. Все данные представлены не словами, а математическими формулами и числовыми элементами. Например, изображение женщины соответствует ‘1’, а изображение мужчины — ‘0’. Вот простой пример. Реальные сети более сложны.

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

Редактирование и формулирование выводов. Каждый нейрон имеет «вес». Это число, вычисляемое по специальному алгоритму. Он показывает, насколько важен сигнал нейрона для сети в целом. В результате веса нейронов автоматически изменяются в процессе обучения и уравновешиваются.

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

Результат. На выходе нейронной сети будет набор математических формул и чисел, которые преобразуются в ответ. Например, если образ мужчины равен «0», а образ женщины — «1», то результат 0,67 будет означать что-то вроде «вероятно, женщина». В силу своей структуры нейронная сеть не может дать абсолютно точный ответ — только вероятности. Кроме того, из-за закрытости и нестабильности нейронов один и тот же образец может показывать разные признаки.

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

Обратное распространение

Обратное распространение

  • Суммарная ошибка (total_error) вычисляется как разность между ожидаемым значением «y» (из обучающего набора) и полученным значением «y_» (посчитанное на этапе прямого распространения ошибки), проходящих через функцию потерь (cost function).
  • Частная производная ошибки вычисляется по каждому весу (эти частные дифференциалы отражают вклад каждого веса в общую ошибку (total_loss)).
  • Затем эти дифференциалы умножаются на число, называемое скорость обучения или learning rate (η).

Полученный эффект вычитается из соответствующих весов.

Результатом является следующий обновленный вес.

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

Специалист по анализу данных

Популярные мемы о том, как Карлсон стал программистом в области науки о данных

Предрассудки

Если вы знакомы с рядами Тейлора, тот же результат можно получить, если продлить ошибку назад. Вместо бесконечного ряда можно попытаться оптимизировать только первый член.

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

Частные производные

Можно рассчитать несколько производных, чтобы узнать вклад каждого веса в ошибку. Необходимость в деривативах очевидна. Представьте себе нейронную сеть, пытающуюся найти оптимальную скорость беспилотного автомобиля. Если она обнаруживает, что автомобиль движется быстрее или медленнее желаемой скорости, нейронная сеть изменяет скорость, ускоряя или замедляя автомобиль. Что ускоряет/замедляет этот процесс? Производные скорости.

На примере рассмотрим потребность в некоторых производных инструментах.

Предположим, детей просят прицелиться в центр и бросить стрелу в мишень. Результаты следующие.

В основном - нейронные сети

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

Некоторые производные

Ошибки некоторых детей могут уменьшиться, но общая ошибка все равно увеличивается.

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

Нейросетевые частичные производные

Гиперпараметры

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

Скорость обучения (learning rate)

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

Функция потерь

С другой стороны, если скорость обучения слишком высока, сеть будет генерировать ответы очень быстро. Результаты следующие.

Результат

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

Вместо заключения

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

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

Оцените статью
Uhistory.ru