Как стать автором
Поиск
Написать публикацию
Обновить
776.33

Машинное обучение *

Основа искусственного интеллекта

Сначала показывать
Порог рейтинга
Уровень сложности

Deep Learning — что же делать, кого бить

Время на прочтение3 мин
Количество просмотров22K
Нигде, наверно, нет такой насущной необходимости в синергии знаний разных областей науки — как в области машинного обучения и Deep Learning. Достаточно открыть капот TensorFlow и ужаснуться — огромное количество кода на python, работающее с тензорами внутри… C++, вперемешку с numpy, для выкладки в продакшн требующее чуток покодить «на плюсах», вприкуску с bazel (это так волнует, всю жизнь мечтал об этом!). И другая крайность — ребята из Deeplearning4j прокляли python к чертовой матери и вращают тензоры на старой и доброй java. Но дальше всех ушли, похоже, студенты из университета Нью-Йорка — люди, причем не только студенты, причем давно и серьезно жгут на Luajit + nginx (аминь по католически). Ситуация осложняется недавним демаршем Google DeepMind в отношении «дедушки torch»: все проекты переводят на свой внутренний движок, родившийся из DistBelief.
Полнейший хаос и бардак.
Читать дальше →

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Время на прочтение8 мин
Количество просмотров157K
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →

Машинное обучение для прогнозирования тенниса: часть 1

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

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



Читать дальше →

Сколько нужно нейронов, чтобы распознать сводку моста?

Время на прочтение4 мин
Количество просмотров39K

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


После второго "опоздания" на мосты, я задумался об источниках информации о досрочной сводке мостов. Одним из пришедших в голову вариантов была информация с публичных веб-камер. Вооружившись этими данными и остаточными знаниями со специализации по ML от МФТИ и Яндекса, я решил попробовать решить задачу "в лоб".


0, Дворцовый
Картинки и кишочки под катом

Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

Время на прочтение12 мин
Количество просмотров98K
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →

Летняя практика: Топ-10 курсов Microsoft Virtual Academy

Время на прочтение3 мин
Количество просмотров15K
Двигаемся дальше и продолжаем прокачивать скиллы в виртуальной академии Microsoft MVA. В прошлой подборке были самые интересные курсы для новичков, сегодня вы узнаете популярные курсы для подготовленных специалистов: Windows 10 в корпоративной сети, JSON и C#, использование Docker-контейнеров в облаке Microsoft Azure, обеспечение катастрофоустойчивости в приложениях, виртуализация серверов Windows Server Hyper-V и System Center, импортирование локальной системы Linux в облако, написание скриптов в PowerShell и использование технологии PowerShell Desired State Configuration, а также о LINQ, Data Science и Machine Learning.



Читать дальше →

Что такое деревья поведения и как они используются

Время на прочтение5 мин
Количество просмотров30K


/ фото Harry Li CC

Нас в компании «ИТ-ГРАД» очень интересуют вопросы искусственного интеллекта. Мы уже затрагивали тему автопилотируемых автомобилей, а неделю назад публиковали материал, в котором рассказывали о новых достижениях ученых и разработчиков в сфере ИИ, а также об опасениях скептиков.

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

Машинное обучение с помощью TMVA (ROOT)

Время на прочтение4 мин
Количество просмотров4.4K

В последние пару лет только и слышно о том, что Python и scikit-learn являются неким золотым стандартом в data science.
Я же хочу рассказать Вам о возможности альтернативного развития в области machine learning, библиотеке написанной на С++.
TMVA (Toolkit for Multivariate Data Analysis with ROOT) — open-source библиотека алгоритмов машинного обучения, которая идёт в дополнение к пакету анализа больших данных ROOT, соответственно устанавливается вместе с ним. Про установку подробно написано в мануале, поэтому мы не будем рассматривать этот момент.

Читать дальше →

Лучшие пакеты для машинного обучения в R, часть 2

Время на прочтение6 мин
Количество просмотров11K
Один из наиболее частых вопросов, с которыми сталкиваются специалисты по обработке и анализу данных — «Какой язык программирования лучше всего использовать для решения задач, связанных с машинным обучением?» Ответ на этот вопрос всегда приводит к сложному выбору между R, Python и MATLAB. Вообще говоря, никто не может дать объективный ответ, какой же язык программирования лучше. Конечно, язык, который вы выбираете для машинного обучения, зависит от ограничений конкретной задачи и данных, предпочтений самого специалиста и тех методов машинного обучения, которые нужно будет применить. Согласно опросу о любимом инструменте пользователей Kaggle для решения задач анализа данных R предпочитают 543 из 1714.

Сейчас в CRAN доступен 8341 пакет. Кроме CRAN, есть и другие репозитории с большим количеством пакетов. Синтаксис для установки любого из них прост: install.packages(“Name_Of_R_Package”).

Вот несколько пакетов, без которых вы вряд ли обойдетесь, как специалист по анализу данных: dplyr, ggplot2, reshape2. Безусловно, это не полный список. В этой статье мы подробнее остановимся на пакетах, применяемых в машинном обучении.
Читать дальше →

MLBootCamp «Оценка производительности». Очень простой и быстрый вариант решения

Время на прочтение5 мин
Количество просмотров4.5K
В этой заметке хочу поделиться своей идеей решения задачи MLBootCamp «Оценка производительности» от Mail.ru. Главное достоинство этого способа — в его простоте и скорости выполнения скрипта. И хотя он не сможет соревноваться в точности с победителями соревнования (мои поздравления!), но может оказаться полезным на практике, если несколько десятых процента не являются критичными, или отправной точкой для дальнейшего развития. Скрипт написан на R.

Читать дальше →

Самообучение шахматной программы

Время на прочтение13 мин
Количество просмотров27K
Здравствуй, Хабр!

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

К сожалению, непосредственная подстановка скорректированных значений для фигур не усилила программу автора — во всяком случае, больше, чем в рамках статистической погрешности. Применение же исходного метода «в лоб» к другим параметрам оценочной функции давало несколько абсурдные результаты, алгоритм оптимизации явно нуждался в некоторой доработке. Тем временем, автор решил, что очередной релиз его движка станет заключительным в длинной серии версий, берущих своё начало в коде десятилетней давности. Была выпущена версия GreKo 2015, и дальнейшие изменения в ближайшем будущем не планировались.

Картинка для привлечения внимания

Всем интересующихся тем, что было дальше — после просмотра картинки для привлечения внимания добро пожаловать под кат.
Читать дальше →

Яндекс.Толока. Как люди помогают обучать машинный интеллект

Время на прочтение10 мин
Количество просмотров101K
Вот уже полтора года в Яндексе для совершенствования поисковых алгоритмов и технологий машинного интеллекта применяется платформа Толока. Может показаться удивительным, но все современные технологии машинного обучения в той или иной степени нуждаются в человеческих оценках.

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



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

Решение задачи «Оценка производительности» mlbootcamp.ru

Время на прочтение4 мин
Количество просмотров4.7K
Осталось менее трех дней до окончания конкурса «Оценка производительности». Возможно, данная статья кому-то поможет улучшить свое решение. Суть задачи — предсказать время умножения двух матриц на разных вычислительных системах. В качестве оценки качества предсказания берется наименьшая средняя относительная ошибка MAPE.

На текущий момент первое место — 4.68%. Ниже хочу описать свой путь к 6.69% (а это уже 70+ место).
Читать дальше →

Ближайшие события

Лучшие пакеты для машинного обучения в R, часть 1

Время на прочтение5 мин
Количество просмотров19K
Один из наиболее частых вопросов, с которыми сталкиваются специалисты по обработке и анализу данных — «Какой язык программирования лучше всего использовать для решения задач, связанных с машинным обучением?» Ответ на этот вопрос всегда приводит к сложному выбору между R, Python и MATLAB. Вообще говоря, никто не может дать объективный ответ, какой же язык программирования лучше. Конечно, язык, который вы выбираете для машинного обучения, зависит от ограничений конкретной задачи и данных, предпочтений самого специалиста и тех методов машинного обучения, которые нужно будет применить. Согласно опросу о любимом инструменте пользователей Kaggle для решения задач анализа данных R предпочитают 543 из 1714.

Сейчас в CRAN доступен 8341 пакет. Кроме CRAN, есть и другие репозитории с большим количеством пакетов. Синтаксис для установки любого из них прост: install.packages(“Name_Of_R_Package”).

Вот несколько пакетов, без которых вы вряд ли обойдетесь, как специалист по анализу данных: dplyr, ggplot2, reshape2. Безусловно, это не полный список. В этой статье мы подробнее остановимся на пакетах, применяемых в машинном обучении.
Читать дальше →

Hello, TensorFlow. Библиотека машинного обучения от Google

Время на прочтение11 мин
Количество просмотров229K

tensorflow


Проект TensorFlow масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:


  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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


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

Читать дальше →

Kaggle: История о том как мы учились предсказывать релевантность поисковых запросов и заняли 3-е место

Время на прочтение14 мин
Количество просмотров22K
kaggle-monster2

Превью


Здравствуй, Хабр! 25-го апреля 2016 года закончилось 3-х месячное напряженное соревнование Home Depot Product Search Relevance в котором нашей команде Turing Test (Igor Buinyi, Kostiantyn Omelianchuk, Chenglong Chen) удалось не только неплохо разобраться с Natural Language Processing и ML, но и занять 3-е место из 2125 команд. Полное описание нашего решения и код доступны тут, краткое интервью тут, а цель этой публикации не только рассказать о решении, которое принесло нам такой результат, но и о тех трудностях и переживаниях, через которые нам довелось пройти во время соревнования.
Читать дальше →

Accord.Net: ищем ошибку в коде, из-за которой машины поработят человечество

Время на прочтение16 мин
Количество просмотров13K

Статьи о проверке проектов с открытым исходным кодом — вещь полезная. Кто-то, в том числе и разработчики, узнает об ошибках, содержащихся в проекте, кто-то узнает о методологии статического анализа и начнет применять её для повышения качества своего кода. Для нас же это прекрасный способ популяризации анализатора PVS-Studio, а заодно возможность его дополнительного тестирования. На этот раз я проверил платформу Accord.Net и нашёл в коде много интересных фрагментов.
Читать дальше →

Машинное обучение вместо DPI. Строим классификатор трафика

Время на прочтение10 мин
Количество просмотров30K
image

Вряд ли можно представить мир современных сетевых технологий без DPI (deep packet inspection – глубокий анализ пакетов). На нём держатся системы обнаружения сетевых атак, львиная доля политик безопасности корпоративных сетей, шейпинг и блокировка пользовательского трафика оператором связи – да-да, чтобы выполнять требования Роскомнадзора, средства DPI обязан иметь каждый провайдер.

И всё-таки, при всей своей востребованности, DPI имеет некоторые недостатки. Главный из них в том, что средствам DPI необходимо видеть полезную нагрузку анализируемых пакетов. А что делать, когда клиент использует шифрование? Или, например, если у нас нет DPI здесь и сейчас, но в перспективе потребуется проводить какой-то анализ текущего по сети трафика – тогда нам остаётся только сохранять всю полезную нагрузку для последующего анализа, что очень неудобно.

В данной статье я хочу предложить альтернативный способ решения одной из главных задач DPI – определения протокола прикладного уровня – на основе очень маленького количества информации, при этом не сверяясь со списком широко известных портов (well-known ports) и не глядя в полезную нагрузку пакетов. Вообще.
Читать дальше →

Открыт приём заявок на VIII Летнюю Школу высокопроизводительных вычислений в области компьютерного зрения

Время на прочтение2 мин
Количество просмотров2.5K
image
Занятия начнутся 15 августа и продлятся ровно одну неделю. К участию в школе приглашаются студенты c уровнем образования не ниже бакалавриата или учащиеся 3-4 курса технических вузов. Все подробности под катом
Читать дальше →

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

Время на прочтение6 мин
Количество просмотров7.6K

Авторы публикации — Дмитрий Сергеев и Юлия Петропавловская.

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

image


Читать дальше →

Вклад авторов