На что способны алгоритмы машинного обучения, мы уже выяснили, что им не под силу – в общих чертах разобрались. В этой статье журналист Теплицы Юлия Каленкова расскажет об инструментах работы с этими алгоритмами.
Для машинного обучения действует очевидное правило: сложнее данные – сложнее алгоритм. Простые данные – текст, таблицы, цифры – обладают понятными признаками. Для работы с ними используется классическое обучение – с учителем (Supervised) и без (Unsupervised Learning). Для картинок, видео и других сложных данных обычно используют нейронные сети. Определение объектов на фото и видео, распознавание и синтез речи, обработка изображений, машинный перевод – самые типичные сферы их применения.
Нейросети обычно сравнивают с мозгом человека, но сходство, пожалуй, только в том, что это набор нейронов и связей между ними. Искусственный нейрон представляет собой функцию с несколькими входами и одним выходом. Нейрон берет данные на входе, выполняет функцию и отдает результат на выходе. Это примитивное объяснение, чуть подробнее расскажет видео:
Нейросети – один из старейших алгоритмов машинного обучения. О первом нейроне, как о ячейке нейронной сети, заговорили Уоррен Маккалок (Warren Sturgis McCulloch) и Уолтер Питтс (Walter Pitts) в 1943 году. В этой области то разгорался огонь новых исследований, то наступала Зима искусственного интеллекта.
Оказалось, что с анализом естественной информации (а это все, что нас окружает: язык, речь, изображение, видео) нейронные сети справляются лучше, чем другие алгоритмы. Наступила эра глубокого машинного обучения, по сути, это работа с многослойными искусственными нейронными сетями.
Еще по теме: Что в черном ящике? Проблемы машинного обучения
Принципы действия нейронных сетей демонстрирует Teachable Machine – образовательный проект Google. Используя библиотеку deeplearn.js, система учится распознавать объекты при помощи веб-камеры компьютера. После обучения сервис сигнализирует о том, что «узнал объект» – через GIF-анимацию, звуковые эффекты или голосовые сообщения. Для создания рабочего варианта нейросети потребуются знания Python, одного из наиболее распространенных языков программирования.
Сегодня не так часто задаются вопросом, какое обучение считается глубоким. Однако нередко можно услышать о библиотеках глубокого обучения, вроде Keras и TensorFlow. Это наиболее популярные фреймворки, но не единственные.
Выбор конкретного инструмента зависит от скорости обучения (время обучения нейросетевых моделей); скорости классификации (время классификации одного изображения); гибкости (настройки связей между слоями, установки параметров методов, а также наличие различных способов обработки данных); имеющейся документации и обучающих материалов.
Как работает Open Recycle Bot
Теплица уже писала об Open Recycle Bot – первом чат-боте в России, использующем технологию машинного обучения Tensor Flow. Сервис облегчает раздельный сбор мусора. В ответ на фотографию, название или аудиосообщение бот консультирует о возможностях переработки и находит ближайший пункт приема вторсырья. Проект стартовал 5 марта 2017 года в Санкт-Петербурге в рамках хакатона Теплицы Open & Big Data Hackathon и был продолжен на AI Hackathon.
Подробнее о работе над Open Recycle Bot рассказал один из его создателей Вадим Евард: «Задача была следующая: по фотографии бытовых отходов – обычного мусора – определить, к какому из классов он относится. Мы использовали transfer learning (технология переноса обучения: данные одной нейросети используются для обучения другой). За основу взяли скрипт retrain.py из примеров использования TensorFlow. Основная работа заключалась в том, чтобы собрать большой датасет – набор картинок нужных классов (выборку).
Еще по теме: На что способны алгоритмы? Возможности машинного обучения
С помощью скрипта переобучения создали нейросеть, которая справляется с задачей распознавания мусора. Мы сделали бот для Telegram и приложение для Android. Пользователь делает фотографию в нашем приложении или отправляет уже готовый бот. Приложение/бот отправляет запрос серверу, на котором запущена наша нейросеть. Она распознает по фотографии вид мусора, отвечает приложению/боту, и пользователь видит сообщение: «Перед тобой стекло, оно перерабатывается следующим образом…».
По словам Вадима, нейросеть можно представить как структуру из отдельных слоев нейронов. Первые слои осуществляют первичную обработку поступившего на вход изображения, при этом чем глубже слой, тем более сложные признаки алгоритм анализирует. Библиотеки глубокого обучения используются для создания и тренировки нейронных сетей.
«Фреймворки и платформы машинного обучения позволяют сократить время на реализацию проекта. Но в любом случае до начала работы важно проанализировать, что конкретно нужно получить на выходе, – это задача для аналитика», – резюмирует Вадим.
База знаний
- Курс Deep Learning with Tensorflow от Big Data University.
- Статьи руководителя группы Tesla Vision, занимающейся разработкой искусственного интеллекта, Андрея Карпати (Andrej Karpathy): Hacker’s guide to Neural Networks, ConvNetJS CIFAR-10 demo, ConvNetJS Deep Q Learning Demo.
- Статьи «Зоопарк архитектур нейронных».
Подробнее узнать, какие задачи решает машинное обучение, а также протестировать идеи и создать прототип можно будет на хакатоне Теплицы в Санкт-Петербурге. Приглашаем дата-специалистов, программистов, дизайнеров, исследователей и активных горожан.