Deep Learning, искусственный интеллект и машинное обучение для чайников: объяснение на примере |
|||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-11-19 14:20 Хотите сверкнуть интеллектом в компании коллег или поразить друзей в разговоре на актуальные технические темы? Упомяните в разговоре «Искусственный интеллект» или «Машинное обучение» — и дело в шляпе. Термин «Искусственный интеллект» сейчас на слуху. Программисты хотят изучить ИИ. Руководители хотят внедрять ИИ в своих сервисах. Но на практике даже профессионалы не всегда понимают, что же такое это самое «ИИ». Эта статья призвана помочь разобраться с терминами «искусственный интеллект» и «машинное обучение». А ещё, вы узнаете, как работает Deep Learning, самый популярный тип машинного обучения. И, что важно, эта инструкция написана вполне доступным языком. Здесь не будет слишком сложной для понимания математики. Основы Первым шагом к пониманию того, что представляет собой Deep Learning, является понимание разницы между ключевыми терминами. Картинка: Datanami Искусственный интеллект vs Машинное обучение Искусственный интеллект (ИИ или AI агнл.) — это попытка копирования мыслительного процесса человека вычислительной машиной. Когда исследования в области Искусственного интеллекта только начинались, учёные пытались копировать поведение человеческого интеллекта строго в определённых условиях, то есть затачивать его под решение определённых задач. Например, для того, чтобы машина могла играть в игры. Они устанавливали ряд правил, которым вычислительная машина должна была следовать. У компьютера был перечень возможных действий, и он принимал решения, исходя из правил и ограничений, заданных на этапе разработки.
МО позволяет вычислительным машинам обучаться самостоятельно. Этот тип обучения использует возможности современной вычислительной техники, способной легко обрабатывать огромные массивы данных. Контролируемое обучение vs Неконтролируемое обучение Контролируемое обучение использует маркированные наборы данных, которые состоят из входных данных и ожидаемых результатов. Когда вы обучаете искусственный интеллект с помощью контролируемого обучения, вы подаете на вход данные и указываете каким должен быть результат. Если результат, который выдал ИИ отличается от ожидаемого, то ИИ должен исправить свои вычисления. Процесс повторяется многократно над массивом данных, до тех пор, пока ИИ допускает ошибки. Примером контролируемого обучения может служить Искусственный интеллект, предсказывающий погоду. Он обучается предсказывать погоду, используя исторические данные. Входными данными служат давление, влажность и скорость ветра, а в результате мы должны получить температуру. Неконтролируемое обучение — это задача которая состоит в обучении ИИ с используя не структурированные данные. Когда вы тренируете искусственный интеллект с помощью неконтролируемого обучения, вы позволяете ИИ осуществить логическую классификацию данных. Пример искусственного интеллекта, использующего неконтролируемое машинное обучение — робот-предсказатель поведения клиентов интернет магазина. Он обучается, не используя заранее известные входные и выходные данные. Вместо этого он должен самостоятельно классифицировать входные данные. Алгоритм должен определить и сообщить вам, какой тип пользователей предпочитает какие продукты. Как работает машинное обучение Итак, Deep Learning — это один из подходов к машинному обучению. Он позволяет предсказывать результаты по заданным входным данным. Для тренировки ИИ можно использовать оба вышеописанных варианта: контролируемое и неконтролируемое обучение. Мы будем разбираться с тем как работает Deep Learning на наглядном примере: допустим, нам нужно разработать сервис предсказания цен на авиаперелеты. Обучать наш алгоритм мы будем контролируемым методом. Мы хотим, чтобы наш сервис по предсказанию цен на авиаперелет предсказывал цену по следующим входным данным (обратный перелет мы не учитываем для простоты подачи материала):
Нейронные сети Давайте заглянем в мозг искусственного интеллекта. Как и в случае биологических живых существ, у нашего предсказателя в «голове» есть нейроны. На картинке они представлены в виде кругов. Нейроны соединены между собой. На изображении нейроны объединены в три группы слоев:
На входной слой заходят некие данные. В нашем случаи мы имеем четыре нейрона на входном слое: аэропорт отправления, аэропорт прибытия, дата вылета, авиакомпания. Входной слой передает данные на первый скрытый слой. Скрытые слои выполняют математические вычисления, оперируя полученными входными данными. Одним из основных вопросов при построении нейросетей является выбор количества скрытых слоев и количества нейронов в каждом слое.
Выходной слой возвращает нам результирующую информацию. В нашем случае — ожидаемую цену перелёта. Самое интересное мы пока пропустили: как именно происходит вычисление ожидаемой цены? Вот здесь и начинается магия Deep Learning. Каждому соединению между нейронами присваивается определенный вес (коэффициент). Этот вес определяет важность входного значения. Начальные веса устанавливаются случайным образом. Когда предсказываешь стоимость авиаперелета, дата отправления влияет на цену больше всего. Поэтому соединения нейрона «дата отправления» имеют бОльший вес. К каждому нейрону привязана функция активации. Что представляет собой эта функция без математических знаний понять трудновато. Поэтому давайте пойдём на некоторое упрощение: смысл функции активации в том, чтобы «стандартизировать» выходные данные от нейрона. После того, как набор данных прошел через все слои нейросети, она возвращает результат через выходной слой. Пока что все понятно, правда? Обучение нейросети Обучение нейросети — самая сложная часть Deep Learning! Почему? Потому, что вам нужен большой объем данных. Потому, что вам нужны большие вычислительные мощности. Для нашего проекта нам необходимо найти исторические данные стоимости авиабилетов. Причем для всевозможных комбинаций аэропортов вылета и назначения, дат отправления и разных авиалиний. Нам нужен очень большой объем данных с ценами на билеты. Мы должны подавать на входы нашей нейросети входные данные из нашего набора и проверять, совпадают ли они с теми результатами, которые у нас уже есть. Если получаемые искусственным интеллектом результаты отличаются от ожидаемых, это значит, что он ещё недостаточно натренировался. После того, как мы пропустили через нашу нейросеть весь объем данных, мы можем построить функцию, которая укажет, насколько результаты ИИ отличаются от фактически имеющихся результатов в нашем наборе данных. Такая функция называется функцией стоимости. В идеальном случае, к которому мы всеми силами стремимся, значения нашей функции стоимости равны нулю. Это значит, что результаты стоимости, подобранные нейросетью, не отличаются от реальной стоимости билетов в нашем наборе данных. Как мы можем уменьшить значение функции стоимости? Мы изменяем веса соединений между нейронами. Это можно сделать случайным образом, однако такой подход не эффективен. Вместо этого мы будем использовать метод, который называется Градиентный спуск.
Этот алгоритм работает путем постепенного увеличения весов после каждой новой итерации обработки нашего массива данных. Вычисляя производную (или градиент) функции стоимости для определенных наборов весов, мы можем увидеть в каком направлении находится минимум. На картинке: Initial weight — изначальный вес, Global cost minimum — глобальный минимум стоимостной функции. Для минимизации функции стоимости мы должны провести вычисления над нашим массивом данных много раз. Вот почему вам нужно много вычислительных мощностей. Обновление весов при помощи метода градиентного спуска происходит автоматически. Вот она — магия Deep Learning! После того, как мы обучили наш ИИ-сервис предсказания цен на авиаперелеты, мы можем смело использовать его для предсказания цен в реальности. Подведем итоги…
Источник: javarush.ru Комментарии: |
||||