Один из машинного обучения

искусственный интеллект алгоритм обучение с подкреплением

Машинное обучение (Машинное обучение) II:nuggets.capable/post/684490…

Определение машинного обучения

раннее определение

В 1950-х годах Артур Сэмюэл дал первое определение машинного обучения. Он определяет машинное обучение как:В случае специального программирования - область, которая дает компьютеру способность к обучению.

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

недавнее определение

Машинное обучение, предложенное Томом Митчеллом из Университета Карнеги-Меллона, определяется следующим образом:Считается, что программа способна учиться на опыте E, решать задачу T и достигать показателя производительности P тогда и только тогда, когда после получения опыта E производительность программы при обработке T улучшается после оценки P.В шахматном примере опыт e — это опыт десятков тысяч самостоятельных упражнений программы и задачи t — игра в шахматы. Как насчет показателя производительности p, который представляет собой вероятность победы в игре с каким-то новым противником?

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

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

Обучение компьютеров выполнению задач

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

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

Пример 1:

鉴于有关房地产市场房屋面积的数据,请尝试预测房价。作为大小函数的价格是连续输
出,因此这是一个回归问题。
我们可以将这个例子变成一个分类问题,而不是让我们的输出关于房子“卖得多于还是
低于要价”。在这里,我们将基于价格的房屋分为两个不同的类别。

Пример 2:

回归 - 鉴于一个人的照片,我们必须根据给定的图片预测他们的年龄
分类 - 鉴于患有肿瘤的患者,我们必须预测肿瘤是恶性的还是良性的。

2. Неконтролируемое обучение

Пусть компьютер учится сам

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

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

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

пример:

聚类:收集1,000,000个不同基因的集合,并找到一种方法将这些基因自动分组成不同
的相似或通过不同变量相关的组,例如寿命,位置,角色等。

非聚类:“鸡尾酒会算法”允许您在混乱的环境中查找结构。(即在鸡尾酒会上从声音网
格中识别个别声音和音乐)。

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

4. Система рекомендаций

Алгоритм линейной регрессии

Представление модели

Чтобы установить символы для будущего использования, мы будем использовать

представляет «входную» переменную (в данном случае жилую площадь), также известную как входной объект, и
Представляет «выход» или целевую переменную (цену), которую мы пытаемся предсказать. пара
называется обучающим примером, а набор данных, который мы будем использовать для обучения, — список из m обучающих примеров
называется обучающей выборкой. Обратите внимание, что верхний индекс «(i)» в обозначении — это просто индекс обучающего набора и не имеет ничего общего с возведением в степень. Мы также будем использовать X для представления пространства входных значений и Y для представления пространства выходных значений. В этом примере X = Y = ℝ.

Чтобы описать задачу контролируемого обучения более формально, наша цель состоит в том, чтобы при заданном обучающем наборе изучить функцию h: X → Y, такую, что h(x) является «хорошим» предсказателем для соответствующего значения y. По историческим причинам эта функция h называется гипотезой. Как видно из рисунка, процесс выглядит следующим образом:

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

Функция стоимости)

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

Эта функция иначе известна как «функция квадрата ошибки» или «среднеквадратичная ошибка». Среднее значение уменьшено вдвое (1/2) для простоты вычисления градиентного спуска, поскольку производный член квадрата функции уравновешивает (1/2). На следующем рисунке показано, что делает функция стоимости:

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

Наша цель состоит в том, чтобы получить лучшую линию. Наилучшие линии будут такими, что среднее вертикальное расстояние разбросанных точек от линии будет минимальным. В идеале линия должна проходить через все точки нашего обучающего набора данных. В этом случае значение J(θ0 ,θ1) будет равно 0.

Для простоты понимания мы можем сначала установить θ0 равным 0,

На следующем рисунке показано, когда θ1 = 1:

При θ1 = 0,5:

Следующий рисунок представляет собой приблизительное изображение J(θ1):

Следовательно, нам нужно найти θ1, чтобы минимизировать функцию стоимости, и в приведенном выше случае θ1 = 1 — это значение, которое нам нужно.

При рассмотрении как θ0, так и θ1 изображение выглядит так: Это трехмерный поверхностный график. Две оси представляют θ0 и θ1. При изменении размера θ0 и θ1 вы получите различные функции стоимости J(θ0, θ1).Для конкретной точки (θ0, θ1) высота этой поверхности, то есть высота в вертикальном направлении, представляет собой значение функции стоимости J(θ0, θ1).

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

Контурный график — это график, содержащий множество контурных линий. Контуры двумерной функции имеют одно и то же значение во всех точках одной строки.

Три зеленые точки на зеленой линии выше имеют одинаковое значение.

Приведенный выше график минимизирует функцию стоимости, насколько это возможно, с θ0 около 250 и θ1 около 0,12. Нанесение этих значений справа от нашего графика, кажется, помещает нашу точку в центр самого внутреннего «круга».

градиентный спуск

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

Представьте, что мы строим нашу функцию гипотезы в зависимости от ее полей θ0, θ1 (на самом деле мы строим функцию стоимости как функцию оценок параметров). Вместо построения самих x и y мы отображаем диапазон параметров для нашей гипотетической функции и стоимость выбора определенного набора параметров.

У нас есть θ0 в качестве оси x и θ1 в качестве оси y с функцией стоимости на вертикальной оси z. Точки на нашем графике будут результатом функции стоимости с использованием наших предположений и этих конкретных тета-параметров. На изображении ниже показана такая установка.

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

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

Например, расстояние между каждой «звездой» на изображении выше представляет собой размер шага, определяемый параметром α. Меньшее значение α приведет к меньшему размеру шага, большее α приведет к большему размеру шага. Направление каждого шага определяется частной производной от J(θ0, θ1). В зависимости от того, где начинается график, он может заканчиваться в разных точках. На изображении выше показаны две разные отправные точки, которые заканчиваются в двух разных местах.

Алгоритм градиентного спуска:

Повторять до сходимости:

j = 0,1 представляет собой порядковый номер признака.

На каждой итерации j параметры θ1, θ2,..., θn должны обновляться одновременно. Обновите определенный параметр j перед вычислением другого параметра (th) итерация приведет к неправильной реализации. Как показано ниже: (должно обновляться одновременно, а не обновлять одно, а затем обновлять другое)

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

Наша формула с одним параметром:

Повторять до сходимости:

несмотря ни на что

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

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

Как сходится градиентный спуск с фиксированным размером шага α?

Когда мы приближаемся к основанию выпуклой функции,

Вблизи 0, в самой нижней точке производная всегда равна 0, поэтому получаем:

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

Градиентный спуск для линейной регрессии

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

где m — размер обучающей выборки, θ0 и θ1 обновляются одновременно, а xi,yi — значения в данной обучающей выборке.

Обратите внимание, что мы разделили два случая, когда θj равно θ0 и θ1 соответственно. Ниже приведен пример вывода

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

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

Эллипс, показанный выше, является контуром квадратичной функции. Также показана траектория градиентного спуска, который инициализируется в (48, 30). X на графике (соединенный прямой линией) отмечает последовательные значения θ, полученные при градиентном спуске, когда он сходится к своему минимальному значению.