Машинное обучение с учителем и без учителя реферат

Обновлено: 17.05.2024

Существуют 4 типа алгоритмов машинного обучения: обучение с учителем, обучение с частичным привлечением учителя, обучение без учителя и обучение с подкреплением

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

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

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

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

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

Обучение с частичным привлечением учителя

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

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

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

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

Методы обучения без учителя включают в себя:

  1. Кластеризация: Кластеризация предполагает группирование наборов похожих данных (на основе определенных критериев). Это полезно для сегментации данных на несколько групп и проведении анализа на основе каждого набора данных по отдельности для поиска закономерностей.
  2. Понижение размерности: Понижение размерности уменьшает количество используемых переменных и отделяет точную искомую информацию.

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

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



Машинное обучение: учимся с учителем и без него

мая 23, 2014 Алгоритмы Андрей Антонов Печать

robot teacher in classroom

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

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

Например, к таким задачам машинного обучения относятся создание беспилотного автомобиля, распознавание рукописного текста, задачи обработки естественного языка (NLP — Natural Language Processing), компьютерное зрение (Computer Vision). Некоторые из этих задач мы с вами решаем повседневно, но описать их решение путем последовательной записи компьютерных команд не представляется возможным. Мы успешно читаем рукописный текст людей, имеющих свой способ написания той или иной буквы, иногда даже понимаем что пишут врачи

Множество способов написания одной и той же фразы

Множество способов написания одной и той же фразы

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

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

Процесс принятия решения

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

Формирование обучающего множества

Формирование обучающего множества

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

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

Тестовый пример

Согласитесь, это непросто решить даже для эксперта

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

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

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

Социальная сеть

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

Кластеры в социальной сети

Кластеры в социальной сети

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

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

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

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

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

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


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

Два вида алгоритмов машинного обучения

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

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

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

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

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



Так выглядят данные для нашего алгоритма

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


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

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

То, с чем работает алгоритм, выглядит как попытка восстановить информацию в этом примере:


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

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

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


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

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

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

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

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

Если вы читаете эту статью лет через 50 после её публикации, она уже вам ничем не может быть полезна. Закрой её и попроси своего робота приготовить тебе сэндвич, человек будущего!

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

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

Если вы ещё несколько часов посидите над кодом (и если очень повезёт), вся эта мутотень заработает. При этом полученное решение будет далеко от идеала и будет постоянно нуждаться в доработке, ведь цены постоянно меняются.

А давайте обучим компьютер

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

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

Это упростит ваш начальный код (со всеми этими безумными if и else), превратив его во что-то вроде:

Обратите внимание на волшебные числа: .841231951398213, 1231.1231231,2.3242341421 и 201.23432095. Это наши коэффициенты. Если мы вычислим идеальные коэффициенты, которые будут работать для каждой квартиры, наша функция сама будет оценивать её стоимость!

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

Шаг 1:

Установим значения всех коэффициентов на 1.0:

Шаг 2:

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


К примеру, если первую квартиру на самом деле купили за 250 000$, а ваша функция оценила её в 178 000 долларов, где-то по пути вы потеряли 72 000 долларов.

Теперь вычислите общую сумму потерь функции с каждой квартиры в вашей базе данных. Допустим, в вашей базе данных 500 лотов, и общая сумма составила 86 123 373$. Это степень ошибочности вашей функции.

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

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

Шаг 3:

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

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

Но рано радоваться, юные друзья. Вот несколько фактов, которые убьют все надежды на светлое будущее нашего решения:

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

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

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


  • Теперь немного видоизменим это уравнение, используя лексикон машинного обучения (пока не обращайте на это внимания):


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



График нашей функции выглядит как чаша. По вертикальной оси — значения погрешности

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


Как будем искать минимальную погрешность?

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

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

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

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

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

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

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

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

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

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

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


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

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

Содержание

Типология задач обучения с учителем

Типы входных данных

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

Типы откликов

Обучение с учителем: формальная постановка

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

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

Функции потерь и функционалы качества

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

Типичный выбор функции потерь:

  • В задачах классификации ;
  • В задачах регрессии .

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

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

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

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

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

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

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

Признаковое пространство

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

В зависимости от множества признаки делятся на следующие типы:

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

Часто встречаются прикладные задачи с разнотипными признаками, для их решения подходят далеко не все методы.

Примеры прикладных задач

Задачи медицинской диагностики

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

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

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

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

Оценивание кредитоспособности заёмщиков

Прогнозирование потребительского спроса

Принятие инвестиционных решений на финансовом рынке

В этой задаче умение хорошо прогнозировать самым непосредственным образом превращается в прибыль. Если инвестор предполагает, что цена акции вырастет, он покупает акции, надеясь продать их позже по более высокой цене. И, наоборот, прогнозируя падение цен, инвестор продаёт акции, чтобы впоследствии выкупить их обратно по более низкой цене. Задача инвестора-спекулянта в том, чтобы правильно предугадать направление будущего изменения цены — роста или падения. Большой популярностью пользуются автоматические торговые стратегии -алгоритмы, принимающие торговые решения без участия человека. Разработка такого алгоритма — тоже задача обучения с учителем. В роли объектов выступают ситуации, фактически, моменты времени. Описание объекта — это вся предыстория изменения цен и объёмов торгов, зафиксированная к данному моменту. В простейшем случае объекты необходимо классифицировать на три класса, соответствующих возможным решениям: купить, продать или выжидать. Обучающей выборкой для настройки торговых стратегий служат исторические данные о движении цен и объёмов за некоторый промежуток времени. Критерий качества в данной задаче существенно отличается от стандартного функционала средней ошибки, поскольку инвестора интересует не точность прогнозирования, а максимизация итоговой прибыли. Современный биржевой технический анализ насчитывает сотни параметрических торговых стратегий, параметры которых принято настраивать по критерию максимума прибыли на выбранном интервале истории.

Читайте также: