И что с этим можно делать.

Авторы Шолто Дуглас и Ник Уайт из команды Zeroth.AI, 26 февраля 2018 г.

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

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

Контур

Чтобы сделать это руководство более удобоваримым, мы разбили его на разделы:

  1. Суть этого - высокий уровень подготовки ИИ.
  2. Нейронные сети - что такое нейронная сеть и как она работает?
  3. Сверточные нейронные сети
  4. Рекуррентные нейронные сети
  5. Генеративные состязательные сети
  6. Обучение с подкреплением
  7. Автоэнкодеры
  8. Обработка естественного языка
  9. Полезные инструменты - передача обучения и визуализации
  10. Как я могу это использовать?
  11. Учебный план и список ресурсов по ИИ

Суть этого

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

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

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

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

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

Это хорошее краткое изложение области.

Нейронные сети (NN)

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

Нет лучшего объяснения того, как работают NN, чем это видео от 3Blue1Brown, откуда взялась приведенная выше анимация. Но как они учатся? Входные данные преобразуются в выходные посредством чисел в модели, называемых весами. Процесс определения влияния каждого веса на конечный результат и их корректировка, чтобы гарантировать, что NN будет более правильным в следующий раз, называется обратным распространением, в котором углубляются следующие видео в его серии из 4 частей.

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

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

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

Помните, как мы видели в видео 3Blue1Brown, изображения представлены в виде числовой сетки, представляющей интенсивности значений пикселей либо в черном и белом, либо в красном, зеленом, синем (RGB).

CNN используют две идеи.

  • Пиксели, расположенные близко друг к другу, часто располагаются в виде линий, краев или точек. Эти низкоуровневые объекты сами по себе имеют более сложные формы и т. Д. Обычная нейронная сеть должна усвоить, что объекты, расположенные рядом друг с другом на изображении, скорее всего, содержат значимую информацию друг о друге, тогда как тот факт, что CNN используют «фильтры», построен с учетом этого.
  • К одному и тому же объекту в разных частях изображения следует относиться одинаково. Сетевые сети должны узнавать о каждой части кадра отдельно, потому что разные соединения идут к каждой части входного изображения. CNN берут одни и те же «фильтры» и применяют их ко всему изображению.

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

Чтобы интерактивно поиграть со сверточным слоем, перейдите здесь

Фактически, теоретически теперь у вас есть все, что нужно для того, чтобы машина могла управлять собой! CNN может преобразовывать изображение камеры в функции, которые интерпретируются ANN, которая выводит число, показывающее, на сколько нужно повернуть колесо. Фактически, тысячи студентов уже сделали это в рамках проекта - Учить машину управлять с помощью Udacity. Благодаря этому ваша машина будет правильно ездить в 80–90% случаев, но, к сожалению, этого недостаточно для 1-тонного стального куска на скорости около 70 км / ч. Это последние 10% необычных ситуаций, с которыми в настоящее время сталкиваются многие команды, работающие над беспилотными автомобилями.

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

Если вы технически настроены, чтобы узнать больше о CNN, посмотрите CS231N. Хороший обзор RCNN с маской и CNN с предложением региона можно найти здесь.

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

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

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

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

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

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

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

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

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

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

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

К сожалению, RNN действительно испытывают трудности с длинными последовательностями, потому что они пересчитывают все состояние на каждом временном шаге. LSTM успешно справляются с этой проблемой - и это прекрасное их объяснение.

В RNN есть 3 действительно важных идеи, каждая из которых значительно расширяет их возможности.

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

Это лучшее объяснение этих идей.

Генеративные состязательные сети (GAN)

До сих пор наши нейронные сети в основном использовались для вывода информации о вводе, будь то классификация, что это такое, или принятие решения на ее основе. Сети GAN - это отличная идея, которая позволяет нашим сетям создавать. Они были названы потенциально «самой интересной идеей в машинном обучении за последние десять лет».

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

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

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

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

Как оказалось, CNN идеально подходит для дискриминатора - это просто контролируемая задача классификации. Оборотная сторона CNN, деконволюционная сеть является генератором. Соревнуясь друг с другом, они оба становятся лучше!

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

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

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

Изложенные до сих пор техники способны на поразительные вещи, которые мы определенно описали бы как требующие интеллекта. Вождение автомобиля - сложная задача, а тем более перевод! Несмотря на все это, можете ли вы представить себе, что CNN или RNN когда-либо были в сознании? Даже GAN ближе к Photoshop, чем к Пикассо. Есть причина, по которой большинство методов машинного обучения называют «узким ИИ», они просто очень хорошо выполняют довольно четко определенную задачу, сопоставляя входные данные с выходными.

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

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

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

Вместо этого в реальной жизни могут потребоваться годы, чтобы действия имели последствия. Обучение с подкреплением - это изучение того, как научить агента переходить от наблюдения к действию, когда он лишь время от времени награждается. Вопрос в том, как приписать заслугу или вину решениям, принятым много лет назад. Это также одна из самых захватывающих областей искусственного интеллекта, потому что это наша лучшая догадка о том, как развить ум, подобный нашему. Исследователи разрабатывают алгоритмы обучения с подкреплением, которые позволяют добиться успеха во все более сложных смоделированных средах, от Atari Games до Go и сложных моделирования робототехники. Есть надежда, что в конце концов мы сможем развернуть их в невероятно сложном реальном мире, и они научатся здесь стоять на своем.

В основе алгоритмов обучения с подкреплением лежат «градиенты политики» и «Q Learning». Градиенты политики пытаются сопоставить то, что они наблюдают, с действиями, в частности, это может означать, что вектор координат сопоставлен с вектором чисел, обозначающим, сколько силы приложить к каждому двигателю. Q Learning вместо этого пытается узнать ожидаемую награду за каждое из возможных действий в данный момент (например, в игре вверх, вниз, влево, вправо), а затем выбирает между действиями.

Простые ИНС идеально подходят для задач сопоставления ввода и вывода, CNN могут быть введены, если ввод является визуальным, и RNN, если вывод сильно зависит от недавней истории. Полученные награды - это просто число, записываемое на каждом временном шаге, например, успешно ли достигнута цель. Эти награды затем добавляются к количеству, зарегистрированному для предыдущих временных шагов, постепенно уменьшающимися суммами при разумном предположении, что более недавние действия внесли наибольший вклад в получение награды. Потеря сети обучения Q - это то, насколько ее оценка была далека от истинного вознаграждения, в то время как потеря сети политик более сложна и обычно рассчитывается в вариантах архитектуры «субъект-критик».

Q Learning достиг невероятной производительности в играх Atari. Policy Networks теперь чемпионы го и начинают давать огромные перспективы в робототехнике. К сожалению, несмотря на то, насколько увлекательным является RL, он чрезвычайно сложен и часто ненадежен. Это подробно описано здесь: Глубокое обучение с подкреплением еще не работает. При этом становится лучше - быстро. Вскоре это серьезно повлияет на то, как мы живем и работаем.

Учитывая небольшую техническую подготовку, это набор исключительно хороших ресурсов Введение в обучение с подкреплением, Детальное описание современного подхода к градиентам политики и Введение в Q-обучение. Для более полного обзора, это проведет вас через все основные идеи RL, запрограммировав их и это охватывает последние исследования, проведенные людьми, которые выполнили большую часть этого. Это список некоторых захватывающих результатов в RL, которые должны показать многообещающий прогресс.

Автоэнкодеры

Что делать, если у нас нет ярлыков, но мы все же хотим анализировать или кластеризовать наши данные? Это обучение без учителя! Ранее мы видели, что NN и CNN постепенно превращают свой больший вклад в более богатый вектор характеристик. Идея автоэнкодеров заключается в том, что одна сеть извлекает входные данные, а другая пытается восстановить исходные входные данные из этой дистилляции. Потеря настолько близка к исходной - таким образом они сотрудничают, чтобы построить очень информативную, но гораздо меньшую дистилляцию.

Какая сеть подойдет для реконструкции входа? Если мы используем изображения, то это тот же стиль сети, который мы используем для создания поддельного изображения в GAN, деконволюционных сетях. В противном случае мы можем использовать нормальные NN для входов, представленных в виде векторов.

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

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

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

Разработать, как представить изображения или координаты в виде чисел, легко, изображения представляют собой сетку чисел, координаты уже обычно находятся в векторной форме. А как насчет текста? Предполагая, что мы хотим использовать NN или RNN, нам нужны слова как векторы. Каждое слово отличается, поэтому в ранних реализациях использовалась «горячая» кодировка, которую мы уже видели в метках классов. Здесь векторы слов имеют длину, достаточную для словаря сети (который может состоять из десятков тысяч слов), с записью, соответствующей только этому слову.

К сожалению, это ничего не говорит нам о значении слова, нет никакого сходства между векторами для похожих слов - мы бы предпочли что-то вроде этого!

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

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

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

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

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

Некоторые интересные недавние исследования в области НЛП

Две недавние статьи действительно выделялись для нас на стыке НЛП и машинного обучения.

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

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

Полезные инструменты

Трансферное обучение

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

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

Проверьте это для более подробной информации.

Визуализация

Как вы понимаете, что происходит под капотом?

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

Первый в просторечии называется Deep Dreaming после того, как Google использовал его для создания произведений искусства. Здесь мы модифицируем входное изображение, а не саму модель, чтобы лучше активировать либо отдельные нейроны в модели, либо классы в последнем слое. Это позволяет нам увидеть, что эта модель узнала, по сути, представляет собой определенный результат. Это наиболее интуитивно понятно при работе с изображениями, но также имеет приложения в НЛП. Чтобы по-настоящему понять, как это реализовать, посмотрите курс fast.ai, ссылка на который есть в разделе учебной программы. В этом сообщении блога подробно описаны последствия и интересные выводы.

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

Как я могу это использовать?

Все сводится к данным.

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

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

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

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

  • French Sentences - Русский перевод этих предложений
  • Изображения - Подписи. Помимо каких-либо аналитических целей, это замечательно для слабовидящих.
  • Прогнозирование временных рядов - сам ряд можно использовать в качестве метки, если вы возьмете только один раздел, а затем попытаетесь предсказать это «будущее».
  • Последовательности генов - Физические характеристики, такие как рост

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

То, что лежит впереди?

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

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

Полный учебный план

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

Развивайте интуицию

Во-первых, развейте интуицию, снова посмотрев 3Blue1Brown, но на этот раз обязательно посмотрите все 4 видео из этой серии. Через час вы получите базовое представление о том, как работает обучение модели. Математика в 4-м видео на данный момент может быть вам незнакома, и все в порядке!

Fast.ai

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

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

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

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

CS231N от Стэнфорда

Задания, представленные здесь, также дадут вам превосходное понимание обратного распространения, как машинное обучение учится, потому что вы будете руководствоваться этим, написав его самостоятельно! Почему вы должны знать, как это сделать, если многие библиотеки машинного обучения сделают это за вас? "Вот почему."

Глубокое обучение

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

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

Простое обучение с подкреплением в Tensorflow

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

Глубокое обучение с подкреплением, Беркли

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

Общий искусственный интеллект

Общий искусственный интеллект от Массачусетского технологического института

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

Спецрепортаж - Можем ли мы скопировать мозг?

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

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

CS224D: Обработка естественного языка, Стэнфорд.

Глубокое обучение для искусства

Творческие приложения глубокого обучения от Кадензе.

Идти глубже

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

Теоретическое машинное обучение в Принстоне.

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

Джереми Кун - Блог

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

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

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

Как идти в ногу со временем

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

Спасибо!

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

В соавторстве с Шолто Дугласом и Ником Уайтом на Zeroth.AI