Главная страница
Навигация по странице:

  • 2.3.2. Демонстрация градиентного спуска в случае парной регрессии

  • 2.3.3. Выбор размера шага в методе градиентного спуска

  • 2.3.4. Случай многомерной линейной регрессии

  • 2.4. Стохастический градиентный спуск

  • 2.4.1. Недостатки обычного метода градиентного спуска

  • 2.4.2. Стохастический градиентный спуск

  • 2.4.3. Сходимость стохастического градиентного спуска

  • 2.4.4. Особенности стохастического градиентного спуска

  • 2.5. Линейная классификация 2.5.1. Задача бинарной классификации

  • 2.5.2. Линейный классификатор

  • 2.5.3. Геометрический смысл линейного классификатора

  • 2.6. Функции потерь в задачах классификации 2.6.1. Пороговая функция потерь

  • 2.6.3. Примеры оценок функции потерь

  • 2.6.4. Логистическая функция потерь

  • Урок 1 Знакомство с машинным обучением


    Скачать 1.57 Mb.
    НазваниеУрок 1 Знакомство с машинным обучением
    Анкорsssss
    Дата01.12.2019
    Размер1.57 Mb.
    Формат файлаpdf
    Имя файлаlinear_models.pdf
    ТипУрок
    #97900
    страница4 из 4
    1   2   3   4

    2.3. Градиентный спуск для линейной регрессии
    2.3.1. Случай парной регрессии
    В случае парной регрессии признак всего один, а линейная модель выглядит следующим образом:
    a(x) = w
    1
    x + w
    0
    ,
    где w
    1
    и w
    0
    — два параметра.
    Среднеквадратичная ошибка принимает вид:
    Q(w
    0
    , w
    1
    , X) =
    1
    `
    `
    X
    i=1
    (w
    1
    x i
    + w
    0
    − y i
    )
    2
    Для нахождения оптимальных параметров будет применяться метод градиентного спуска, про который уже было сказано ранее. Чтобы это сделать, необходимо сначала вычислить частные производные функции ошиб- ки:
    ∂Q
    ∂w
    1
    =
    2
    `
    `
    X
    i=1
    (w
    1
    x i
    + w
    0
    − y i
    )x i
    ,
    ∂Q
    ∂w
    0
    =
    2
    `
    `
    X
    i=1
    (w
    1
    x i
    + w
    0
    − y i
    ).
    2.3.2. Демонстрация градиентного спуска в случае парной регрессии
    Следующие два графика демонстрируют применение метода градиентного спуска в случае парной регрес- сии. Справа изображены точки выборки, а слева — пространство параметров. Точка в этом пространстве обозначает конретную модель.
    Рис. 2.2: Демонстрация метода градиентного спуска.
    4


    График зависимости функции ошибки от числа произведенных операции выглядит следующим образом:
    0 20 40 60 80 100 0
    50 100 150 200 250 300
    номер итерации ошибки
    Рис. 2.3: Ошибка в зависимости от номера итерации
    2.3.3. Выбор размера шага в методе градиентного спуска
    Очень важно при использовании метода градиентного спуска правильно подбирать шаг. Каких-либо конкрет- ных правил подбора шага не существует, выбор шага — это искусство, но существует несколько полезных закономерностей.
    w
    1
    w
    2
    w
    3
    w
    4
    w
    5
    w
    1
    w
    3
    w
    5
    w
    7
    w
    2
    w
    4
    w
    6
    Рис. 2.4: Случаи маленького и большого шага
    Если длина шага слишком мала, то метод будет неспеша, но верно шагать в сторону минимума. Если же взять размер шага очень большим, появляется риск, что метод будет перепрыгивать через минимум. Более того, есть риск того, что градиентный спуск не сойдется.
    Имеет смысл использовать переменный размер шага: сначала, когда точка минимума находится еще да- леко, двигаться быстро, а позже, спустя некоторое количество итерации — делать более аккуратные шаги.
    Один из способов задать размер шага следующий:
    η
    t
    =
    k t
    ,
    где k — константа, которую необходимо подобрать, а t — номер шага.
    2.3.4. Случай многомерной линейной регрессии
    В случае многомерной линейной регрессии используется тот же самый подход — необходимо решать задачу минимизации:
    Q(w, X) =
    1
    `
    kXw − yk
    2

    min w
    ,
    где kxk — норма вектора x. Формула для вычисления градиента принимает следующий вид:

    w
    Q(w, X) =
    2
    `
    X
    T
    (Xw − y)
    5

    Стоит отметить, что вектор Xw − y, который присутствует в данном выражении, представляет собой вектор ошибок.
    2.4. Стохастический градиентный спуск
    В этом блоке речь пойдет о стохастическом градиентном спуске, который особенно хорошо подходит для обучения линейных моделей.
    2.4.1. Недостатки обычного метода градиентного спуска
    В обычном методе градиентного спуска на каждом шаге итерации следующее приближение получается из предыдущего вычитанием вектора градиента, умноженного на шаг η
    t
    :
    w t
    = w t−1
    − η
    t
    ∇Q(w t−1
    , X).
    При этом выражение для градиента в матричной форме имеет вид:

    w
    Q(w, X) =
    2
    `
    X
    T
    (Xw − y)
    Выражение для j-ой компоненты градиента, таким образом, содержит суммирование по всем объектам обу- чающей выборки:
    ∂Q
    ∂w j
    =
    2
    `
    `
    X
    i=1
    x j
    i
    (hw, x i
    i − y i
    ).
    В этом и состоит основной недостаток метода градиентного спуска — в случае большой выборки даже одна итерация метода градиентного спуска будет производиться долго.
    2.4.2. Стохастический градиентный спуск
    Идея стохастического градиентного спуска основана на том, что в сумме в выражении для j-компоненты градиента i-ое слагаемое указывает то, как нужно поменять вес w j
    , чтобы качество увеличилось для i-го объекта выборки. Вся сумма при этом задает, как нужно изменить этот вес, чтобы повысить качество для всех объектов выборки. В стохастическом методе градиентного спуска градиент функции качества вычисляется только на одном случайно выбранном объекте обучающей выборки. Это позволяет обойти вышеупомянутый недостаток обычного градиентного спуска.
    Таким образом, алгоритм стохастического градиентного спуска следующий. Сначала выбирается началь- ное приближение:
    w
    0
    = 0
    Далее последовательно вычисляются итерации w t
    : сначала случайным образом выбирается объект x i
    из обучающей выборки X и вычисляется вектор градиента функции качества на этом объекте, а следующее приближение получается из предыдущего вычитанием умноженного на шаг η
    t полученного вектора:
    w t
    = w t−1
    − η
    t
    ∇Q(w t−1
    , {x i
    }).
    Итерации прекращаются при достижении определенного условия, например:
    kw t
    − w t−1
    k < ε.
    2.4.3. Сходимость стохастического градиентного спуска
    Показательно посмотреть на графики сходимости градиентного спуска и стохастического градиентного спус- ка. В обычном градиентном спуске на каждом шаге уменьшается суммарная ошибка на всех элементах обу- чающей выборки. График в таком случае обычно получается монотонным.
    6

    0 20 40 60 80 100 0
    50 100 150 200 250 300
    номер итерации ошибки
    Рис. 2.5: Ошибка в зависимости от номера итерации
    Напротив, в стохастическом методе весовые коэффициенты меняются таким образом, чтобы максимально уменьшить ошибку для одного случайно выбранного объекта. Это приводит к тому, что график выглядит пилообразным, то есть на каждой конкретной итерации полная ошибка может как увеличиваться, так и уменьшаться. Но в итоге с ростом номера итерации значение функции уменьшается.
    2.4.4. Особенности стохастического градиентного спуска
    Стохастический градиентный спуск (SGD) обладает целым рядом преймуществ. Во-первых, каждый шаг вы- полняется существенно быстрее шага обычного градиентного метода, а также не требуется постоянно хранить всю обучающую выборку в памяти. Это позволяет использовать для обучения выборки настолько большие,
    что они не помещаются в память компьютера. Стохастический градиентный спуск также можно использовать для онлайн-обучения, то есть в ситуации, когда на каждом шаге алгоритм получает только один объект и должен учесть его для коррекции модели.
    2.5. Линейная классификация
    2.5.1. Задача бинарной классификации
    В этом разделе рассматривается задача линейной классификации, то есть применение линейных моделей к задаче классификации. Речь пойдет о самом простом виде классификации — бинарной классификации. В
    случае бинарной классификации множество возможных значений ответов состоит из двух элементов:
    Y = {−1, +1}.
    Как уже было сказано, чтобы работать с той или иной моделью нужно:
    • Выбрать функционал (функцию) ошибки, то есть задать способ определения качества работы того или иного алгоритма на обучающей выборке.
    • Построить семейство алгоритмов, то есть множество алгоритмов, из которого потом будет выбираться наилучший с точки зрения определенного функционала ошибки.
    • Ввести метод обучения, то есть определить способ выбора лучшего алгоритма из семейства.
    2.5.2. Линейный классификатор
    Ранее была рассмотрена задача линейной регрессии. В этом случае алгоритм представлял собой линейную комбинацию признаков с некоторыми весами и свободным коэффициентом.
    Линейные классификаторы устроены похожим образом, но они должны возвращать бинарные значения,
    а следовательно требуется также брать знак от получившегося выражения:
    a(x) =
    sign


    w
    0
    +
    d
    X
    j=1
    w j
    x j


    7

    Как и раньше, добавлением еще одного постоянного для всех объектов признака можно привести формулу к более однородному виду:
    a(x) =
    sign d+1
    X
    j=1
    w j
    x j
    =
    signhw, xi
    2.5.3. Геометрический смысл линейного классификатора
    Выражение hw, xi = 0 является уравнением некоторой плоскости в пространстве признаков.
    y z
    x

    w
    Рис. 2.6: Геометрический смысл линейного классификатора
    При этом для точек по одну сторону от этой плоскости скалярное произведение hw, xi будет положитель- ным, а с другой — отрицательным.
    Таким образом, линейный классификатор проводит плоскость в пространстве признаков и относит объ- екты по разные стороны от нее к разным классам.
    Согласно геометрическому смыслу скалярного произведения, расстояние от конкретного объекта, который имеет признаковое описание x, до гиперплоскости hw, xi = 0 равно
    |hw,xi|
    kwk
    . С этим связано такое важное понятие в задачах линейной классификации как понятие отступа:
    M
    i
    = y i
    hw, x i
    i.
    Отступ является величиной, определяющей корректность ответа. Если оступ больше нуля M
    i
    > 0
    , то клас- сификатор дает верный ответ для i-го объекта, в ином случае — ошибается.
    Причем чем дальше отступ от нуля, тем больше уверенность как в правильном ответе, так и в том,
    что алгоритм ошибается. Если отступ для некоторого объекта отрицательный и большой по модулю, это значит, что алгоритм неправильно описывает данные: либо этот объект является выбросом, либо алгоритм не пригоден для решения данной задачи.
    2.6. Функции потерь в задачах классификации
    2.6.1. Пороговая функция потерь
    В случае линейной классификации естественный способ определить качество того или иного алгоритма —
    вычислить для объектов обучающей выборки долю неправильных ответов:
    Q(a, x) =
    1
    `
    `
    X
    i=1
    [a(x i
    ) 6= y i
    ]
    8

    С помощью введенного ранее понятия отступа можно переписать это выражение для случая линейной клас- сификации в следующем виде:
    Q(a, x) =
    1
    `
    `
    X
    i=1
    y i
    hw, x i
    i < 0
     =
    1
    `
    `
    X
    i=1
    M
    i
    < 0
    
    Функция, стоящая под знаком суммы, называется функцией потерь. В данном случае это пороговая функция потерь, график которой в зависимости от отступа выглядит следующим образом:
    M
    i
    0 1
    Рис. 2.7: График пороговой функции потерь
    Такая функция является разрывной в точке 0, что делает невозможным применение метода градиентного спуска. Можно, конечно, использовать методы негладкой оптимизации, о которых шла речь в прошлом курсе,
    но они сложны в реализации.
    2.6.2. Оценка функции потерь
    Используя любую гладкую оценку пороговой функции:
    M
    i
    < 0
     ≤ ˜
    L(M
    i
    )
    можно построить оценку ˜
    Q(a, X)
    для функционала ошибки Q(a, X):
    Q(a, X) ≤ ˜
    Q(a, X) =
    1
    `
    `
    X
    i=1
    ˜
    L(M
    i
    ).
    В этом случае минимизировать нужно будет не долю неправильных ответов, а некоторую другую функцию,
    которая является оценкой сверху:
    Q(a, X) ≤ ˜
    Q(a, X) =
    1
    `
    `
    X
    i=1
    ˜
    L(M
    i
    ) →
    min a
    Здесь используется предположение, что в точке минимума этой верхней оценки число ошибок также будет минимально. Строго говоря, это не всегда так.
    2.6.3. Примеры оценок функции потерь
    Примерами таких оценок функции потерь являются:
    • Логистическая функция потерь (используется в логистической регрессии, о которой пойдет речь позже в данном курсе):
    ˜
    L(M ) =
    log
    2
    exp(−M)
    • Экспоненциальная функция потерь:
    ˜
    L(M ) =
    exp(−M)
    9

    • Кусочно-линейная функция потерь (используется в методе опорных векторов):
    ˜
    L(M ) =
    max(0, 1 − M)
    M
    i
    0 1
    2
    Рис. 2.8: Графики различных функций потерь: пороговая (красная линия), экспоненциальная (синяя), логи- стическая (оранжевая) и кусочно-линейная (серая).
    2.6.4. Логистическая функция потерь
    В случае логистической функции потерь функционал ошибки имеет вид:
    ˜
    Q(a, X) =
    1
    `
    `
    X
    i=1
    ln exp(−M
    i
    )
     =
    1
    `
    `
    X
    i=1
    ln exp(−y i
    hw, x i
    i)
    .
    Получившееся выражение является гладким, а, следовательно, можно использовать, например, метод гради- ентного спуска.
    Следует обратить внимание, что в случае, если число ошибок стало равно нулю, все равно в ходе обучения алгоритма линейной классификации будут увеличиваться отступы, то есть будет увеличиваться уверенность в полученных результатах.
    10
    1   2   3   4


    написать администратору сайта