Что же такое "Machine learning"?

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


Все мы любим фильмы и сериалы, и если у вас спросят "Что посоветуешь посмотреть?", вы, пожалуй, легко сможете дать пару фильмов, которые нравятся большинству, "Побег из Шоушенка", "Зелёная миля", "1+1", "Крёстный отец", "Бойцовский клуб". Это хороший и рабочий алгоритм, если спрашивающий не смотрел эти фильмы, с высокой вероятностью они придутся ему по вкусу. Но что, если он уже видел всё это и хочет ещё какого то совета. Задача становится чуть сложнее для нас. Я бы спросил "А какие жанры тебе нравятся, какие фильмы?" и на основании его ответов, мог бы предложить ещё прау фильмов.


Фантастика? - Интерстеллар

Криминал? - Криминальное чтиво

Драмы? - Хатико

Спортивные? - Самый быстрый Indian


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

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

А теперь представим что мы Кинопоиск и IMDB. Нас о фильмах будет спрашивать миллион людей каждый день. Лично мы им конечно не сможем ответить, но не беда, компьютер сможет, мы просто перенесём алгоритм который есть у нас в голове в программный код. Компьютер будет спрашивать "Какой твой любимый жанр?", "Актёр?", "Режиссёр". Всё будет делать точно так же как делали мы сами, просто в автоматическом режиме.

Будет работать такая схема? Конечно будет. Но сразу появляются несколько вопрос и возможных проблем в реализации. Как мы определим какой из этих параметров самый важный? Жанр фильма или режиссёр более важен для совета? Может сумма каких то параметров? Джимм Керри хорошо играет в комедиях, а вот в драмах стоит ли его советовать? А ведь кроме параметров в виде актёров и режиссёров есть огромное количество других параметров "какие фильмы смотрел человек недавно", "Кем он работает", "Где живёт", "Образование", "Длительность фильма", "Отзывы критиков", "Отзывы друзей" и огромное количество других. Для составления качественного алгоритма требуется серьёзная экспертная оценка, а ведь новые фильмы выходят каждый день.

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


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


Это и есть машинное обучение, мы не задаём никаких правил оценки фильмов, мы только даём данные, правила машина выбирает сама - учится.


Немного более формализованные определения:

"Машинное обучение это наука о том, как заставить компьютеры действовать, не будучи явно запрограммированными" – Stanford

"Машинное обучение основанно на алгоритмах, которые обучаются на данных без непосредственного определения правил" – McKinsey & Co.

"Машинное обучение направлено на то, чтобы ответить на вопрос "Как мы можем создавать компьютерные системы, которые автоматически улучшаются с опытом, и каковы основные законы, которые регулируют все процессы обучения?" – Carnegie Mellon University


Обратите внимания на важные термины "Алгоритм" , "Данные" (Data), "Параметры" (Feature)


Здесь надо немного остановиться и подумать, где ещё это может быть применнено, кроме как выбор фильмов?

- Выдать ли кредит человеку? Какие в этой задаче могут быть параметры?

- Сколько будет стоить страхование автомобиля? Какие в этой задаче могут быть параметры?

- Есть ли у человека рак? Какие в этой задаче могут быть параметры?

Какие ещё задачи? Какие у них будут параметры?



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


- Supervised learning (Обучение с учителем)

- Unsupervised learning (Обучение без учителя)

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


Supervised learning:

В обучении с учителем у нас есть размеченные данные с проставленными классами, например:

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

X - исходные данные; Y - класс

Сразу стоит оговориться, что под X мы подразумеваем не только название фильма, но и данные о нём:

'Режиссёр'

'Год выпуска'

'Главные роли'

'Второстепенные роли'

'Страна производства'

'Студия'

'Бюджет'

'Средняя оценка пользователями'

'Упоминаний в СМИ'

'Средняя оценка критиками'

и т.д.


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


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


Так же бывают задачи, когда нам надо дать предсказание не из конечного числа классов (дискретного пространства), а из непрерывного пространства (допустим числовая прямая), такая задача называется регрессия

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

X - площадь м2 ; Y - цена руб.

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

Unsupervised learning:

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

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

X - исходные данные;


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

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

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

Результат мог бы выглядеть так:

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

Reinforcement learning

Обучение с подкреплением легче всего описать в терминах отличия от других типов ML.


Если в обучении с учителем процесс выглядит так: данные - ответ; и мы оцениваем результат

В обучении без учителя процесс выглядит так: данные; и мы смотрим на результат

То в обучении с подкреплением так: данные - ответ данные - ответ данные - ответ; и тут мы получаем оценку


Проще показать чем описать.

Что же такое "Machine learning"? Тамбов, Самообразование, Машинное обучение, Искусственный интеллект, Образование, Гифка, Длиннопост

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


Так выглядит короткий ввод в тему.

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


А мы по прежнему проводим лекции и практики и строим комьюнити в Тамбове. Вк.

Лига образования

4.4K пост21.8K подписчиков

Добавить пост

Правила сообщества

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


ДЛЯ АВТОРОВ:


Приветствуются:

-уважение к читателю и открытость

-желание учиться

Не рекомендуются:

-публикация недостоверной информации


ДЛЯ ЧИТАТЕЛЕЙ:


Приветствуются:

-конструктивные дискуссии на тему постов

Не рекомендуются:

-личные оскорбления и провокации

-неподкрепленные фактами утверждения


В этом сообществе мы все союзники - мы все хотим учиться! :)

2
Автор поста оценил этот комментарий

ML - это методологическое программирование (L2-программирование), причём (как и нейросети) "маркетинговое" т.е. охеренно переоценённое и обросшее кучей мифов. Сейчас в тренде, потом будет куча разочарования, потом станет рабочим инструментом.

раскрыть ветку