Основы машинного обучения – Машинное обучение — это легко / Habr

Содержание

Машинное обучение — это легко / Habr

В данной статье речь пойдёт о машинном обучении в целом и взаимодействии с датасетами. Если вы начинающий, не знаете с чего начать изучение и вам интересно узнать, что такое «датасет», а также зачем вообще нужен Machine Learning и почему в последнее время он набирает все большую популярность, прошу под кат. Мы будем использовать Python 3, так это как достаточно простой инструмент для изучения машинного обучения.

Для кого эта статья?


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

В цифрах


С каждым годом растёт потребность в изучении больших данных как для компаний, так и для активных энтузиастов. В таких крупных компаниях, как Яндекс или Google, всё чаще используются такие инструменты для изучения данных, как язык программирования R, или библиотеки для Python (в этой статье я привожу примеры, написанные под Python 3). Согласно Закону Мура (а на картинке — и он сам), количество транзисторов на интегральной схеме удваивается каждые 24 месяца. Это значит, что с каждым годом производительность наших компьютеров растёт, а значит и ранее недоступные границы познания снова «смещаются вправо» — открывается простор для изучения больших данных, с чем и связано в первую очередь создание «науки о больших данных», изучение которого в основном стало возможным благодаря применению ранее описанных алгоритмов машинного обучения, проверить которые стало возможным лишь спустя полвека. Кто знает, может быть уже через несколько лет мы сможем в абсолютной точности описывать различные формы движения жидкости, например.

Анализ данных — это просто?


Да. А так же интересно. Наряду с особенной важностью для всего человечества изучать большие данные стоит относительная простота в самостоятельном их изучении и применении полученного «ответа» (от энтузиаста к энтузиастам). Для решения задачи классификации сегодня имеется огромное количество ресурсов; опуская большинство из них, можно воспользоваться средствами библиотеки Scikit-learn (SKlearn). Создаём свою первую обучаемую машину:
clf = RandomForestClassifier() clf.fit(X, y)

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

— Если все так просто, почему до сих пор не каждый предсказывает, например, цены на валюту?

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

Ближе к делу


— Получается, зарабатывать на этом деле я не сразу смогу?

Да, до решения задач за призы в $100 000 нам ещё далеко, но ведь все начинали с чего-то простого.

Итак, сегодня нам потребуются:

  • Python 3 (с установленной pip3)
  • Jupyter
  • SKlearn, NumPy и matplotlib

Если чего-то нет: ставим всё за 5 минут
Для начала, скачиваем и устанавливаем Python 3 (при установке не забудьте поставить pip и добавить в PATH, если скачали установщик Windows). Затем, для удобства был взят и использован пакет Anaconda, включающий в себя более 150 библиотек для Python (ссылка на скачивание). Он удобен для использования Jupyter, библиотек numpy, scikit-learn, matplotlib, а так же упрощает установку всех. После установки, запускаем Jupyter Notebook через панель управления Anaconda, или через командную строку(терминал): «jupyter notebook».

Дальнейшее использование требует от читателя некоторых знаний о синтаксисе Python и его возможностях (в конце статьи будут представлены ссылки на полезные ресурсы, среди них и «основы Python 3»).

Как обычно, импортируем необходимые для работы библиотеки:

import numpy as np
from pandas import read_csv as read

— Ладно, с Numpy всё понятно. Но зачем нам Pandas, да и еще read_csv?

Иногда бывает удобно «визуализировать» имеющиеся данные, тогда с ними становится проще работать. Тем более, большинство датасетов с популярного сервиса Kaggle собрано пользователями в формате CSV.

А вот так выглядит визуализированный pandas'ом датасет

Здесь колонка Activity показывает, идёт реакция или нет (1 при положительном, 0 при отрицательном ответе). А остальные колонки — множества признаков и соответствующие им значения (различные процентные содержания веществ в реакции, их агрегатные состояния и пр.)

— Помнится, ты использовал слово «датасет». Так что же это такое?

Датасет — выборка данных, обычно в формате «множество из множеств признаков» → «некоторые значения» (которыми могут быть, например, цены на жильё, или порядковый номер множества некоторых классов), где X — множество признаков, а y — те самые некоторые значения. Определять, например, правильные индексы для множества классов — задача классификации, а искать целевые значения (такие как цена, или расстояния до объектов) — задача ранжирования. Подробнее о видах машинного обучения можно прочесть в статьях и публикациях, ссылки на которые, как и обещал, будут в конце статьи.

Знакомимся с данными


Предложенный датасет можно скачать здесь. Ссылка на исходные данные и описание признаков будет в конце статьи. По представленным параметрам нам предлагается определять, к какому сорту относится то или иное вино. Теперь мы можем разобраться, что же там происходит:
path = "%путь к файлу%/wine.csv" data = read(path, delimiter=",") data.head()

Работая в Jupyter notebook, получаем такой ответ:
Это значит, что теперь нам доступны данные для анализа. В первом столбце значения Grade показывают, к какому сорту относится вино, а остальные столбцы — признаки, по которым их можно различать. Попробуйте ввести вместо data.head() просто data — теперь для просмотра вам доступна не только «верхняя часть» датасета.

Простая реализация задачи на классификацию


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

Посмотрим на реализацию (каждая выдержка из кода — отдельный Cell в notebook):
X = data.values[::, 1:14]
y = data.values[::, 0:1]

from sklearn.cross_validation import train_test_split as train
X_train, X_test, y_train, y_test = train(X, y, test_size=0.6)

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=100, n_jobs=-1)
clf.fit(X_train, y_train)
clf.score(X_test, y_test)

Создаем массивы, где X — признаки (с 1 по 13 колонки), y — классы (0ая колонка). Затем, чтобы собрать тестовую и обучающую выборку из исходных данных, воспользуемся удобной функцией кросс-валидации train_test_split, реализованной в scikit-learn. С готовыми выборками работаем дальше — импортируем RandomForestClassifier из ensemble в sklearn. Этот класс содержит в себе все необходимые для обучения и тестирования машины методы и функции. Присваиваем переменной clf (classifier) класс RandomForestClassifier, затем вызовом функции fit() обучаем машину из класса clf, где X_train — признаки категорий y_train. Теперь можно использовать встроенную в класс метрику score, чтобы определить точность предсказанных для X_test категорий по истинным значениям этих категорий y_test. При использовании данной метрики выводится значение точности от 0 до 1, где 1 100% Готово!Про RandomForestClassifier и метод кросс-валидации train_test_split

При инициализации clf для RandomForestClassifier мы выставляли значения n_estimators=100, n_jobs = -1, где первый отвечает за количество деревьев в лесу, а второй — за количество участвующих в работе ядер процессора (при -1 задействованы все ядра, по умолчанию стоит 1). Так как мы работаем с данным датасетом и нам негде взять тестирующую выборку, используем train_test_split для «умного» разбиения данных на обучающую выборку и тестирующую. Подробнее про них можно узнать, выделив интересующий Вас класс или метод и нажав Shift+Tab в среде Jupyter.


— Неплохая точность. Всегда ли так получается?

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

— Слишком легко. Больше мяса!

Для наглядного просмотра результата обучения на данном датасете можно привести такой пример: оставив только два параметра, чтобы задать их в двумерном пространстве, построим график обученной выборки (получится примерно такой график, он зависит от обучения):


Да, с уменьшением количества признаков, падает и точность распознавания. И график получился не особенно-то красивым, но это и не решающее в простом анализе: вполне наглядно видно, как машина выделила обучающую выборку (точки) и сравнила её с предсказанными (заливка) значениями.Реализация здесь
from sklearn.preprocessing import scale
X_train_draw = scale(X_train[::, 0:2])
X_test_draw = scale(X_test[::, 0:2])

clf = RandomForestClassifier(n_estimators=100, n_jobs=-1)
clf.fit(X_train_draw, y_train)

x_min, x_max = X_train_draw[:, 0].min() - 1, X_train_draw[:, 0].max() + 1
y_min, y_max = X_train_draw[:, 1].min() - 1, X_train_draw[:, 1].max() + 1

h = 0.02

xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
            np.arange(y_min, y_max, h))

pred = clf.predict(np.c_[xx.ravel(), yy.ravel()])
pred = pred.reshape(xx.shape)

import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])

plt.figure()
plt.pcolormesh(xx, yy, pred, cmap=cmap_light)
plt.scatter(X_train_draw[:, 0], X_train_draw[:, 1], 
            c=y_train, cmap=cmap_bold)
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())

plt.title("Score: %.0f percents" % (clf.score(X_test_draw, y_test) * 100))
plt.show()


Предлагаю читателю самостоятельно узнать почему и как он работает.

Последнее слово


Надеюсь, данная статья помогла хоть чуть-чуть освоиться Вам в разработке простого машинного обучения на Python. Этих знаний будет достаточно, чтобы продолжить интенсивный курс по дальнейшему изучению BigData+Machine Learning. Главное, переходить от простого к углубленному постепенно. А вот полезные ресурсы и статьи, как и обещал:

Материалы, вдохновившие автора на создание данной статьи


Исторические очерки:
Подробнее про машинное обучение:
Изучаем python, или до работы с данными:
Однако для наилучшего освоения библиотеки sklearn пригодится знание английского: в этом источнике собраны все необходимые знания (так как это API reference).

Более углубленное изучение использования машинного обучения с Python стало возможным, и более простым благодаря преподавателям с Яндекса — этот курс обладает всеми необходимыми средствами объяснения, как же работает вся система, рассказывается подробнее о видах машинного обучения итд.

Файл сегодняшнего датасета был взят отсюда и несколько модифицирован.

Где брать данные, или «хранилище датасетов» — здесь собрано огромное количество данных от самых разных источников. Очень полезно тренироваться на реальных данных.

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

habr.com

Что такое машинное обучение и почему оно может лишить вас работы

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

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

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

Что такое машинное обучение

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

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

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

Quantamagazine.org

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

Почему машинное обучение — это важно

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

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

Помимо прочего, машины могут слушать нас и отвечать. Виртуальные ассистенты в наших смартфонах — будь то Siri, Cortana или Google Now — воплощают прорывы в машинной обработке естественного языка и продолжают развиваться.

Ibtimes.co.uk

Кроме того, компьютеры учатся писать. Алгоритмы машинного обучения уже генерируют новостные статьи. Они могут писать о финансах и даже спорте.

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

Как машинное обучение применяют сегодня

Алгоритмы машинного обучения уже способны впечатлить.

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

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

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

Недавно IBM опросиларуководителей автомобильных компаний. 74% из них ожидают появления на дорогах умных машин уже к 2025 году.

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

Чего ждать от машинного обучения в будущем

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

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

Почему вам стоит следить за машинным обучением

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

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

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

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

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

Таким образом, нам нужно следить за тем, как машинное обучение меняет рабочий процесс. И неважно, кто вы: юрист, медик, сотрудник службы поддержки, водитель грузовика или кто-то ещё. Перемены могут коснуться каждого.

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

lifehacker.ru

Машинное обучение для людей :: Разбираемся простыми словами :: Блог Вастрик.ру

💰 Спонсор статьи — Фонд развития онлайн-образования

Если вы хотите углубиться в машинное обучение и научиться применять его на практикте, то ребята запустили курс «Машинное обучение и анализ данных» с преподавателями из Яндекса.

Только для читателей блога скидка 8600руб по промокоду VAS3K при оплате всей специализации сразу. Промокод действует до 15 октября 2018 года.

Зачем обучать машины

Снова разберём на Олегах.

Предположим, Олег хочет купить автомобиль и считает сколько денег ему нужно для этого накопить. Он пересмотрел десяток объявлений в интернете и увидел, что новые автомобили стоят около $20 000, годовалые — примерно $19 000, двухлетние — $18 000 и так далее.

В уме Олег-аналитик выводит формулу: адекватная цена автомобиля начинается от $20 000 и падает на $1000 каждый год, пока не упрётся в $10 000.

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

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

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

Так родилось машинное обучение.

Три составляющие обучения

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

Итак, если мы хотим обучить машину, нам нужны три вещи:

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

Данные собирают как могут. Кто-то вручную — получается дольше, меньше, зато без ошибок. Кто-то автоматически — просто сливает машине всё, что нашлось, и верит в лучшее. Самые хитрые, типа гугла, используют своих же пользователей для бесплатной разметки. Вспомните ReCaptcha, которая иногда требует «найти на фотографии все дорожные знаки» — это оно и есть.

За хорошими наборами данных (датасетами) идёт большая охота. Крупные компании, бывает, раскрывают свои алгоритмы, но датасеты — крайне редко.

Признаки Мы называем их фичами (features), так что ненавистникам англицизмов придётся страдать. Фичи, свойства, характеристики, признаки — ими могут быть пробег автомобиля, пол пользователя, цена акций, даже счетчик частоты появления слова в тексте может быть фичей.

Машина должна знать, на что ей конкретно смотреть. Хорошо, когда данные просто лежат в табличках — названия их колонок и есть фичи. А если у нас сто гигабайт картинок с котами? Когда признаков много, модель работает медленно и неэффективно. Зачастую отбор правильных фич занимает больше времени, чем всё остальное обучение. Но бывают и обратные ситуации, когда кожаный мешок сам решает отобрать только «правильные» на его взгляд признаки и вносит в модель субъективность — она начинает дико врать.

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

Обучение vs Интеллект

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

Искусственный интеллект — название всей области, как биология или химия.

Машинное обучение — это раздел искусственного интеллекта. Важный, но не единственный.

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

Глубокое обучение — архитектура нейросетей, один из подходов к их построению и обучению. На практике сегодня мало кто отличает, где глубокие нейросети, а где не очень. Говорят название конкретной сети и всё.

Сравнивать можно только вещи одного уровня, иначе получается полный буллщит типа «что лучше: машина или колесо?» Не отождествляйте термины без причины, чтобы не выглядеть дурачком.

Вот что машины сегодня умеют, а что не под силу даже самым обученным.

Машина может Машина не может
Предсказывать Создавать новое
Запоминать Резко поумнеть
Воспроизводить Выйти за рамки задачи
Выбирать лучшее Убить всех людей

Лень читать лонгрид — повтыкайте хотя бы в картинку, будет полезно.

Думаю потом нарисовать полноценную настенную карту со стрелочками и объяснениями, что где используется, если статья зайдёт.

И да. Классифицировать алгоритмы можно десятком способов. Я выбрал этот, потому что он мне кажется самым удобным для повествования. Надо понимать, что не бывает так, чтобы задачу решал только один метод. Я буду упоминать известные примеры применений, но держите в уме, что «сын маминой подруги» всё это может решить нейросетями.

Начну с базового обзора. Сегодня в машинном обучении есть всего четыре основных направления.

Первые алгоритмы пришли к нам из чистой статистики еще в 1950-х. Они решали формальные задачи — искали закономерности в циферках, оценивали близость точек в пространстве и вычисляли направления.

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

Да, крупные корпорации любят решать все проблемы нейросетями. Потому что лишние 2% точности для них легко конвертируются в дополнительные 2 миллиарда прибыли. Остальным же стоит включать голову. Когда задача решаема классическими методами, дешевле реализовать сколько-нибудь полезную для бизнеса систему на них, а потом думать об улучшениях. А если вы не решили задачу, то не решить её на 2% лучше вам не особо поможет.

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

При всей своей популярности, классические алгоритмы настолько просты, что их легко объяснить даже ребёнку. Сегодня они как основы арифметики — пригождаются постоянно, но некоторые всё равно стали их забывать.

Классическое обучение любят делить на две категории — с учителем и без. Часто можно встретить их английские наименования — Supervised и Unsupervised Learning.

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

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

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

Классификация

«Разделяет объекты по заранее известному признаку. Носки по цветам, документы по языкам, музыку по жанрам»

Сегодня используют для:

  • Спам-фильтры
  • Определение языка
  • Поиск похожих документов
  • Анализ тональности
  • Распознавание рукописных букв и цифр
  • Определение подозрительных транзакций

Популярные алгоритмы: Наивный Байес, Деревья Решений, Логистическая Регрессия, K-ближайших соседей, Машины Опорных Векторов

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

Классификация вещей — самая популярная задача во всём машинном обучении. Машина в ней как ребёнок, который учится раскладывать игрушки: роботов в один ящик, танки в другой. Опа, а если это робот-танк? Штош, время расплакаться и выпасть в ошибку.

Старый доклад Бобука про повышение конверсии лендингов с помощью SVM

Для классификации всегда нужен учитель — размеченные данные с признаками и категориями, которые машина будет учиться определять по этим признакам. Дальше классифицировать можно что угодно: пользователей по интересам — так делают алгоритмические ленты, статьи по языкам и тематикам — важно для поисковиков, музыку по жанрам — вспомните плейлисты Спотифая и Яндекс.Музыки, даже письма в вашем почтовом ящике.

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

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

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

Да, все догадались, где здесь данные и какой надо предсказать результат. Обучим машину, найдём закономерности, получим ответ — вопрос не в этом. Проблема в том, что банк не может слепо доверять ответу машины, без объяснений. Вдруг сбой, злые хакеры или бухой админ решил скриптик исправить.

Для этой задачи придумали Деревья Решений. Машина автоматически разделяет все данные по вопросам, ответы на которые «да» или «нет». Вопросы могут быть не совсем адекватными с точки зрения человека, например «зарплата заёмщика больше, чем 25934 рубля?», но машина придумывает их так, чтобы на каждом шаге разбиение было самым точным.

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

Деревья нашли свою нишу в областях с высокой ответственностью: диагностике, медицине, финансах.

Два самых популярных алгоритма построения деревьев — CART и C4.5.

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

Но самым популярным методом классической классификации заслуженно является Метод Опорных Векторов (SVM). Им классифицировали уже всё: виды растений, лица на фотографиях, документы по тематикам, даже странных Playboy-моделей. Много лет он был главным ответом на вопрос «какой бы мне взять классификатор».

Идея SVM по своей сути проста — он ищет, как так провести две прямые между категориями, чтобы между ними образовался наибольший зазор. На картинке видно нагляднее:

У классификации есть полезная обратная сторона — поиск аномалий. Когда какой-то признак объекта сильно не вписывается в наши классы, мы ярко подсвечиваем его на экране. Сейчас так делают в медицине: компьютер подсвечивает врачу все подозрительные области МРТ или выделяет отклонения в анализах. На биржах таким же образом определяют нестандартных игроков, которые скорее всего являются инсайдерами. Научив компьютер «как правильно», мы автоматически получаем и обратный классификатор — как неправильно.

Сегодня для классификации всё чаще используют нейросети, ведь по сути их для этого и изобрели.

Правило буравчика такое: сложнее данные — сложнее алгоритм. Для текста, цифр, табличек я бы начинал с классики. Там модели меньше, обучаются быстрее и работают понятнее. Для картинок, видео и другой непонятной бигдаты — сразу смотрел бы в сторону нейросетей.

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

Регрессия

«Нарисуй линию вдоль моих точек. Да, это машинное обучение»

Сегодня используют для:

  • Прогноз стоимости ценных бумаг
  • Анализ спроса, объема продаж
  • Медицинские диагнозы
  • Любые зависимости числа от времени

Популярные алгоритмы: Линейная или Полиномиальная Регрессия

Регрессия — та же классификация, только вместо категории мы предсказываем число. Стоимость автомобиля по его пробегу, количество пробок по времени суток, объем спроса на товар от роста компании и.т.д. На регрессию идеально ложатся любые задачи, где есть зависимость от времени.

Регрессию очень любят финансисты и аналитики, она встроена даже в Excel. Внутри всё работает, опять же, банально: машина тупо пытается нарисовать линию, которая в среднем отражает зависимость. Правда, в отличии от человека с фломастером и вайтбордом, делает она это математически точно — считая среднее расстояние до каждой точки и пытаясь всем угодить.

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

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

Для желающих понять это глубже, но тоже простыми словами, рекомендую цикл статей Machine Learning for Humans

Обучение без учителя (Unsupervised Learning) было изобретено позже, аж в 90-е, и на практике используется реже. Но бывают задачи, где у нас просто нет выбора.

Размеченные данные, как я сказал, дорогая редкость. Но что делать если я хочу, например, написать классификатор автобусов — идти на улицу руками фотографировать миллион сраных икарусов и подписывать где какой? Так и жизнь вся пройдёт, а у меня еще игры в стиме не пройдены.

Когда нет разметки, есть надежда на капитализм, социальное расслоение и миллион китайцев из сервисов типа Яндекс.Толока, которые готовы делать для вас что угодно за пять центов. Так обычно и поступают на практике. А вы думали где Яндекс берёт все свои крутые датасеты?

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

Обучение без учителя, всё же, чаще используют как метод анализа данных, а не как основной алгоритм. Специальный кожаный мешок с дипломом МГУ вбрасывает туда кучу мусора и наблюдает. Кластеры есть? Зависимости появились? Нет? Ну штош, продолжай, труд освобождает. Тыж хотел работать в датасаенсе.

Кластеризация

«Разделяет объекты по неизвестному признаку. Машина сама решает как лучше»

Сегодня используют для:

  • Сегментация рынка (типов покупателей, лояльности)
  • Объединение близких точек на карте
  • Сжатие изображений
  • Анализ и разметки новых данных
  • Детекторы аномального поведения

Популярные алгоритмы: Метод K-средних, Mean-Shift, DBSCAN

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

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

Более сложные примеры кластеризации можно вспомнить в приложениях iPhoto или Google Photos, которые находят лица людей на фотографиях и группируют их в альбомы. Приложение не знает как зовут ваших друзей, но может отличить их по характерным чертам лица. Типичная кластеризация.

Правда для начала им приходится найти эти самые «характерные черты», а это уже только с учителем.

Сжатие изображений — еще одна популярная проблема. Сохраняя картинку в PNG, вы можете установить палитру, скажем, в 32 цвета. Тогда кластеризация найдёт все «примерно красные» пиксели изображения, высчитает из них «средний красный по больнице» и заменит все красные на него. Меньше цветов — меньше файл.

Проблема только, как быть с цветами типа Cyan ◼︎ — вот он ближе к зеленому или синему? Тут нам поможет популярный алгоритм кластеризации — Метод К-средних (K-Means). Мы случайным образом бросаем на палитру цветов наши 32 точки, обзывая их центроидами. Все остальные точки относим к ближайшему центроиду от них — получаются как бы созвездия из самых близких цветов. Затем двигаем центроид в центр своего созвездия и повторяем пока центроиды не перестанут двигаться. Кластеры обнаружены, стабильны и их ровно 32 как и надо было.

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

Хитрым задачам — хитрые методы. DBSCAN, например. Он сам находит скопления точек и строит вокруг кластеры. Его легко понять, если представить, что точки — это люди на площади. Находим трёх любых близко стоящих человека и говорим им взяться за руки. Затем они начинают брать за руку тех, до кого могут дотянуться. Так по цепочке, пока никто больше не сможет взять кого-то за руку — это и будет первый кластер. Повторяем, пока не поделим всех. Те, кому вообще некого брать за руку — это выбросы, аномалии. В динамике выглядит довольно красиво:

Как и классификация, кластеризация тоже может использоваться как детектор аномалий. Поведение пользователя после регистрации резко отличается от нормального? Заблокировать его и создать тикет саппорту, чтобы проверили бот это или нет. При этом нам даже не надо знать, что есть «нормальное поведение» — мы просто выгружаем все действия пользователей в модель, и пусть машина сама разбирается кто тут нормальный.

Работает такой подход, по сравнению с классификацией, не очень. Но за спрос не бьют, вдруг получится.

Уменьшение Размерности (Обобщение)

«Собирает конкретные признаки в абстракции более высокого уровня»

Сегодня используют для:

  • Рекомендательные Системы (★)
  • Красивые визуализации
  • Определение тематики и поиска похожих документов
  • Анализ фейковых изображений
  • Риск-менеджмент

Популярные алгоритмы: Метод главных компонент (PCA), Сингулярное разложение (SVD), Латентное размещение Дирихле (LDA), Латентно-семантический анализ (LSA, pLSA, GLSA), t-SNE (для визуализации)

Изначально это были методы хардкорных Data Scientist'ов, которым сгружали две фуры цифр и говорили найти там что-нибудь интересное. Когда просто строить графики в экселе уже не помогало, они придумали напрячь машины искать закономерности вместо них. Так у них появились методы, которые назвали Dimension Reduction или Feature Learning.

Проецируем 2D-данные на прямую (PCA)

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

Инструмент на удивление хорошо подошел для определения тематик текстов (Topic Modelling). Мы смогли абстрагироваться от конкретных слов до уровня смыслов даже без привлечения учителя со списком категорий. Алгоритм назвали Латентно-семантический анализ (LSA), и его идея была в том, что частота появления слова в тексте зависит от его тематики: в научных статьях больше технических терминов, в новостях о политике — имён политиков. Да, мы могли бы просто взять все слова из статей и кластеризовать, как мы делали с ларьками выше, но тогда мы бы потеряли все полезные связи между словами, например, что батарейка и аккумулятор, означают одно и то же в разных документах.

Точность такой системы — полное дно, даже не пытайтесь.

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

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

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

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

Поиск правил (ассоциация)

«Ищет закономерности в потоке заказов»

Сегодня используют для:

  • Прогноз акций и распродаж
  • Анализ товаров, покупаемых вместе
  • Расстановка товаров на полках
  • Анализ паттернов поведения на веб-сайтах

Популярные алгоритмы: Apriori, Euclat, FP-growth

vas3k.ru

что такое machine learning и как им овладеть — T&P

Смартфоны и компьютеры круглосуточно собирают информацию о поведении и предпочтениях каждого из нас, а размеры баз крупных онлайн-магазинов, банков и международных сотовых операторов измеряются десятками, а то и сотнями терабайт. Данные позволяют находить неожиданные связи, предсказывать выгодные шаги или делать открытия. Прежде полноценный анализ таких масштабов был невозможен из-за недостатка мощности и подходящих инструментов, но сейчас у нас есть облачные платформы серверов, фабрики GPU и специализированные программы, поэтому машинное обучение (и data science в целом) переживает мощный взрыв интереса. Рассказываем, что нужно знать (и где получить эти знания), чтобы начать путь в этой области.

Простой анализ может показать, что твиттер президента Трампа ведут президент и его помощник, причем Трамп ответственен за наиболее сердитые твиты. Методы машинного обучения позволяют делать более сложные выводы. Система получает миллионы записей или объектов, обнаруживает в данных закономерности и использует их, чтобы предсказывать свойства новых данных. Если упрощать, системы машинного обучения учатся на данных, словно ребенок, который пытается отличить кошку от собаки, делая все новые попытки, пока не поймет, чем они отличаются, и не станет их узнавать в любом виде. Вот только в случае c machine learning примеров — миллиарды, а скорость такого обучения значительно быстрее, чем человек может себе представить.

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

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

С учителем и без: каким бывает машинное обучение

Адам Гейтгей в популярной серии постов о машинном обучении приводит хороший пример. Предположим, вы риелтор, продающий дома. За время работы у вас выработалось чутье, которое подсказывает, сколько стоит тот или иной дом, но передать это чутье новым сотрудникам не выйдет. Однако у вас есть статистика, показывающая, какие дома за сколько были проданы в прошлом. Входные характеристики дома — количество спален, район, площадь — и итоговая цена хорошо известны. Вы загружаете эти данные в алгоритм — и он вычисляет вес каждой характеристики дома на основании массива продаж. После этого машина делает предположение о стоимости нового, отсутствующего в базе дома. Это называют обучением с учителем (supervised machine learning): вы сами уже знаете соотношение, влияющее на цену, и позволяете компьютеру его рассчитать. У вас есть X и Y, а компьютер лишь находит связывающую их закономерность.

Другой тип машинного обучения — обучение без учителя (unsupervised machine learning). В этом случае у вас есть данные о домах, но о том, как они соотносятся с ценой, вы и не подозреваете. Однако анализ информации может обнаружить интересные закономерности в ценах по районам, по времени продаж и так далее. Такой тип машинного обучения, например, помогает найти сегменты пользователей в «свалке» из статистических данных, обнаружить похожих людей в соцсетях на основе их поведения или, наоборот, отметить аномалии в больших массивах, которые раньше не были очевидны. Алгоритм может вычленить похожие участки генов, определить поломку на основе необычного сочетания параметров машины или самолета или отлично сгруппировать рисунки, содержание которых ему при этом неизвестно.

Глубокое обучение (deep learning) включает работу с нейронными сетями. Нейронная сеть вступает в дело, когда входных параметров очень много, их взаимосвязь и расчет слишком сложны. В этом случае расчеты распараллеливаются между простыми процессорами, которые связаны между собой, — этот процесс проектировщики старались делать похожим на передачу данных между нейронами человека. Хороший пример использования нейронных сетей — распознавание лиц на разных фотографиях, поиск фотографий по слову или, как в этой работе стэнфордских исследователей, составление словесных описаний фото. Да, компьютеры вполне могут описать ваши снимки.

От НАСА до лесов Амазонии: где применяется machine learning (и нужно ли оно вам)

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

Движки рекомендаций используют и музыкальные сервисы — например, Spotify. С помощью machine learning можно определить жанр песни (анализируя уровни сигнала), на основе предыдущих лайков пользователя предложить ему песню, которая с высокой вероятностью его заинтересует, или на базе проигранного создать список похожих треков. Рекомендационные системы и изменение ленты на основе алгоритмов машинного обучения используются в Mail.ru, Facebook, Twitter, VKontakte, Instagram. Нельзя не упомянуть бизнесы, связанные с интернет-торговлей: так, до 35% выручки Amazon — заслуга рекомендательного сервиса (не говоря уж о том, что компания сама — поставщик сервисов и серверов для машинного обучения).

Голосовые помощники онлайн-сервисов и операционных систем — еще одна область применения machine learning. «Алиса» от «Яндекса», «Сири» от компании Apple, «Кортана» от Microsoft, яндексовская умная колонка и механизмы зарубежных умных домов — все они занимаются распознаванием речи и пытаются понять, что имел в виду пользователь. По мере прогресса «обучения» алгоритмов улучшается и их понимание семантики языка.

Распознавание образов — еще одна область применения. Соцсеть Pinterest с помощью машинного обучения обнаруживает сходство между фотографиями. Причем не только определяет, чтó находится на фото, но и классифицирует изображения, сравнивая с другими, чтобы выдать поток похожих фотографий. Facebook уже давно научился распознавать лица друзей на снимках, а полученные им патенты говорят, что соцсеть готова отправиться очень далеко в охоте за нашими голосами, деньгами и привычками.

Paypal c помощью машинного обучения борется с мошенничеством — оценка рисков проводится на основе накопленных о поведении пользователя данных. Схожая схема применяется в страховых компаниях и банках, где алгоритмы используются для скоринга.

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

Индейцы Амазонии используют мобильные приложения на основе машинного обучения для анализа звуков леса: алгоритм способен распознать стук топора, чтобы предотвратить незаконную вырубку.

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

Чемпионы в использовании машинного обучения — соцсети и поисковики. Например, Twitter умеет оптимизировать превью фотографий пользователя так, чтобы показывать самый интересный и важный элемент (а не пол или стену), анализировать эмоциональную окрашенность твитов (и использовать эти данные в маркетинговых исследованиях) — а еще предсказывать по твитам эпидемии. Google задействует его в самых разных сферах: формировании поисковой выдачи, анализе маркетинговой информации, управлении облачными серверами, переводе, распознавании образов, отлавливании спама в почте и соцсетях, построении маршрутов на картах и даже определении музыки, которая играет рядом с пользователем. Но не стоит думать, что машинное обучение — специфика IT-гигантов: крупные промышленные компании — тоже владельцы гигантских баз данных. Например, свое отделение машинного обучения есть у «Газпрома». Нефтяные компании постоянно собирают данные с датчиков в скважинах, а machine learning позволяет быстрее и эффективнее решить, как изменить способ добычи в зависимости от состояния скважины.

Кандидатский минимум: без чего нельзя стать специалистом по machine learning

Базовый набор для специалиста по машинному обучению таков:

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

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

Знание баз данных. Пригодится для создания моделей на основе разных источников — желательно понимать, как производится очистка и преобразование данных, иметь представление о разном типе баз или опыт работы с одной из них.

Знание хотя бы одного популярного языка программирования. Если вы новичок, начните с Python — это самый востребованный и удобный для ML-специалиста язык, его знания требуют работодатели, а кроме того, он прост в освоении. Но это не значит, что он единственный. Если вы квалифицированный программист, подберите инструмент под себя. Работать с машинным обучением можно на R, излюбленном аналитиками и специалистами баз данных, на Java, на Javascript, C++ , подходят Scala, SAS и т. д. Язык тут — инструмент для создания моделей, а не определяющий фактор.

Михаил Левин

директор по машинному интеллекту в «Яндекс.Маркете», преподаватель ШАД

Область машинного обучения очень перспективна, и начать карьеру в ней не так сложно, как может показаться на первый взгляд. Есть множество курсов и образовательных проектов, где вам помогут профессионалы в этой области. Например, наша Школа анализа данных (ШАД) существует уже 11 лет. При приеме мы проверяем знания математического анализа, линейной алгебры, теории вероятностей и базовых алгоритмов — все это необходимо, чтобы глубоко изучить machine learning. Другие предметы, которые будет изучать студент ШАДа, зависят от выбранного им направления: например, у тех, кто хочет стать разработчиком machine learning, в обязательной программе есть язык C++, а у тех, кто менее склонен к разработке систем и более склонен к аналитике, — Python.

Где изучать machine learning

Для выпускников и начинающих специалистов отличным опытом может стать интернатура: про программы стажировки часто не знают либо недооценивают их — а это отличная возможность получить работу и увидеть применение алгоритмов на практике. На IT-рынке сейчас огромный дефицит ML-специалистов, поэтому компании периодически проводят обучение студентов с последующим трудоустройством или берут интернов/стажеров. Например, этим занимается «Яндекс», EPAM, Сбербанк и др.

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

Курс «Машинное обучение» от Эндрю Ына

Если вы хотите понять, что такое машинное обучение и какие математические модели за ним стоят, то нет ничего лучше этого классического, объемного и в своем роде легендарного курса. Профессор Стэнфорда Эндрю Ын рассказывает о линейной и логистической регрессии, базе нейронных сетей, поиске аномалий и разных типах машинного обучения с квалификацией признанного эксперта. Пока это эталон. Кстати, недавно вышел его курс по Deep Learning для тех, кто хочет углубления знаний.

Курсы от Google

Компания всячески популяризует машинное обучение — ведет множество курсов на разных платформах, рассказывает о новых проектах в блоге. Бесплатный Machine Learning Crash Course дает основы machine learning на реальных примерах — от диагностики рака до исследования литературы XVIII века. Другой вариант — серия курсов по работе с облачной платформой Google, которая используется для машинного обучения.

Обзорные курсы от Kaggle

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

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

DataCamp

Это сайт, целиком посвященный data science, есть на нем и курсы по машинному обучению. Плюсы DataCamp в том, что курсы 1) несложные, 2) практически ориентированные. Можно построить простую модель, которая на основе предыдущих выборов пользователя предположит, какая спортивная машина будет популярной, а какая провалится в продаже, а можно рассмотреть применение моделирования в финансах или настройку нейронных сетей. На Datacamp есть курсы как под Python, так и под R. Почти все преподаватели — активно работающие в области data science специалисты. Полный доступ к платформе стоит $27 в месяц, которого вполне может хватить для ликбеза.

Еще больше курсов

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

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

Еще больше курсов ищите в нашей подборке.

theoryandpractice.ru

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

Искусственный интеллект и машинное обучение – одни из самых значимых технологических разработок последнего времени. Однако они до сих пор остаются недооцененными.

10 примеров использования машинного обучения

Хотите увидеть, как применяется машинное обучение в реальной жизни?

Ниже мы расскажем вам о 10 компаниях, которые эффективно используют новые технологии в своей стратегии.

1. Yelp – Курирование изображений

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

Классификация изображений по категориям фасад/интерьер кажется легкой задачей для человека, но компьютеру с ней справится совсем непросто.

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

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

2. Pinterest – Поиск контента

Основная функция соцсети Pinterest – курирование контента. И компания делает все возможное, чтобы повысить эффективность этого процесса, в том числе применяя машинное обучение.

В 2015 Pinterest приобрел Kosei – компанию, специализирующуюся на коммерческом применении машинного обучения (в частности, на поиске контента и алгоритмах рекомендаций).

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

3. Facebook – Армия чатботов

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

Любой разработчик может и запустить его на базе Facebook Messenger. Благодаря этому даже небольшие компании имеют возможность предлагать клиентам отличный сервис.

Конечно, это не единственная сфера применения машинного обучения в Facebook. AI приложения используются для фильтрации спама и контента низкого качества, также компания разрабатывает алгоритмы компьютерного зрения, которые позволяют компьютерам “читать” изображения.

4. Twitter – Новостная лента

Одно из самых значимых изменений в Twitter за последнее время – переход к новостной ленте на базе алгоритмов.

Теперь пользователи соцсети могут сортировать отображаемый контент по популярности или по времени публикации.

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

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

5. Google – Нейронные сети

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

Например, за последние годы Google занимались разработкой технологий, замедляющих старение, медицинских устройств и нейронных сетей.

Самое значимое достижение компании – создание в DeepMind машин, которые могут мечтать и создавать необычные изображения.

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

6. Edgecase – Показатели конверсии

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

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

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

7. Baidu – Будущее голосового поиска

Google не единственный поисковой гигант, который осваивает машинное обучение. Китайский поисковик Baidu тоже активно инвестирует в развитие AI.

Одна из самых интересных разработок компании – Deep Voice, нейронная сеть, способная генерировать синтетические человеческие голоса, которые практически невозможно отличить от настоящих. Система может имитировать особенности интонации, произношения, ударения и высоты тона.

Последнее изобретение Baidu Deep Voice 2 значительно повлияет на эффективность обработки естественного языка, голосового поиска и систем распознавания речи. Применять новую технологию можно будет в других сферах, например, устных переводах и системах биометрической безопасности.

8. HubSpot – Умные продажи

HubSpot уже давно известен своим интересом к технологиям. Компания недавно приобрела Kemvi – бренд, специализирующийся на машинном обучении.

HubSpot планирует использовать технологию Kemvi для нескольких целей: самая значимая – интеграция машинного обучения и обработки естественного языка DeepGraph с внутренней системой управления контентом.

Это позволит компании эффективнее определять “триггеры” – изменения в структуре и управлении компании, которые влияют на повседневные операции. Благодаря этому нововведению HubSpot сможет эффективнее привлекать клиентов и обеспечивать высокий уровень обслуживания.

9. IBM – Здравоохранение нового поколения

Крупнейшая технологическая корпорация IBM отказывается от устаревшей бизнес-модели и активно осваивает новые направления. Самый известный сегодня продукт бренда – искусственный интеллект Watson.

За последние несколько лет Watson использовался в госпиталях и медицинских центрах, где диагностировал определенные виды рака намного эффективнее, чем онкологи.

У Watson также есть огромный потенциал в сфере ритейла, где он может выполнять роль консультанта. IBM предлагает свой продукт на основе лицензии, что делает его уникальным в своем роде и более доступным.

10. Salesforce – Умные CRM системы

Salesforce – титан мира технологий со значительной долей рынка в сфере управления отношениями с клиентам (CRM).

Предсказательная аналитика и оценка лидов – основные вызовы современных интернет-маркетологов, вот почему Salesforce делает высокие ставки на свою технологию машинного обучения Einstein.

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

Будущее машинного обучения

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

Какие тренды машинного обучения ждут нас в ближайшем будущем?

1. Машины, которые учатся еще эффективнее

Совсем скоро искусственный интеллект сможет обучаться намного эффективнее: машины будут совершенствоваться при минимальном участии человека.

2. Автоматизация борьбы с кибератаками

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

3. Убедительные генеративные модели

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

4. Быстрое обучение

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

5. Самостоятельный искусственный интеллект

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

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

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

rusability.ru

10 самых важных сценариев использования ИИ и машинного обучения

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

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

В этом, по сути, и состоит обучение.

1. Защита данных

Вредоносное ПО – это серьезная проблема, которая со временем только усугубляется. «Лаборатория Касперского» в 2014 году сообщила, что обнаруживала в среднем по 325 тысяч новых вредоносных файлов ежедневно. Однако американская компания Deep Instinct, тоже занимающаяся вопросами безопасности, заверяет, что код в этих новых программах отличается от предыдущих итераций всего на 2-10%. Самообучающаяся модель этой компании без труда обрабатывает такие программы и может с высокой точностью предсказывать, какие программы являются опасными. В других ситуациях алгоритмы машинного обучения могут анализировать пути, по которым осуществляется доступ к данным в облаке и сообщать об аномалиях, что позволяет предотвращать возможные проблемы.

2. Персональная безопасность

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

3. Торговля ценными бумагами

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

Источник: Shutterstock

4. Медицина

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

5. Персонализированный маркетинг

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

6. Выявление мошенничества

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

7. Рекомендации

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

8. Поиск в интернете

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

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

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

10. Интеллектуальные автомобили

Недавно представители компании IBM опросили топ-менеджеров автопроизводителей, и 74% из них заявили, что к 2025 году автономные машины выйдут на дороги общего пользования. Помимо поддержки интернета вещей умные автомобили смогут использовать данные о владельце и дорожной обстановке для обучения. Они смогут автоматически регулировать внутренние параметры – температуру, настройки сидений, аудиосистемы и т. д. – в зависимости от состояния водителя, двигаться в режиме автопилота и обеспечивать данные о трафике и дорожных условиях в реальном времени.

Источник.


Материалы по теме:

Крупнейшие технологические компании мира создадут альянс по ИИ

Google улучшил переводы Google Translate с помощью нейросети

Чат-боты – это не каприз моды, а настоящая революция

Google сделал большой шаг в обучении компьютера человеческой речи

Видео по теме:


Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

rb.ru

Machine learning, deep learning. Что это? Зачем это?

Сейчас многие интернет-СМИ декларируют очередной бум технологий в области искусственного интеллекта.

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

Многие считают, что это робот с искусственным разумом, который «мыслит» как человек и представляют угрозу для человечества.

Так ли это?

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

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

Вашему вниманию представляю порцию терминов, связанных с данными технологиями:

  • Машинное обучение (от англ. – machine learning) – алгоритмы, позволяющие компьютеру делать выводы на основании данных, не следуя определенным правилам.

Принято выделять 2 направления: 

1.     Обучение на основе выявления закономерностей в данных.

2.     Обучение, основанное на формализации знаний экспертов и их перенос в виде базы знаний.

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

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

  • Глубинное обучение (от англ. – deep learning) - набор алгоритмов машинного обучения, в которых понятия более высокого уровня определяются на основе понятий более низкого уровня.

Алгоритмы глубинного обучения легли в основу таких технологий как:

  • Машинное зрение –  способность машины идентифицировать и анализировать объекты, действия и ситуации в изображениях.

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

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

  • Обработка естественного языка – способность машины работать с текстом, извлекая смысл, так как это делают люди.

Данные технологии открывают возможности для создания нового класса машин – решающих когнитивные задачи.

Данные технологии смогут существенно повысить качество жизни человека.

Также в данном направлении имеет место высокая инвестиционная активность со стороны венчурных инвесторов. Стартапы, работающие в области машинного обучения, активно финансируются венчурными фондами, такими как Data Collective. WorkDay’s Machine Learning fund,и Bloomberg Beta, а также крупными российскими и зарубежными корпорациями. В настоящее время Сбербанк и Google на регулярной основе анонсируют мероприятия и хакатоны с фокусом в данном сфере.

Практические сферы применения машинного обучения

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

Машинное обучение имеет широкий спектр приложений:

  • Распознавание речи

  • Распознавание жестов

  • Распознавание рукописного ввода

  • Распознавание образов

  • Техническая диагностика

  • Медицинская диагностика

  • Прогнозирование временных рядов

  • Биоинформатика

  • Обнаружение мошенничества

  • Обнаружение спама

  • Категоризация документов

  • Биржевой технический анализ

  • Финансовый надзор

  • Кредитный скоринг

  • Предсказание ухода клиентов

  • Хемоинформатика

  • Обучение ранжированию в информационном поиске

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


робототехника искусственный интеллект Машинное зрение Машинное обучение

neuronus.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *