×

Машинное обучение в повседневной жизни: типы ML и способы их применения

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

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

Машинное обучение vs традиционное программирование

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

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

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

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

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

Подход традиционного программирования

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

Как инженер создает решение с помощью традиционного программирования

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

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

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

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

Подход машинного обучения

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

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

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

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

Как дата-инженер разрабатывает решение при помощи машинного обучения

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

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

Типы машинного обучения

Традиционно машинное обучение разделяют на обучение с учителем (supervised), обучение без учителя (unsupervised) и обучение с подкреплением (reinforcement learning). Давайте посмотрим, как они работают и в каких случаях применяются.

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

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

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

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

Построение модели при помощи машинного обучения с учителем

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

Классификационные задачи в машинном обучении с учителем

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

Использование модели классификатора для определения объекта

Вот еще несколько примеров:

  • Какой цветок изображен на картинке?
  • Это положительный или отрицательный отзыв?
  • Есть ли на фото знаменитость?
  • Является ли данный email спамом или нет?

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

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

В этом эпизоде «Кремниевой долины» проблема показана как нельзя лучше.

Задачи регрессионного анализа в обучении с учителем

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

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

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

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

Наиболее распространенные области применения регрессионного анализа:

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

Машинное обучение без учителя

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

Работа алгоритма обучения без учителя

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

В машинном обучении без учителя выделяют три категории алгоритмов:

  • ассоциативные;
  • кластеризация;
  • снижение размерности.

Ассоциативные алгоритмы

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

Принцип работы алгоритма:

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

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

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

Алгоритмы кластеризации позволяют группировать данные в кластеры. Один из самых популярных алгоритмов в данной категории — это метод k-средних (K-Means). На схеме показано, каким образом он работает:

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

У кластеризации много областей применения:

  • группировка схожих статей в Google News;
  • сегментирование рынка для таргетирования различных групп покупателей;
  • объединение домов в районы;
  • анализ социальных графов для определения групп друзей (в соцсетях);
  • кластеризация фильмов по набору свойств.

Снижение размерности: PCA

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

С этой задачей справляется метод главных компонент (Principal Component Analysis, или PCA). Основная его идея такова:

В нашем примере PCA находит способ трансформировать двумерное представление данных в одномерное. Так, вместо двух входных параметров x и y, он создает новый параметр k, который и является проекцией из 2d в 1d.

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

На практике при тысячах входных параметров PCA может сократить их количество в 5-10 раз.

Обучение с подкреплением

Выражение «искусственный интеллект» очень часто используется там, где намного больше подошло бы просто «машинное обучение». Но обучение с подкреплением (Reinforcement Learning, или RL) является исключением, поскольку большую часть времени RL работает с целями непосредственно искусственного интеллекта — созданием агента, который сможет производить эффективные действия в заданной среде. Алгоритмы RL используют вознаграждение как обратную связь для выполненных действий и стараются его максимизировать.

Популярность обучения с подкреплением стала расти после известного матча по игре го между системой искусственного интеллекта AlphaGo, разработанной британской компанией Google DeepMind, и азиатским чемпионом Ли Седолем. Система AlphaGo была создана с использованием алгоритмов RL. Даже первая версия искусственного интеллекта представляла серьезный вызов любому человеку. Следующая версия — AlphaZero — дошла до уровня сложности, недостижимого для людей. Отличительная черта AlphaZero в том, что она научилась играть сама с собой, а не использовать человеческие партии для обучения.

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

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

Заключение

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

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

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

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

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

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

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Схожі статті




42 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

На различных форумах порой читаю такие словосочетания «Тренировка модели» и «Создание модели». Это одно и тоже или разные понятия?

Я думаю, что все выглядит так: есть данные, которые прогоняются через выбранный алгоритм машинного обучения. Эта «прогонка» называется просто «Тренировка» (не «Тренировка модели»), а на выходе мы получаем «Модель» (Натренированная модель).

Модель- это алгоритм, тренировка модели- это тренировка алгоритма

Під ’створення моделі’ можна мати на увазі різне: вибір алгоритма (регресія, дерево рішень, нейронна мережа, ...), тренування, навіть підбір гіперпараметрів.

Коментар порушує правила спільноти і видалений модераторами.

Спасибо за статью! Скажите, в чём вы делаете такие красивые диаграммы?

Наиболее распространенные области применения регрессионного анализа:

прогнозирование цен на акции;
прогнозирование курсов валют;

Регрессию для этого можно использовать лишь в теории или просто для знакомства с машинным обучением без практической пользы.
Т.к. входные параметры и правильные ответы сейчас не равно то же самое в будущем. Т.е. при попытке спрогнозировать цену мы сталкиваемся с как бы постоянно изменяемой системой координат. Также есть проблема с подбором параметров. Например стоит ли заносить такой параметр для нашей обучающей выборки как «Элон Маск покурил в прямом эфире» — 0/1.
Чаще прогнозирование рассматривают как задачу кластеризации, а не классификации.
Но вообще прогнозирование цен на акции и валюты — это худшая область для применения машинного обучения на практике и как пример я бы их вообще не рассматривал.

Также есть проблема с подбором параметров. Например стоит ли заносить такой параметр для нашей обучающей выборки как «Элон Маск покурил в прямом эфире» — 0/1.

Можно внести в модель параметр «СЕО/Founder компании вычудил» :)

Чаще прогнозирование рассматривают как задачу кластеризации, а не классификации.

Это как?

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

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

Это как?

А как вообще решаются задачи кластеризации? :)

Если говорить про точные прогнозы, то да.

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

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

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

А как вообще решаются задачи кластеризации? :)

Перефразирую вопрос: какое отношение имеет кластеризация к прогнозированию? Кластеризация находит кластера в данных, т.е. группы близких друг к другу объектов, при чем тут прогнозирование?

finviz.com/...​&f=sec_financial&o=sector
Sector, Industry — чем вам не группа близких друг к другу объектов?

Даже если они близки, что дальше? Как мы делаем прогноз значений при помощи кластеризации?

Для справки: если мы добавим целевую переменную как еще одно измерение данных, то кластеризация незаметно превратиться в supervised learning! Т.е. с помощью кластеризации мы учим cовместное распределение данных и целевой переменной p(x, y), а затем можем вывести p(y | x) через формулу маргинального распределения.

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

Да, это извращение, но элегантное =)

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

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

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

Так вот почему ты «повелитель кофеварки»! :D

А вот я — как раз повелитель — могу повелеть ей сварить вкусный эспрессо, и она обычно варит.

Дам, эээ... метаобъяснение.
Потому что если б это было так просто — то все б так делали, а т.к. рынок — нерезиновый — то тем самым убили бы на нем (почти) всю случайность, а следовательно бы и его самого.
Вот тут, кстати, комрады-таки пытались, и по-началу вроде даже что-то выходило, только закончилось все ожидаемо.
letyourmoneygrow.com/...​g-to-a-natural-stupidity

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

Лучше всего на рынке работает инсайд :)))

Только прокурор тоже хочет карьеру делать и бонус получить :))

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

кто на поверхности засветился.

кто много трындит в твиттере

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

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

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

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

поэтому приходить будут лишь за крупной рыбой

Верно, только откуда ж у мелкой рыбешки инсайдерская инфа? :)

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

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

Хорошая обзорная статья для начинающих. Но хотелось бы внести несколько поправок:

1) Некорректно использовать словосочетание «дата-инженер». Дата инженеры занимаются не машинным обучением и даже не анализом данных, а другими задачами. Правильнее говорить ML Engineer или Data Scientist, хотя последний термин тоже сильно размыт и не даёт четкого понимания, чем же именно занимается специалист.

2)

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

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

3)

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

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

4) K-means работает не в один проход. Это итеративный алгоритм, который заканчивает свою работу, когда изменения в положении центров кластеров становятся минимальны или вообще исчезают, либо же после завершения определенного количества итераций. Основным недостатком K-means является также то, что вам нужно заранее дать алгоритму на вход требуемое количество кластеров, что зачастую является неизвестной величиной. Есть другие, более продвинутые алгоритмы кластеризации.

5) Дополнение: Еще одной очень популярной и типичной задачей обучения без учителя является поиск аномалий, применяемый, например, для выявления мошеннических действий. Впрочем, эту задачу можно решать и при помощи обучения с учителем.

За статью спасибо. Вот этот момент не совсем ясен.

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

Как выглядят «различные алгоритмы машинного обучения» в реальности? Это библиотека ЯП, некое ПО, black box? Как выглядит результирующая модель? Это набор команд, скопилированный код, что-то еще? Как все это можно «пощупать»?

Как выглядят «различные алгоритмы машинного обучения» в реальности? Это библиотека ЯП, некое ПО, black box? Как выглядит результирующая модель?

Get Started with TensorFlow

«различные алгоритмы машинного обучения» — в данном случае речь шла о алгоритмах оптимизаторов, таких как: SGD(stochastic gradient descent), Adam, Adagrad и тд., которые все на градиентном спуске, по сути они все являются модернизироанным алгоритмом backpropagation.

Сами алгоритмы реализованы много в каких библиотеках, таких как : Tensorflow(разработка гугла, сделана на много языков, например : Python, C++, C, Java etc.), Pytorch, Keras(основывается на Tensorflow иил Theano, пробовал только на питоне, про другие языки не знаю).

Модель — это архитектура НС, которая имеет какие-то веса, в ходе обучения эти веса все лучше и лучше подстраиваются под входные данные и так модель лучше предсказывает результат задач, на которых обучался.

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

Как можно пощупать? Если использовать питон(советую именно питон, так с ним легче всего начать), можно установить tensorflow и по любым туториалам изучить свою модель, MNIST, допустим — для распознавания цифр 0-9. Для ознакомления и полуения хорошей минимальной-минимальной базы, советую почитать Николенко «Глубокое обучение. Погружение в мир нейронных сетей» — примеры как раз на tf/keras.
tf — tensorflow.

Спасибо. Если я правильно понял, то обучение — это параметризация НС (подбор весов) под конкретную задачу (данные).

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

Обучение — пожалуй, да, можно так сказать.
Но перед тем как модель обучать — нужно ее, модель, адекватно выбрать под задачу.
Иначе — как веса не подбируй, все равно получишь ...
Вот кейс стади на тему, который я уже неоднократно приводил
letyourmoneygrow.com/...​r-a-step-by-step-example

Да, а еще перед этим данные нужно собрать-отскринить-разметить. И именно это, обычно, сжирает 90% времени и сил.

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

А если ты хочешь понимать, как работают вероятностые модели — то вперед — начнем из теории меры :) yetanotherquant.com/#MeasureTheoryBook
Я, конечно, немного утрирую, но совсем немного — чтоб ПОНИМАТЬ что ты делаешь в ML, а не просто тупо гонять икса, надо очень много знать.

Ну и напоследок

Я слышал что если данных мало то строят простую вероятностную модель, это просто перемножение вероятностей ?

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

используют формулу Баяса

Формулу Байеса, точнее, методы байесовской статистики, действительно часто используют. Причем начали это делать задолго до МЛ-хайпа. В частности, на ней основана credibility theory, популярная среди актуариев (страховых математиков). Как она работает? Ну примерно так: если у меня есть априорная информация о том, что в Берлине платят мало, а один кредибил в этом топике dou.ua/forums/topic/25999 утверждает, что у него 6-тизначная зарплата, то с помощью некоторых дополнительных признаков и предположений (conjugate probability distribution) я могу оценить, какова вероятность того, что он говорит правду или-таки 3.14здит.
Но байесовский метод — далеко не единственный.

Пожалуйста!

Да, примерно так :)
Смотри — какой-то уебпроект вполне может сделать и школьник-самоучка (перформанс и безопасность оставим пока вне рассмотрения).
Чтоб что-то более-менее писать на Java — нужно уже больше знаний, во всяком случае у меня с Java learning curve была куда более тяжелой, чем с PHP (в обоих случаях я — самоучка, а курсов и тьюториалов в конце 90х считай что не было).

Ну а теперь — математика, лежащая в основе МЛ и Data Science. Начнем с «простого» примера: ты можешь себе представить, что квадрат — это круг?
А тем не менее — это имеет смысл, например, на манхэттене все улицы под прямым углом, поэтому — если ты по воздуху не летаешь — то «множество точек, одинаково удаленных от центра» надо понимать не в смысле привычного круга, а как-то по-другому. Собственно, выбор подходящего расстояния (нормы) — весьма важный аспект в обучении без учителя — чтоб адекватно измерять «близость» изучаемых объектов.
А еще те же SVM — это во многом развитие теоремы Хана-Банаха о продолжении линейного фунционала. Все это — предмет функионального анализа — а в нем не только квадрат бывает кругом, но и шар меньшего радиуса порой включает в себя шар большего радиуса ;)
Что касается «продвинутой» вероятности — то ссылку на теорию меры я тебе уже подкинул.

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

Підписатись на коментарі