Введение

«[Машинное обучение - это] область исследования, которая дает компьютерам возможность учиться без явного программирования». (Артур Сэмюэл, 1959)

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

«Считается, что компьютерная программа учится на опыте E в отношении некоторой задачи T и некоторого показателя производительности P, если ее производительность на T, измеренная с помощью P, улучшается с опытом E.» (Том Митчелл, 1998)

Том Митчелл, профессор информатики в Университете Карнеги-Меллона, определил хорошо структурированную проблему машинного обучения в 1998 году с помощью приведенного выше описания.

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

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

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

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

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

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

Знакомство с функциями

Так как же происходит все это обучение? Что ж, с точки зрения высокого уровня, это происходит через концепцию функций. Для тех, кто может быть не полностью знаком, функция - это отношение набора входов к набору возможных выходов [1]. Если мы посмотрим на наше определение машинного обучения, то роль функции - это именно то, что мы хотим, чтобы наша машина изучила или оценила. Мы хотим, чтобы он знал, как перейти от наших входов к нашим выходам, по сути, выяснил, какова связь.

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

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

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

Здесь приведены математические обозначения всех терминов, описанных выше:

Давайте подробнее рассмотрим эту концепцию функций.

Мы нанесли на график 4 известные точки данных и ожидаем, что они будут иметь какую-то основную взаимосвязь, которую мы хотим оценить. Мы вызовем базовую функцию f (x) и создали 3 базовые модели оценки, которые мы называем h (x).

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

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

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

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

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

Распознавание образов и машинное обучение

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

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

Проще всего, если мы рассмотрим пару примеров

  • Данные, состоящие из 1 признака - возраст и 1 метка - рост → одномерное контролируемое обучение
  • Данные, состоящие из 3 характеристик - возраст, рост, пол и 1 метка - ожидаемая продолжительность жизни → многопараметрическое контролируемое обучение
  • Данные, состоящие из 1 признака - серии цен индекса Доу-Джонса, с целью классификации цен на аналогичные группы → одномерное обучение без учителя.
  • Данные, состоящие из 3 характеристик - атрибутов песни, темпа, длины и тональности, с целью классификации их на группы похожих песен, которые, мы надеемся, можно разделить по жанрам → многомерное обучение без учителя

Контролируемое обучение

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

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

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

Математически мы определяем их следующим образом:

На приведенной выше диаграмме N - это набор всех натуральных чисел. Все это целые числа больше 0. Набор натуральных чисел будет выглядеть примерно так: {1,2,3,4,…}. R - это набор всех действительных чисел. Сюда входят все натуральные, целые, рациональные и иррациональные числа. Единственные значения, которые не входят в набор действительных чисел, - это мнимые числа, такие как i, используемые для представления квадратного корня из -1, но мы не встречаем их в машинном обучении, поэтому нам не о чем беспокоиться. Важно отметить, что классификация принимает любое натуральное числовое значение, тогда как регрессия принимает любое действительное числовое значение.

Компоненты проблемы машинного обучения

Мы упомянули термины, особенности и метки, сейчас мы их определим.

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

При обучении с учителем точка данных состоит из серии входных данных, обозначенных X, которые мы называем функциями, и выходных данных, обозначенных y, которые мы называем этикетки. Мы можем сгруппировать их как кортежи в обозначении {X, y}.

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

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

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

Итак, каковы компоненты проблемы машинного обучения?

Давайте возьмем примерный сценарий и попробуем его смоделировать.

Допустим, наши особенности x - это набор веса людей, измеряемый в кг, в диапазоне от 50 кг до 120 кг. Мы скажем, что y - это соответствующий рост этих людей, измеренный в сантиметрах в диапазоне от 150 до 200 см. Мы хотим найти лучший способ использовать значение x для прогнозирования y. Мы можем начать с нанесения этих точек, они могут немного выглядеть как на следующей диаграмме. Если мы решим использовать линейную регрессию для оценки наших данных, мы можем нанести прямую оценку на наш график. Из теории графов мы знаем, что эта линия примет форму y = mx + c, где m - градиент линии, а c Y-пересечение. В теории машинного обучения мы преобразуем это в оценочную функцию:

В одномерной линейной регрессии, то есть регрессии с одной переменной x, наше пространство решений - это все возможные значения theta_0 и theta_1.

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

В приведенном выше примере мы заявили, что алгоритм обучения - это алгоритм h (x). По сути, тета-параметры - это то, что пытается изучить наш алгоритм. Просматривая все наши комбинации функций и меток, он пытается найти наилучшие значения для theta. «Лучшее» значение будет рассчитано на основе нашей метрики производительности, поэтому наш алгоритм выберет набор значений тета, которые обеспечивают оптимальное значение производительности.

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

Параметры

Для любой модели машинного обучения есть два типа параметров.

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

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

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

использованная литература

[1] https://mathinsight.org/definition/function