Введение в машинное обучение
Дмитрий Сподарец
d.spodarets@flyelephant.net
Обо мне
• Основатель 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-ближайших соседей в R
library(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 Computing
Compute / Manage data / Collaborate
http://www.flyelephant.net/
DEMO
Вопросы???
Дмитрий Сподарец
d.spodarets@flyelephant.net

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

  • 1.
    Введение в машинноеобучение Дмитрий Сподарец d.spodarets@flyelephant.net
  • 2.
    Обо мне • ОсновательFlyElephant и GeeksLab • Преподаватель в ОНПУ
  • 3.
    История искусственного интеллекта •Появление предпосылок AI (1943 – 1955) • Рождение AI (1956) / Двухмесячный семинар в Дартмуте • Ранний энтузиазм, большие ожидания (1952 – 1969) • Столкновение с реальностью (1966 – 1973) • Системы, основанные на знаниях – ключ к успеху? (1969 – 1979) • Превращение AI в индустрию (1980 – …) • Возвращение к нейронным сетям (1986 – …) • Превращение AI в науку (1987 – …) • Интеллектуальные агенты (1995 – …) • Доступность больших баз данных (2001 – …)
  • 4.
    История машинного обучения •Нейронные сети - Перспептрон (Розенблатт, 1958) • Когнитрон (Фукушима, 1975) • Метод опорных векторов (1990е) • Бустинг (конец 1990х) • Рандомизированный решающий лес (начало 2000х) • Обучение Марковских случайных полей (2000е) • Глубокое обучение (2006)
  • 5.
  • 6.
    Машинное обучение: определение •Машинное обучение — обширный подраздел искусственного интеллекта, изучающий методы построения алгоритмов, способных обучаться. ru.wikipedia.org
  • 7.
    Машинное обучение: определение •Машинное обучение — процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано). A.L. Samuel
  • 8.
    Машинное обучение: определение •Говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E. T.M.Mitchell
  • 9.
    Суть машинногообучения Обучающаяся программа Примеры данныхс закономерностями Модель закономерности Поиск закономерностей в новых данных
  • 10.
    Сферы приложения • Компьютерноезрение (computer vision) • Распознавание речи (speech recognition) • Компьютерная лингвистика и обработка естественных языков (natural language processing) • Медицинская диагностика • Биоинформатика • Техническая диагностика • Финансовые приложения • Информационный поиск • …
  • 11.
    Аппарат • Линейная алгебра •Теория вероятностей и математическая статистика • Методы оптимизации • Численные методы • Математический анализ • Дискретная математика • и др.
  • 12.
    Классификация задач машинногообучения • Дедуктивное обучение (экспертные системы) • Индуктивное обучение (≈ статистическое обучение) • Обучение с учителем • Обучение без учителя • Обучение с подкреплением (reinforcement learning) • Активное обучение • . . .
  • 13.
    Дедуктивное или аналитическоеобучение (экспертные системы) • Имеются знания, сформулированные экспертом и как-то формализованные. • Программа выводит из этих правил конкретные факты и новые правила.
  • 14.
  • 15.
    Индуктивное обучение (≈ статистическоеобучение) • Обучение с учителем • Обучение без учителя
  • 16.
    Обучение с учителем •Обучаем машину на примерах (данные + требуемое решение) • Алгоритм сохраняет «значение» о примерах во внутренней математической модели • Предсказываем новые данные, используя обученную модель Основная суть: обучая машину на исходных данных и зная ответ для этих данных, получить ответ для новых данных.
  • 17.
    Обучение без учителя •Загружаем в машину какой-то набор данных • Машина может самостоятельно проанализировать загруженные данные и сгруппировать их или предложить вам набор инсайтов Основная суть: не зная ответ совсем - получаем ответ.
  • 18.
    Основные типы задач •Обучение с учителем • Классификация • Регрессия • Обучение без учителя • Кластеризация • Определение выбросов • Гибридные • Коллаборативная фильтрация (рекомендации)
  • 19.
  • 20.
  • 21.
    Метод классификации k-ближайшихсоседей в R library(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
  • 23.
    Примеры задач классификации •Медицинская диагностика: по набору медицинских характеристик требуется поставить диагноз • Геологоразведка: по данным зондирования почв определить наличие полезных ископаемых • Оптическое распознавание текстов: по отсканированному изображению текста определить цепочку символов, его формирующих • Кредитный скоринг: по анкете заемщика принять решение о выдаче/отказе кредита • Синтез химических соединений: по параметрам химических элементов спрогнозировать свойства получаемого соединения
  • 24.
  • 25.
    Линейная регрессия 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
  • 27.
    Примеры задач регрессии •Оценка стоимости недвижимости: по характеристике района, экологической обстановке, транспортной связности оценить стоимость жилья • Прогноз свойств соединений: по параметрам химических элементов спрогнозировать температуру плавления, электропроводность, теплоемкость получаемого соединения • Медицина: по постоперационным показателям оценить время заживления органа • Кредитный скоринг: по анкете заемщика оценить величину кредитного лимита • Инженерное дело: по техническим характеристикам автомобиля и режиму езды спрогнозировать расход топлива
  • 28.
  • 29.
  • 30.
    Примеры задач кластерногоанализа • Экономическая география: по физико-географическим и экономическим показателям разбить страны мира на группы схожих по экономическому положению государств • Финансовая сфера: по сводкам банковских операций выявить группы «подозрительных», нетипичных банков, сгуппировать остальные по степени близости проводимой стратегии • Маркетинг: по результатам маркетинговых исследований среди множества потребителей выделить характерные группы по степени интереса к продвигаемому продукту • Социология: по результатам социологических опросов выявить группы общественных проблем, вызывающих схожую реакцию у общества, а также характерные фокус-группы населения
  • 31.
  • 32.
    Примеры задач идентификации •Медицинская диагностика: по набору медицинских характеристик требуется установить наличие/отсутствие конкретного заболевания • Системы безопасности: по камерам наблюдения в подъезде идентифицировать жильца дома • Банковское дело: определить подлинность подписи на чеке • Обработка изображений: выделить участки с изображениями лиц на фотографии • Искусствоведение: по характеристикам произведения (картины, музыки, текста) определить, является ли его автором тот или иной автор
  • 33.
  • 34.
    Примеры задач прогнозирования •Биржевое дело: прогнозирование биржевых индексов и котировок • Системы управления: прогноз показателей работы реактора по данным телеметрии • Экономика: прогноз цен на недвижимость • Демография: прогноз изменения численности различных социальных групп в конкретном ареале • Гидрометеорология: прогноз геомагнитной активности
  • 35.
  • 36.
    Примеры задач извлечениязнаний • Медицина: поиск взаимосвязей (синдромов) между различными показателями при фиксированной болезни • Социология: определение факторов, влияющих на победу на выборах • Генная инженерия: выявление связанных участков генома • Научные исследования: получение новых знаний об исследуемом процессе • Биржевое дело: определение закономерностей между различными биржевыми показателями
  • 37.
    Онлайн курсы/лекции • 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
  • 38.
    The Home ofHigh Performance Computing Compute / Manage data / Collaborate http://www.flyelephant.net/
  • 39.
  • 40.