Deep Learning, искусственный интеллект и машинное обучение для чайников: объяснение на примере

МЕНЮ


Искусственный интеллект. Новости
Поиск

ТЕМЫ


Внедрение ИИНовости ИИРобототехника, БПЛАПсихологияТрансгуманизмЛингвистика, обработка текстаБиология, теория эволюцииВиртулаьная и дополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информации

RSS


RSS новости

Авторизация



Новостная лента форума ailab.ru

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

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

Основы

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

Картинка: Datanami

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

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

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

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

Контролируемое обучение vs Неконтролируемое обучение

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

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

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

  • аэропорт отправления;
  • аэропорт прибытия;
  • планируемая дата вылета;
  • авиакомпания.

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

На изображении нейроны объединены в три группы слоев:

  • входной слой (input layer);
  • скрытый слой 1 (hidden layer 1) и скрытый слой 2 (hidden layer 2);
  • выходной слой (output layer).

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

Слово Deep (глубокий) в словосочетании Deep Learning как раз и указывает на наличие более чем одного скрытого слоя.

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

Самое интересное мы пока пропустили: как именно происходит вычисление ожидаемой цены? Вот здесь и начинается магия Deep Learning. Каждому соединению между нейронами присваивается определенный вес (коэффициент). Этот вес определяет важность входного значения. Начальные веса устанавливаются случайным образом. Когда предсказываешь стоимость авиаперелета, дата отправления влияет на цену больше всего. Поэтому соединения нейрона «дата отправления» имеют бОльший вес.

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

Обучение нейросети

Обучение нейросети — самая сложная часть Deep Learning! Почему? Потому, что вам нужен большой объем данных. Потому, что вам нужны большие вычислительные мощности. Для нашего проекта нам необходимо найти исторические данные стоимости авиабилетов. Причем для всевозможных комбинаций аэропортов вылета и назначения, дат отправления и разных авиалиний. Нам нужен очень большой объем данных с ценами на билеты. Мы должны подавать на входы нашей нейросети входные данные из нашего набора и проверять, совпадают ли они с теми результатами, которые у нас уже есть. Если получаемые искусственным интеллектом результаты отличаются от ожидаемых, это значит, что он ещё недостаточно натренировался. После того, как мы пропустили через нашу нейросеть весь объем данных, мы можем построить функцию, которая укажет, насколько результаты ИИ отличаются от фактически имеющихся результатов в нашем наборе данных. Такая функция называется функцией стоимости. В идеальном случае, к которому мы всеми силами стремимся, значения нашей функции стоимости равны нулю. Это значит, что результаты стоимости, подобранные нейросетью, не отличаются от реальной стоимости билетов в нашем наборе данных.

Как мы можем уменьшить значение функции стоимости?

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

Градиентный спуск — это метод который позволяет нам найти минимум функции. В нашем случаи мы будим искать минимум функции стоимости.

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

На картинке: Initial weight — изначальный вес, Global cost minimum — глобальный минимум стоимостной функции. Для минимизации функции стоимости мы должны провести вычисления над нашим массивом данных много раз. Вот почему вам нужно много вычислительных мощностей. Обновление весов при помощи метода градиентного спуска происходит автоматически. Вот она — магия Deep Learning! После того, как мы обучили наш ИИ-сервис предсказания цен на авиаперелеты, мы можем смело использовать его для предсказания цен в реальности.

Подведем итоги…

  • Deep learning использует нейросети для имитации интеллекта.
  • Существует три типа нейронов в нейросети: входной слой, скрытые слои, выходной слой.
  • Каждое соединение между нейронами имеет свой вес, указывающий на важность этого входа.
  • Нейроны применяют функцию активации для «стандартизации» данных на выходе с нейрона.
  • Для обучения нейросети вам необходим большой объем данных.
  • Если обработать массив данных с помощью нейросети, и сравнить выходные данные с фактически имеющимися, мы получим функцию стоимости, которая показывает насколько ИИ ошибается.
  • После каждой обработки данных, веса между нейронами корректируются с использованием метода градиентного спуска, для достижения уменьшения функции стоимости.

Источник: javarush.ru