Обзор AI & ML решений в 2018 году и прогнозы на 2019 год: Часть 2 — Инструменты и библиотеки, AutoML, RL, этика в AI +16


Всем привет! Представляю вам перевод статьи Analytics Vidhya с обзором событий в области AI / ML в 2018 году и трендов 2019 года. Материал довольно большой, поэтому разделен на 2 части. Надеюсь, что статья заинтересует не только профильных специалистов, но и интересующихся темой AI. Приятного чтения!


Читать сначала: Часть 1 — NLP, Computer Vision


Инструменты и библиотеки


Этот раздел понравится всем data science профессионалам. Инструменты и библиотеки — хлеб с маслом для ученых. Я участвовал во многих дебатах о том, какой инструмент лучше, какой фреймворк заменяет другой, какая библиотека является воплощением “экономичных” вычислений, и всё такое. Уверен, что многих из вас это тоже касается.

Но с одной вещью нельзя не согласиться — мы должны быть в курсе последних инструментов в этой области или рискуем остаться позади. Темпы, которыми Python обогнал конкурентов и зарекомендовал себя, как лидера отрасли, являются этому хорошей иллюстрацией. Конечно, многое сводится к субъективному выбору (какой инструмент использует ваша организация, совместимость с существующей инфраструктурой и прочее), но если вы не идете в ногу со временем, пора начинать прямо СЕЙЧАС.

Так что же попало в заголовки новостей в этом году [в 2018 году — прим. пер.]? Пошли разбираться!

PyTorch 1.0


Что за хайп вокруг PyTorch, который я упоминал уже множество раз в этой статье?

Учитывая, насколько медленным может быть TensorFlow, он открыл для PyTorch дорогу на рынок deep learning. Большая часть открытого кода, который я вижу на GitHub, представляет собой реализацию на PyTorch. Это не совпадение — PyTorch очень гибкий, а последняя версия (v1.0) уже поддерживает многие продукты Facebook и масштабирование, включая обработку 6 миллиардов переводов текстов в день.

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

AutoML – Automated Machine Learning


Automated Machine Learning (или AutoML) постепенно завоёвывает популярность в течении последних пары лет. Такие компании, как RapidMiner, KNIME, DataRobot и H2O.ai уже выпустили отличные продукты, демонстрирующие огромный потенциал этой услуги.

Можете ли вы представить себе работу над ML проектом, где вам нужно работать только с интерфейсом перетаскивания без кодирования? Это сценарий, который может стать реальным уже в ближайшем будущем. Кроме того, в ML / DL уже произошло знаменательное событие — релиз Auto Keras!

Auto Keras — это библиотека с открытым исходным кодом для выполнения задач AutoML. Идея заключается в том, чтобы сделать deep learning доступным для экспертов в предметной области, которые, возможно, не имеют опыта работы с ML. Можете познакомиться с продуктом здесь. В ближайшие годы он собирается совершить огромный прорыв.

TensorFlow.js – Deep Learning в браузере


С тех пор, как мы приступили к этой работе, мы строим и проектируем модели machine learning и deep learning в наших любимых IDE и ноутбуках. Как насчет того, чтобы сделать шаг и попробовать что-то другое? Да, я говорю о deep learning прямо в вашем веб-браузере!

Теперь это стало реальностью благодаря появлению TensorFlow.js. На сайте проекта есть несколько примеров, демонстрирующих, насколько крута эта концепция с открытым исходным кодом. В первую очередь, TensorFlow.js имеет три преимущества / особенности:

  • Вы можете разрабатывать и разворачивать модели ML с помощью JavaScript;
  • Запускать уже существующие модели TensorFlow в своем браузере;
  • Переучивать уже готовые модели.

Тренды в AutoML на 2019 год


Я хотел сосредоточиться на AutoML в этой статье. Зачем? По моим ощущениям, в ближайшие несколько лет ситуация в сфере data science изменится, но не верьте мне на слово! Марио Михайлидис из H2O.ai, гроссмейстер Kaggle, расскажет о том, чего ожидать от AutoML в 2019 году:
Машинное обучение продолжает свой путь к тому, чтобы стать одной из самых важных тенденций будущего — того, куда движется мир. Эта экспансия увеличила спрос на приложения в этой области. Учитывая этот рост, крайне важно, чтобы автоматизация была ключом к максимально эффективному использованию ресурсов в сфере data science. Ведь области применения безграничны: кредитование, страхование, противодействию мошенничеству, компьютерное зрение, акустика, датчики, рекомендации, прогнозирование, NLP. Это большая честь работать в этой области. Список трендов, которые сохранят свою актуальность, выглядит так:

  1. Предоставление визуализаций и инсайтов, помогающих описать и понять данные;
  2. Поиск / построение / извлечение лучших функций для заданного набора данных;
  3. Построение более мощных / более интеллектуальных прогностических моделей;
  4. Сокращение разрыва между моделированием “черного ящика” и применением такой модели;
  5. Облегчение производства этих моделей

Reinforcement Learning (Обучение с подкреплением)


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

— источник Wikipedia

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

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

OpenAI опубликовали действительно полезный тулкит для тех кто только знакомится с RL. Можете почитать введение в RL здесь (для меня он оказался очень полезным).

Если я что-нибудь пропустил, буду рад вашим дополнениям.

Развитие OpenAI в области Deep Reinforcement Learning


Пока освоение RL идет медленно, количество учебного материала на эту тему остается минимальным (это мягко сказано). Не смотря на это, OpenAI поделились некоторым количеством отличного материала на эту тему. Они назвали свой проект “Spinning Up in Deep RL”, он доступен по этой ссылке.

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

Больше не нужно откладывать на потом, если вы планируете начать работать с RL, ваше время пришло!

Dopamine от Google


Чтобы дать толчок развитию и вовлечь комьюнити в тему reinforcement learning, команда Google AI представила для всех желающих Dopamine, TensorFlow фреймворк, призванный сделать проекты более гибкими и воспроизводимыми.

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


Тренды в Reinforcement Learning на 2019 год


Ксандер Стинбрюгге, спикер DataHack Summit 2018 и основатель канала ArxivInsights, является экспертом в reinforcement learning. Вот его мысли о текущем состоянии RL и о том, чего нам ждать в 2019 году:
В настоящий момент я вижу три главные проблемы в области RL:

  1. Сложность модели (агент должен увидеть / собрать большое количество опыта чтобы обучиться)
  2. Обобщение и передача обучения (Тренировка по задаче A, тест по связанной задаче B)
  3. Иерархическая RL (автоматическая декомпозиция подцелей)

Я уверен, что первые две проблемы могут быть решены с помощью аналогичного набора методов, связанных с unsupervised representation learning.

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

Первое. Требуется достаточно много времени, чтобы «вырастить» полезные детекторы функций, потому что соотношение сигнал / шум очень низкое. RL в основном начинается со случайных действий, пока не повезёт наткнуться на вознаграждение, потом ещё необходимо выяснить, чем именно конкретное вознаграждение было на самом деле вызвано. Дальнейшее исследование либо жестко закодировано (эпсилон-жадное исследование), либо поощряется такими методами, как curiosity-driven-exploration. Это неэффективно, и это возвращает нас к проблеме 1.


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

Возможный путь для развития на который я смотрю с энтузиазмом, это использование unsupervised representation learning для преобразования грязного многомерного пространства ввода (например, пиксели) в «концептуальное» пространство более низкого измерения, которое имеет определенные требуемые свойства, такие как: линейность, распутывание, устойчивость к шуму и другое.

Как только вам удастся связать пиксели в некое подобие “латентного пространства”, обучение вдруг становится более простым и быстрым (проблема 1) и вы надеетесь, что правила, извлеченные из этого пространства, будут иметь более сильную генерализацию из-за свойств, упомянутых выше (проблема 2).

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

Пара спойлеров от переводчика


Что такое representation learning?
В машинном обучении, feature learning или representation learning — это набор техник которые позволяют системе автоматически исследовать факторы необходимы для определения функций или классификации на основе сырых данных. Это заменяет ручной feature engineering и позволяет машине как и изучать функции, так и использовать их для выполнения конкретных задач.

Feature learning может быть “под наблюдением” и “без наблюдения”:

  • В feature learning под наблюдением (supervised feature learning), функции изучаются с использованием размеченных входящих данных.
  • В feature learning без наблюдения (unsupervised feature learning), функции изучаются на основе неразмеченных данных.

источник Wikipedia

Что такое latent space (латентное пространство)?
Слово “латентный” здесь означает “скрытый”. В этом контексте оно чаще всего используется в машинном обучении — вы наблюдаете какие-нибудь данные, которые находятся в пространстве, которое вы можете наблюдать, и вы хотите преобразовать их в скрытое пространство, где сходные точки данных находятся ближе друг к другу.

Для примера рассмотрим 4 изображения:



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

Бонус: Посмотрите видео Ксандера о преодолении редких наград в Deep RL (первая задача, выделенная выше).


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

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

Я считаю, что вслед за успехом Deep RL в истории AlphaGo (особенно учитывая недавние результаты AlphaFold), RL постепенно начнет применяться в реальных бизнес-приложениях, которые принесут практическую ценность за границами академического пространства, но сначала область применения будет ограничена приложениями, в которых имеются точные симуляции для масштабного виртуального обучения этих агентов (например, обнаружение лекарств, оптимизация архитектуры электронных чипов, маршрутизация транспортных средств и пакетов, и другие).

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

AI для хороших мальчиков – движение к “этичному” AI


Представьте мир, управляемый алгоритмами, которые определяют каждое действие человека. Не самый приятный сценарий? Этика в AI — это тема, которую мы всегда обсуждали в Analytics Vidhya, но она теряется на фоне всех технических дискуссий, в то время, как должна рассматриваться наравне с другими темами.

В этом году довольно много организаций оказались в глупом положении после скандала с Cambridge Analytica (Facebook) и внутренних противоречий в Google о разработке оружия, возглавивших список скандалов.

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

Кампании от Google и Microsoft


Было радостно видеть, что крупные корпорации сделали акцент на этическую сторону AI (хотя путь, который привел их к этому моменту, был не очень изящным). Обратите внимание на руководства и принципы, опубликованные некоторыми из компаний:


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

Как GDPR изменил правила игры


GDPR (General Data Protection Regulation) определенно оказал влияние на способ сбора данных для создания AI приложений. GDPR появился в этой игре, чтобы обеспечить больший контроль пользователей над их данными (какая информация собирается и распространяется о них).

Так как это повлияет на AI? Хорошо, если исследователи в области данных не получат данные или их будет недостаточно, построение любой модели не начнётся. Это, безусловно, положило начало тому, как работали социальные платформы и другие сайты. GDPR создал замечательный пример, “расставив все точки над i”, но ограничил полезность AI для многих платформ.

Этические тренды в AI на 2019 год


В этой области очень много серых пятен. Мы должны объединиться как общество, чтобы интегрировать этику в AI проекты. Как мы можем это сделать? Основатель и генеральный директор Analytics Vidhya Кунал Джейн подчеркнул в своем выступлении на DataHack Summit 2018, что нам нужно будет разработать концепцию, которой могут следовать другие.

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

Заключение


Impactful — единственное слово, которое кратко описывает удивительные события в 2018 году. Я стал активным пользователем ULMFiT в этом году, и я с нетерпением жду возможности поскорее изучить BERT. Действительно удивительное время.

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




К сожалению, не доступен сервер mySQL