«…чтобы построить машину умнее вас, она должна быть сложнее вас — и способность понять машину начинает ускользать». - Д. Иглман, Сумма: Байки из загробной жизни.

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

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

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

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

Определение нейронной сети

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

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

ИНС стали горячей темой в этом столетии, но на самом деле это концепция, впервые представленная в 1950-х годах. В те дни мы называли этот алгоритм персептроном. Хорошо, но что такое персептрон?

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

Базовая архитектура ИНС

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

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

Ну, нейронная сеть состоит из 3-х типов слоев:

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

Прежде чем мы углубимся в раздел «Как это работает», я хочу ввести некоторые общие термины.

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

Как это работает

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

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

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

  • Feedforward – вычисляет прогнозируемое значение.
  • Обратное распространение – обновляет веса, чтобы свести к минимуму количество потерь. Это центральный алгоритм ИНС.

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

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

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

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

Как насчет глубокого обучения?

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

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

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

Достижения на данный момент и дальнейшие обещания

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

Виртуальные помощники

Голосовой поиск и голосовые помощники — одни из самых популярных областей применения глубокого обучения. Siri, Alexa и Google Assistant — сегодня мы все их знаем и регулярно используем.

Беспилотные автомобили

Благодаря глубокому обучению мы смогли воплотить в жизнь автономное вождение. Конечно, еще многое предстоит сделать, но есть и многообещающие примеры, такие как Uber, Waymo и Tesla.

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

Развлечение

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

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

Резюме документов, ответы на вопросы, анализ Твиттера и классификация текстов — вот лишь несколько примеров приложений НЛП.

Здравоохранение

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

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

Агрегация новостей

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

Распознавание изображений

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

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

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

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

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

Ссылки:

  1. Глубокое обучение с помощью Python — Франсуа Шолле
  2. Глубокое обучение (серия «Адаптивные вычисления и машинное обучение)»