Нейронные сети как работают: обучение, функции активации и потери

Содержание

какие виды бывают, как работают, сферы применения, преимущества, недостатки и перспективы развития технологии

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

Дин Джефф, 2018 г.

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

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

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

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

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

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

Виды нейросетей

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

Перцептрон

Модель перцептрона — пример самой простой архитектуры нейронной сети. Эту модель придумал Фрэнк Розенблатт в 1958 году. Перцептрон — это математическая модель восприятия информации мозгом.

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

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

Концепция работы перцептрона на примере распознавания объекта

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

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

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

Визуализация работы многослойной нейронной сети

Свёрточные нейронные сети

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

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

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

Такие нейронные сети очень эффективны в распознавании простых элементов (паттернов): нос, глаз, ухо и так далее.

Визуализация работы свёрточных слоев нейронной сети

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

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

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

Визуализация работы рекуррентных слоев нейронной сети

Для каких задач используют нейронные сети

Есть несколько больших классов задач нейронных сетей:

  • обучение с учителем;
  • обучение без учителя;
  • обучение с подкреплением.

Обучение с учителем

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

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

Основными задачами обучения с учителем являются классификация и регрессия.

Классификация

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

Главная задача — отнести входной объект к нужному классу. При этом классы могут быть вполне определенные: кошка, собака, енот — а могут быть и весьма абстрактными: животное, камень или вовсе не относиться к другим классам.

К примерам задачи классификации можно отнести:

  • разделение отзывов к товару на положительные и отрицательные;
  • поиск фотографии с Мэрилин Монро;
  • распознавание японских иероглифов.
Регрессия

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

Примеры задачи регрессии:

  • предсказание цены дома в зависимости от района или площади подвала;
  • определение роста человека по фотографии;
  • прогноз цены акций на следующей неделе.

На самом деле, задачи с учителем могут решать сразу задачу классификации и задачу регрессии.

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

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

Обучение без учителя

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

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

К обучению без учителя можно отнести задачи кластеризации и генерации.

Кластеризация 

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

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

Примеры задачи кластеризации:

  • выявление групп семантически похожих документов;
  • разбиение животных на разные виды.

Генерация

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

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

Примеры задач:

  • генерация лица человека, которого никогда не существовало;
  • продолжение текста разных жанров и направленностей;
  • генерация картинки по текстовому описанию — DALL-E;
  • увеличение разрешения картинки.

Обучение с подкреплением

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

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

Такой подход популярен в сфере обучения нейронных сетей играм:

  • AlphaGo: алгоритм на базе нейронных сетей для игры в Го, который победил трехкратного чемпиона Европы Фань Хуэя в 2015 году;
  • AlphaStar: программа, которая использует нейронные сети для игры в Starcraft II.

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

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

Сферы применения нейросетей

Благодаря своей обобщающей способности нейронные сети применяются во многих дисциплинах: в медицине, финансах, автоматизации, роботизации и так далее.

Рассмотрим сферы, в которых нейросети зарекомендовали себя особенно хорошо.

Компьютерное зрение

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

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

К областям применения компьютерного зрения относятся:

  • медицина: автоматическая постановка первичного диагноза по рентгеновским снимкам;
  • робототехника: ориентация в пространстве, навигация, распознавание объектов вокруг;
  • автоматизация: контроль качества продукции на заводах, отслеживание технологических процессов.

Задачи компьютерного зрения, которые решают нейронные сети

Обработка естественного языка

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

Основная цель — анализ и понимание смысла, а также генерация нового текста. В этом направлении особенно популярны рекуррентные нейросети.

Задачи обработки естественного языка:

  • распознавание и генерация речи: голосовые помощники, автоматическая генерация субтитров;
  • анализ текста: разделение документов по категориям;
  • генерация текстов: написание второго тома «Мертвых душ».

Анализ временных рядов

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

Примеры задач:

  • экономика: предсказание курса доллара;
  • анализ данных: фильтрация данных с различных датчиков и выделение важного сигнала из шума.

Преимущества и недостатки технологии

Преимущества:

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

Недостатки:

  1. Требует очень много данных для обучения. Например, для обучения современных моделей для генерации текста требуются терабайты текстовых данных.
  2. Нужно много знать, чтобы обучить модель и заставить ее хорошо работать.
  3. Очень сложно интерпретировать полученные результаты. Нет четких критериев, чтобы понять, почему нейронная сеть приняла определенное решение.
  4. Очень дорогое обучение. Чем сложнее задача, тем больше данных требуется и тем дольше модель учится.

Этапы разработки нейронных сетей

Постановка задачи

В самом начале полученную задачу нужно свести к понятной для нейронной сети, например классификации или регрессии.

Сбор и анализ тренировочных данных

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

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

Обучение

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

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

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

Имплементация

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

Один из примеров использования сервера — «умная» колонка. Она записывает голос и отправляет его на сервер. Там голос распознается и генерируется ответ, который возвращается обратно.

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

Мониторинг и дообучение

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

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

В таких случаях нейронную сеть отправляют на дообучение.

Перспективы развития нейросетей

Ежегодно число публикаций по теме искусственного интеллекта и нейросетей растет. В 2021 году, по данным Center for Security and Emerging Technology, их число превысило 334 000 в год. Это значит, что данная сфера развивается, находит всё новые вызовы и пути решений.

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

Число публикаций по теме искусственного интеллекта в год, с 2010-го по 2021-й

Источник: Center for Security and Emerging Technology, 2021 ссылка

Коротко о главном

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

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

Нейронные сети в медицине: Как работает медицинская нейросеть

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

Что представляет собой нейронная сеть?

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

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

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

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

Нейронные сети для медицинского диагностирования

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

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

Сервисы с применением технологии компьютерного зрения разрабатываются по всему миру и помогают врачам выявлять признаки различных заболеваний, в том числе онкологии. Один из таких проектов — Цельс, разработка российской компании «Медицинские скрининг системы».

Как сервис помогает врачу

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

  1. Врач загружает в систему изображения (по одному или целым пакетом). Дальше система ранжирует список исследований по приоритетности — от наибольшей вероятности наличия патологии до наименьшей. Таким образом врач в первую очередь просмотрит снимки тех пациентов, у которых система заподозрила наличие новообразования. Это позволит оперативно провести дообследование, поставить диагноз и начать лечение.
  2. Врач открывает конкретное исследование из списка и видит изображение, на котором система маркером выделила именно те области, на которых предположительно визуализируются признаки патологии.
  3. Затем врач просматривает описание снимка, автоматически сформированной системой, и при необходимости вносит в него свои замечания.

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

Применение медицинских нейросетей

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

Нейронная сеть и генетика

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

Разработка лекарств

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

DSP-1181 является агонистом 5-HT1A рецептора серотонина и предназначен для лечения пациентов с обсессивно-компульсивным расстройством (ОКР). Обычно на разработку таких лекарств (этап Drug discovery) у исследователей уходит около пяти лет. Искусственный интеллект справился с этой задачей всего за год.

Первый этап клинических испытаний препарата был запланирован на март 2020 года. Пока нет информации о том, повлияла ли на эти планы пандемия COVID-19.

Распознавание речи

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

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

Ограничения и проблемы в использовании

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

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

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

Ещё одно препятствие касается процесса внедрения уже готового продукта в рабочие процессы медицинских учреждений: это отсутствие в законодательстве конкретных стандартов, регламентирующих применение таких технологий в медицине. Но работа в этом направлении ведётся — уже разработана первая редакция проекта национального стандарта ГОСТ Р для искусственного интеллекта в здравоохранении. После утверждения он будет регулировать клинические испытания медицинских ИИ-систем в России.

Объяснение того, как работают нейронные сети для начинающих | Теренс Шин

Понимание основ нейронных сетей для пятилетних детей

Изображение Ахмеда Гада из

  1. Предисловие
  2. Искусственный интеллект, машинное обучение и нейронные сети
  3. Механика базовых типов нейронных сетей
  4. 8 90 Pixabay Нейронные сети
  5. Приложения для нейронных сетей

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

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

Искусственный интеллект и машинное обучение

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

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

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

Нейронные сети

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

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

В нейронной сети есть входных слоев , один или несколько скрытых слоев и выходных слоев . Входной слой состоит из одной или более характеристических переменных (или входных переменных или независимых переменных), обозначенных как x1, x2, …, xn. Скрытый слой состоит из одного или нескольких скрытых узлов или скрытых блоков. Узел — это просто один из кругов на диаграмме выше. Точно так же выходная переменная состоит из одной или нескольких единиц вывода.

Данный слой может иметь множество узлов, как показано на изображении выше.

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

Выше приведен пример потенциальной нейронной сети. Он имеет три входные переменные: размер участка, количество спален и средний. Семейный доход. Подав в эту нейронную сеть эти три фрагмента информации, она вернет результат — «Цена дома». Итак, как именно он это делает?

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

Что происходит, так это то, что входные признаки (x) передаются в линейную функцию каждого узла, в результате чего получается значение z . Затем значение z передается в функцию активации, которая определяет, включается выключатель света или нет (между 0 и 1).

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

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

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

Искусственные нейронные сети (ИНС)

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

Сверточные нейронные сети (CNN)

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

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

Рекуррентные нейронные сети (RNN) — это тип ANN, в которых связи между узлами образуют орграф вдоль временной последовательности, что позволяет им использовать свою внутреннюю память для обработки последовательностей входных данных переменной длины. Из-за этой характеристики RNN отлично подходят для обработки данных последовательности, таких как распознавание текста или аудио.

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

  • Распознавание изображений и видео : Благодаря возможностям распознавания изображений теперь у нас есть такие функции, как распознавание лиц для обеспечения безопасности и система Bixby Vision.
  • Системы рекомендаций : Вы когда-нибудь задумывались, как Netflix всегда может рекомендовать шоу и фильмы, которые вам ДЕЙСТВИТЕЛЬНО нравятся? Скорее всего, они используют нейронные сети для обеспечения этого опыта.
  • Распознавание звука : Если вы не заметили, «Окей, Google» и Сери стали намного лучше понимать наши вопросы и то, что мы говорим. Этот успех можно отнести к нейронным сетям.
  • Автономное вождение : Наконец, наше продвижение к совершенствованию автономного вождения во многом связано с достижениями в области искусственного интеллекта и нейронных сетей.

Подводя итог, вот основные моменты:

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

Terence Shin

Основатель ShinTwin | Подключаемся по LinkedIn | Портфолио проектов здесь .

Как работают нейронные сети. Простое введение

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

Фото: У компьютеров и мозга много общего, но по сути они очень разные. Что произойдет, если вы объедините лучшее из обоих миров — систематическую мощь компьютера и тесно связанные между собой клетки мозга? Вы получаете великолепно полезную нейронную сеть.

Содержание

  1. Чем мозг отличается от компьютера
  2. Что такое нейронная сеть?
  3. Из чего состоит нейронная сеть?
  4. Как нейронная сеть учится?
  5. Как это работает на практике?
  6. Для чего используются нейронные сети?
  7. Узнать больше

Чем мозг отличается от компьютера

Вы часто слышите, как люди сравнивают человеческий мозг и электронный компьютер, и, на первый взгляд, у них есть что-то общее. Типичный мозг содержит примерно 100 миллиардов крошечных клеток, называемых 9.0147 нейронов (никто точно не знает, сколько их, и оценки варьируются от примерно 50 миллиардов до целых 500 миллиардов) [1]. Каждый нейрон состоит из клеточного тела (центральной массы клетки) с рядом отходящих от него соединений: многочисленных дендритов (входы клетки — несущие информацию к телу клетки) и одного аксона (выход клетки — перенос информации). Нейроны настолько крошечные, что вы можете упаковать около 100 их клеточных тел в один миллиметр. (Стоит также мимоходом отметить, что нейроны составляют лишь 10–50 процентов всех клеток головного мозга; остальные — это глиальные клетки, также называемые нейроглией, которые поддерживают и защищают нейроны и питают их энергией, позволяющей им работать и расти.) [1] Внутри компьютера эквивалентом клетки мозга является
наноскопически крошечное переключающее устройство, называемое транзистором. Самые современные микропроцессоры (одночиповые компьютеры) содержат более 30 миллиардов транзисторов; даже базовый микропроцессор Pentium
примерно 20 лет назад было около 50 миллионов транзисторов, упакованных в интегральную схему площадью всего 25 мм (меньше почтовой марки)! [2]

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

На этом сравнение между компьютерами и мозгом начинается и заканчивается, потому что это две совершенно разные вещи. Дело не только в том, что компьютеры — это холодные металлические ящики, набитые двоичными числами, а мозги — теплые, живые вещи, наполненные мыслями, чувствами и воспоминаниями. Настоящая разница в том, что компьютеры и мозг «думают» совершенно по-разному.
транзисторы в компьютере соединены относительно простыми последовательными цепями (каждый из них соединен, может быть, с двумя или тремя другими в базовом устройстве, известном как логические вентили), в то время как нейроны в мозгу плотно связаны между собой сложными параллельными способами (каждый из них связан примерно с 10 000 своих соседей). [3]

Это существенное структурное различие между компьютерами (возможно, с несколькими сотнями миллионов транзисторов, соединенных относительно простым способом) и мозгом (возможно, в 10–100 раз больше клеток мозга, соединенных более богатыми и сложными способами) и заставляет их «думать» совершенно по-разному. . Компьютеры идеально спроектированы для хранения огромных объемов бессмысленной (для них) информации и переупорядочения ее любым количеством способов в соответствии с точными инструкциями (программами), которые мы вводим в них заранее. Мозг, с другой стороны, учится медленно, более окольным путем, часто требуются месяцы или годы, чтобы понять что-то действительно сложное. Но, в отличие от компьютеров, они могут спонтанно объединять информацию поразительными новыми способами — вот откуда исходит человеческое творчество Бетховена или Шекспира — распознавать оригинальные закономерности, устанавливать связи и видеть то, что они узнали, в совершенно ином свете. .

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

Фото: Электронный мозг? Не совсем. Компьютерные чипы состоят из тысяч, миллионов, а иногда и миллиардов крошечных электронных переключателей, называемых транзисторами. Звучит как много, но их все равно гораздо меньше, чем клеток в человеческом мозгу.

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

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

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

Реальные и искусственные нейронные сети

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

Из чего состоит нейронная сеть?

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

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

Хотя простая нейронная сеть для решения простых задач может состоять всего из трех слоев, как показано здесь, она также может состоять из множества различных слоев между входом и выходом. Более богатая структура, подобная этой, называется 9.0147 глубокая нейронная сеть (DNN) и обычно используется для решения гораздо более сложных задач. Теоретически DNN может отображать любые входные данные в любые выходные, но недостатком является то, что ей требуется значительно больше обучения: ей нужно «увидеть» миллионы или миллиарды примеров по сравнению, возможно, с сотнями или тысячами, которые более простая сеть может понадобиться. Глубоко или «поверхностно», как бы оно ни было структурировано и как бы мы ни изображали его на странице, стоит еще раз напомнить себе, что нейронная сеть — это , а не на самом деле мозг или что-то вроде мозга. В конце концов, это набор умной математики… куча уравнений… алгоритм, если хотите. [4]

Как нейронная сеть учится?

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

Фото: Боулинг: Вы учитесь делать такие искусные вещи с помощью нейронной сети внутри вашего мозга. Каждый раз, когда вы бросаете мяч неправильно, вы узнаете, какие исправления вам нужно сделать в следующий раз. Фото Кеннета Р. Хендрикса/ВМС США
Опубликован в
Фликр.

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

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

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

Как это работает на практике?

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

Это не означает, что нейронная сеть может просто «смотреть» на предметы мебели и мгновенно осмысленно реагировать на них; ведет себя не по-человечески. Рассмотрим пример, который мы только что привели: сеть на самом деле не просматривает предметы мебели. Входы в сеть, по существу, представляют собой двоичные числа: каждая единица ввода либо включена, либо выключена. Таким образом, если бы у вас было пять блоков ввода, вы могли бы ввести информацию о пяти различных характеристиках разных стульев, используя бинарные ответы (да/нет). Вопросы могут быть такими: 1) Есть ли у него спинка? 2) Есть ли у него верх? 3) Мягкая ли обивка? 4) Можно ли на нем комфортно сидеть в течение длительного времени? 5) Можете ли вы положить много вещей поверх него? Тогда типичный стул будет представлен как «Да», «Нет», «Да», «Да», «Нет» или 10110 в двоичном формате, в то время как типичный стол может быть «Нет», «Да», «Нет», «Нет», «Да» или 01001. Таким образом, на этапе обучения сеть просто глядя на множество чисел, таких как 10110 и 01001, и узнавая, что некоторые из них означают стул (что может быть результатом 1), а другие означают стол (вывод 0).

Для чего используются нейронные сети?

Фото: Последние два десятилетия НАСА экспериментирует с самообучающейся нейронной сетью под названием
Интеллектуальная система управления полетом (IFCS), которая может помочь пилотам посадить самолеты после серьезных сбоев или повреждений в бою. Прототип был испытан на этом модифицированном самолете NF-15B (родственник McDonnell Douglas F-15). Фото Джима Росса любезно предоставлено
НАСА.

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

Есть много применений нейронных сетей и в сфере безопасности. Предположим, вы управляете банком, в котором каждую минуту через вашу компьютерную систему проходят тысячи транзакций по кредитным картам. Вам нужен быстрый автоматизированный способ идентификации любых транзакций, которые могут быть мошенническими, и для этого идеально подходит нейронная сеть. Ваши входные данные могут быть такими, как 1) Действительно ли владелец карты присутствует? 2) Был ли использован действительный PIN-код? 3) Было ли совершено пять или более транзакций по этой карте за последние 10 минут? 4) Карта используется в другой стране, в которой она зарегистрирована? -и так далее.
Имея достаточно подсказок, нейронная сеть может помечать любые транзакции, которые выглядят подозрительно, позволяя оператору-человеку исследовать их более внимательно. Очень похожим образом банк может использовать нейронную сеть, чтобы решить, давать ли кредиты людям на основе их прошлой кредитной истории, текущих доходов и послужного списка.

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

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

Автоматический перевод Google, например, за последние несколько лет все чаще использует эту технологию для преобразования слов на одном языке (ввод сети) в эквивалентные слова на другом языке (выход сети). В 2016 году Google
объявила, что использует нечто, называемое нейронным машинным переводом (NMT), для мгновенного преобразования целых предложений с
Сокращение ошибок на 55–85 процентов.