Мухамедиев Равиль Ильгизович - Введение в машинное обучение стр 4.

Шрифт
Фон

Определено отображение y: Ob Y, которое задано лишь на конечном множестве объектов (обучающей выборке (прецедентах) (sample set)) размером m:



то есть известны метки объектов ob1, ob2,, obm. Требуется построить алгоритм A («обучить»), который по объекту ob определяет значение y(ob) или «достаточно близкое» значение, если допускается неточное решение.

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

При конечном множестве Y = {1, 2,, l} задачу называют задачей классификации (на l непересекающихся классов). В этом случае можно считать, что множество X разбито на классы C1,, Cl, где Ci = {ob Ob | y(ob) = i} при i{1, 2,, l}:

Ob =

1

i=1

C

i

.

При Y = {(α1,,αl ) |α1,,αl {0,1 говорят о задаче классификации на l пересекающихся классов. Здесь i-й класс Ci = {ob Ob | y(ob) = (α1,,αl), αi = 1}.

Для решения задачи, то есть поиска оптимального алгоритма A, вводится функция потерь или функция стоимости (cost function) J(A(ob), y(ob)), которая описывает, насколько «плох» ответ A(ob) по сравнению с верным ответом y(ob). В задаче классификации можно считать, что



а в задаче регрессии

J(A(ob), y(ob)) = | A(ob) y(ob) |

или

J(A(ob), y(ob)) = (A(ob) y(ob))2.

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

Таким образом, каждый объект ob описывается конечным набором (входных) параметров или свойств (input values or features) x

1

2

n

obi Ob

Алгоритм А может описываться конечным набором параметров θi θ или, как часто говорится при описании нейронных сетей, весов (weights) wi W.

Задача обучения по примерам рассматривается как задача оптимизации, которую решают путем настройки множества параметров θ алгоритма А так, чтобы минимизировать значение функции стоимости J(θ) по всем примерам m.

В задаче регрессии алгоритм A часто называется функцией гипотезы, а функция стоимости определяется как сумма квадратов разности «предсказываемого» алгоритмом (функцией гипотезы) значения и реального значения у по множеству примеров m. При этом подбирается такая функция гипотезы hθ(x), которая при некотором наборе параметров θi θ обеспечивает минимальное значение J(θ).



где m множество обучающих примеров или объектов; x

(i)

(i)

hθ h

θ

θ

0

θ

1

xh

θ

θ

0

θ

1

x θ

2

x

2

Например, если мы рассматриваем задачу прогнозирования стоимости автомобиля, исходя из года его производства, то год производства будет являться входной переменной или свойством (x), а стоимость целевой переменной (y) (рисунок 2.1).


Рисунок 2.1. Зависимость стоимости автомобиля от года выпуска


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

Забегая вперед, можно сказать, что для подбора параметров θi необходимо, чтобы параметры xjX (в многомерном случае), описывающие объекты, были выражены единицами одинаковой размерности и примерно одинаковой величины. Чаще всего путем нормализации стремятся представить все параметры в виде чисел в диапазоне 0x1 или 1x1. Вообще говоря, выбор функции нормализации зависит от класса задачи. Кроме того, в процессе предварительной обработки данных могут быть использованы методы, обеспечивающие исключение аномальных значений, исключение шумов (например, высокочастотных) путем сглаживания и т.п. Выбор этих методов также зависит от класса задачи. После того как параметры нормализованы и очищены от аномальных значений, а также исключены объекты, которые определены не полностью (то есть объекты, для которых часть свойств неизвестна), выполняется поиск функции гипотезы hθ(x), которая минимизирует стоимость J(θ).

2.2. Линейная регрессия одной переменной

Задача линейной регрессии формулируется как поиск минимальной функции стоимости (см. формулу 2.1) при условии, что функция гипотезы является линейной hθ = θ

0

θ

1

xhθ(x) θ

0

θ

1



где α параметр обучения; а является производной функции стоимости по θj. Знак := означает присваивание, в отличие от знака равенства (=), применяемого в алгебраических выражениях.

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



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



и записать в виде:



с учетом того, что x

0

θ

С учетом дифференцирования выражения 1.3 и 1.4 можно переписать в виде:



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

Наиболее простой в реализации, но не оптимальный по времени выполнения пакетный алгоритм градиентного спуска (Batch Gradient Descent) использует все обучающие примеры на каждом шаге алгоритма. Вместо алгоритма градиентного спуска для нахождения параметров θj можно использовать матричное выражение:



где θ вектор параметров; (XTX)

-1

XTXXT X

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

3


Рассмотрим пример.

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


%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

import time


Отметим, что библиотека time позволит нам рассчитать время выполнения программы. Ее применение будет понятно из нижеследующего кода. Сформируем обучающее множество, состоящее из 30 примеров:


xr=np.matrix(np.linspace(0,10,30))

x=xr.T

#значения функции зададим в виде следующего выражения

y=np.power(x,2)+1

#Построим график (рисунок) командами

plt.figure(figsize=(9,9))

plt.plot(x,y,'.')


Рисунок 2.2. График функции y=x2+1


В нашем случае мы задали фиксированное множество примеров (m = 30), однако в дальнейшем мы можем его изменить. Для тогo чтобы программа воспринимала любое множество примеров, определим его, используя метод size:


m=x.size

#сформируем первую колонку матрицы X, состоящую из единиц

on=np.ones([m,1])

#и сформируем матрицу X, объединив колонки

X=np.concatenate((on,x),axis=1)


Это матрица, в первой колонке которой стоят единицы, а во второй значения x

(1)

(2)

(m)


theta=np.matrix('0.1;1.3')

#и рассчитаем значения функции гипотезы

h=np.dot(X,theta)

#дополним предыдущий график регрессионной прямой

plt.plot(x,h)


Получим график вида:


Рисунок 2.3. Начальное положение прямой регрессии


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

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3