Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное...

40
Введение в машинное обучение Дмитрий Сподарец d.spodarets@flyelephant.net

Transcript of Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное...

Введение в машинное обучениеДмитрий Сподарец

[email protected]

Обо мне

• Основатель FlyElephant и GeeksLab

• Преподаватель в ОНПУ

История искусственного интеллекта• Появление предпосылок AI (1943 – 1955)

• Рождение AI (1956) / Двухмесячный семинар в Дартмуте

• Ранний энтузиазм, большие ожидания (1952 – 1969)

• Столкновение с реальностью (1966 – 1973)

• Системы, основанные на знаниях – ключ к успеху? (1969 – 1979)

• Превращение AI в индустрию (1980 – …)

• Возвращение к нейронным сетям (1986 – …)

• Превращение AI в науку (1987 – …)

• Интеллектуальные агенты (1995 – …)

• Доступность больших баз данных (2001 – …)

История машинного обучения• Нейронные сети - Перспептрон (Розенблатт, 1958)

• Когнитрон (Фукушима, 1975)

• Метод опорных векторов (1990е)

• Бустинг (конец 1990х)

• Рандомизированный решающий лес (начало 2000х)

• Обучение Марковских случайных полей (2000е)

• Глубокое обучение (2006)

Карта появления новых направлений

Машинное обучение: определение

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

ru.wikipedia.org

Машинное обучение: определение

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

A.L. Samuel

Машинное обучение: определение

• Говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта

E. T.M.Mitchell

Суть машинного обученияОбучающаяся программа

Примеры данных с закономерностями

Модельзакономерности

Поиск закономерностей в новых данных

Сферы приложения• Компьютерное зрение (computer vision)

• Распознавание речи (speech recognition)

• Компьютерная лингвистика и обработка естественных языков (natural language processing)

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

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

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

• Финансовые приложения

• Информационный поиск

• …

Аппарат• Линейная алгебра

• Теория вероятностей и математическая статистика

• Методы оптимизации

• Численные методы

• Математический анализ

• Дискретная математика

• и др.

Классификация задач машинного обучения• Дедуктивное обучение (экспертные системы)

• Индуктивное обучение (≈ статистическое обучение)

• Обучение с учителем

• Обучение без учителя

• Обучение с подкреплением (reinforcement learning)

• Активное обучение

• . . .

Дедуктивное или аналитическое обучение (экспертные системы)

• Имеются знания, сформулированные экспертом и как-то формализованные.

• Программа выводит из этих правил конкретные факты и новые правила.

Примеры экспертных систем

• WolframAlpha

• IBM Watson

Индуктивное обучение (≈ статистическое обучение)

• Обучение с учителем

• Обучение без учителя

Обучение с учителем• Обучаем машину на примерах (данные + требуемое решение)

• Алгоритм сохраняет «значение» о примерах во внутренней математической модели

• Предсказываем новые данные, используя обученную модель

Основная суть: обучая машину на исходных данных и зная ответ для этих данных, получить ответ для новых данных.

Обучение без учителя

• Загружаем в машину какой-то набор данных

• Машина может самостоятельно проанализировать загруженные данные и сгруппировать их или предложить вам набор инсайтов

Основная суть: не зная ответ совсем - получаем ответ.

Основные типы задач• Обучение с учителем

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

• Регрессия

• Обучение без учителя

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

• Определение выбросов

• Гибридные

• Коллаборативная фильтрация (рекомендации)

Инструменты для решения задач ML

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

Метод классификации k-ближайших соседей в Rlibrary(ElemStatLearn)

require(class)

x <- mixture.example$x

g <- mixture.example$y

xnew <- mixture.example$xnew

mod15 <- knn(x, xnew, g, k=15, prob=TRUE)

prob <- attr(mod15, "prob")

prob <- ifelse(mod15=="1", prob, 1-prob)

px1 <- mixture.example$px1

px2 <- mixture.example$px2

prob15 <- matrix(prob, length(px1), length(px2))

par(mar=rep(2,4))

contour(px1, px2, prob15, levels=0.5, labels="", xlab="", ylab="", main=

"15-nearest neighbour", axes=FALSE)

points(x, col=ifelse(g==1, "coral", "cornflowerblue"))

gd <- expand.grid(x=px1, y=px2)

points(gd, pch=".", cex=1.2, col=ifelse(prob15>0.5, "coral", "cornflowerblue"))

box()

http://stats.stackexchange.com/questions/21572/how-to-plot-decision-boundary-of-a-k-nearest-neighbor-classifier-from-elements-o

Примеры задач классификации• Медицинская диагностика: по набору медицинских характеристик требуется поставить диагноз

• Геологоразведка: по данным зондирования почв определить наличие полезных ископаемых

• Оптическое распознавание текстов: по отсканированному изображению текста определить цепочку символов, его формирующих

• Кредитный скоринг: по анкете заемщика принять решение о выдаче/отказе кредита

• Синтез химических соединений: по параметрам химических элементов спрогнозировать свойства получаемого соединения

Регрессия

Линейная регрессияdata <- read.csv('~/git/R-Linear-Regression/rosn.txt', sep='\t')

fit <- lm(data$ROSN ~ data$BRN )

plot(data$ROSN~data$BRN, xlab="ROSN", ylab="BRN")

abline(fit)

summary(fit)http://www.algorithmist.ru/2011/04/linear-regression-with-examples-in-r.html

Примеры задач регрессии• Оценка стоимости недвижимости: по характеристике района, экологической обстановке, транспортной связности оценить стоимость жилья

• Прогноз свойств соединений: по параметрам химических элементов спрогнозировать температуру плавления, электропроводность, теплоемкость получаемого соединения

• Медицина: по постоперационным показателям оценить время заживления органа

• Кредитный скоринг: по анкете заемщика оценить величину кредитного лимита

• Инженерное дело: по техническим характеристикам автомобиля и режиму езды спрогнозировать расход топлива

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

Метод k-средних

http://www.lisa.stat.vt.edu/?q=node/9082

Примеры задач кластерного анализа• Экономическая география: по физико-географическим и экономическим показателям разбить страны мира на группы схожих по экономическому положению государств

• Финансовая сфера: по сводкам банковских операций выявить группы «подозрительных», нетипичных банков, сгуппировать остальные по степени близости проводимой стратегии

• Маркетинг: по результатам маркетинговых исследований среди множества потребителей выделить характерные группы по степени интереса к продвигаемому продукту

• Социология: по результатам социологических опросов выявить группы общественных проблем, вызывающих схожую реакцию у общества, а также характерные фокус-группы населения

Идентификация

Примеры задач идентификации• Медицинская диагностика: по набору медицинских характеристик требуется установить наличие/отсутствие конкретного заболевания

• Системы безопасности: по камерам наблюдения в подъезде идентифицировать жильца дома

• Банковское дело: определить подлинность подписи на чеке

• Обработка изображений: выделить участки с изображениями лиц на фотографии

• Искусствоведение: по характеристикам произведения (картины, музыки, текста) определить, является ли его автором тот или иной автор

Прогнозирование

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

• Системы управления: прогноз показателей работы реактора по данным телеметрии

• Экономика: прогноз цен на недвижимость

• Демография: прогноз изменения численности различных социальных групп в конкретном ареале

• Гидрометеорология: прогноз геомагнитной активности

Извлечение знаний

Примеры задач извлечения знаний• Медицина: поиск взаимосвязей (синдромов) между различными показателями при фиксированной болезни

• Социология: определение факторов, влияющих на победу на выборах

• Генная инженерия: выявление связанных участков генома

• Научные исследования: получение новых знаний об исследуемом процессе

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

Онлайн курсы/лекции

• https://yandexdataschool.ru/edu-process/courses/machine-learning

• https://www.coursera.org/learn/introduction-machine-learning

• https://www.coursera.org/learn/machine-learning

• https://www.youtube.com/watch?v=qLBkB4sMztk

The Home of High Performance ComputingCompute / Manage data / Collaborate

http://www.flyelephant.net/

DEMO

Вопросы???Дмитрий Сподарец

[email protected]