Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Большие данные - лекция-11 - логистическая регрессия: градиентный спуск с сигмоидой

Anton
May 22, 2019

Большие данные - лекция-11 - логистическая регрессия: градиентный спуск с сигмоидой

Логистическая регрессия: градиентный спуск с сигмоидой

Обновлено: 14.05.2020
https://vk.com/video53223390_456239473

Anton

May 22, 2019
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Логистическая регрессия:
    градиентный спуск с сигмоидой

    View full-size slide

  2. Использованы материалы

    Python и машинное обучение, Себастьян Рашка

    Глубокое обучение. Погружение в мир нейронных
    сетей, С. Николенко, А. Кадурин, Е. Архангельская

    Высшая математика. Теория вероятностей,
    математическая статистика, случайные процессы.
    Сборник задач с решениями. В.Г. Крупин, А.Л.
    Павлов, Л.Г. Попов

    Википедия, Хабр, Интернет

    View full-size slide

  3. Структура искусственного нейрона

    View full-size slide

  4. Искусственный нейрон — бинарная
    классификация объектов

    На входе: объект выборки — вектор m-мерного пространства
    x=(x
    1
    , …, x
    m
    )

    Весовые коэффициенты w=(w
    0
    , w
    1
    , …, w
    2
    ) по одному на
    каждый признак объекта выборки плюс свободный
    коэффициент w
    0
    ((m+1)-мерный вектор)

    Внутри: сумматор SUM=w
    0
    +w
    1
    x
    1
    +...+w
    m
    x
    m
    — взвешенная
    сумма входов нейрона

    Здесь сразу возьмем свободный коэффициент w
    0
    (фиктивный вход, «нейрон» смещения x
    0
    =1)

    View full-size slide

  5. Искусственный нейрон — бинарная
    классификация объектов

    Дальше: активация+порог — предсказание метки
    класса объекта по взвешенной сумме входов нейрона
    (признаков объекта). Эта часть определяет
    архитектуру нейрона.

    На выходе: метка класса объекта (одна из 2-х) y={1, 0}

    По сравнению с прошлым разом (ADALINE): y={1, 0}, а
    не y={1, -1}

    View full-size slide

  6. Структура искусственного нейрона
    (с фиктивным входом — «нейроном» смещения)

    View full-size slide

  7. Логистическая регрессия

    Активация Φ(x,w) = Φ(SUM) = Φ(s) — сигмоида

    Замечание: хотя в названии алгоритма употребляется слово «регрессия»,
    речь идет о решении задачи классификации, а не построения регрессии

    Построение регрессии — это этап поиска параметров функции активации

    Классификация — пропускание непрерывной активации (регрессии) через
    порог
    Φ(x(i),w)=Φ(∑
    j=0
    m
    w
    j
    x
    j
    (i))=σ(∑
    j=0
    m
    w
    j
    x
    j
    (i))
    =σ(s(i))=
    1
    1+e−s(i)
    ,s(i)=s(x(i),w)=∑
    j=0
    m
    w
    j
    x
    j
    (i)

    View full-size slide

  8. Порог (квантизатор)

    Порог для окончательной классификации
    можно взять 0.5:
    ŷ(i)=
    {1,σ(s(i))≥0.5
    0,σ(s(i))<0.5

    View full-size slide

  9. На графике отметим

    Сигмоида всегда больше нуля и меньше 1

    Сигмоида пересекает порог 0.5 там, где SUM=0
    ŷ(i)=
    {1,σ(s(i))≥0.5
    0,σ(s(i))<0.5
    ⇒ ŷ(i)=
    {1,s(i)≥0
    0,s(i)<0
    0<σ(s(i))<1

    View full-size slide

  10. Одномерное пространство (m=1)
    (у объектов x всего один признак x
    1
    ,
    одна колонка в таблице)

    View full-size slide

  11. gradient-sigma-1d.py
    import numpy as np
    import math
    # точки - признаки (одно измерение)
    X1 = np.array([1, 2, 6, 8, 10])
    # метки классов (правильные ответы)
    y = np.array([0, 0, 1, 1, 1])

    View full-size slide

  12. Сигмоида-активация

    Взвешенная сумма — прямая на плоскости:

    Активации с параметром выглядит так:
    s(i)=w
    0
    +w
    1
    x
    1
    (i)
    Φ(x(i) ,w)=σ(s(i))=σ(w
    0
    +w
    1
    x
    1
    (i))

    View full-size slide

  13. Сигмоида-активация

    Точка пересечения активации с порогом Ф=0.5 разделяет точки на классы

    Направление изгиба (направление роста) активации назначает точкам
    метки классов

    На вертикальной оси: активация Φ(SUM) и значение суммы SUM

    SUM=w
    0
    +w
    1
    x — параметрическая прямая

    Параметр w
    1
    — задаёт угол наклона прямой SUM, w
    0
    — смещение по
    вертикальной оси

    Сигмоида-активация «следует» за прямой SUM (совсем не удивительно):
    - кривизна и направление изгиба активации следует за углом наклона SUM,
    параметр w
    1
    - пересечение порога Ф=0.5 активацией происходит там же, где SUM=0, за
    это отвечает параметр w
    0

    View full-size slide

  14. Добавим горизонтальные метки классов

    View full-size slide

  15. Добавим горизонтальные метки классов

    Интуитивно: чем ближе проекции точек на линии активации к
    своим проекциям на метках классов, тем лучше построенная
    активация (выбрали хорошие параметры w
    0
    и w
    1
    )

    Раньше (с линейной активацией ADALINE) мы использовали
    сумму квадратичных ошибок (расстояний от меток классов до
    линии активации)

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

    View full-size slide

  16. Какое положение активации считать
    оптимальным?

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

    поэтому рассмотрим вариант покрасивее...

    View full-size slide

  17. Сигмоида-активация как вероятность

    Её можно интерпретировать как вероятность:
    - чем больше взвешенная сумма, тем ближе значение сигмоиды-
    активации к 1, тем более «вероятно», что объект принадлежит
    классу «1» (нейрон активируется)
    - чем меньше взвешенная сумма, тем ближе значение сигмоиды-
    активации к 0, тем более «вероятно», что объект принадлежит
    классу «0» (нейрон не активируется)

    Это не значит, что она является настоящей вероятностью, но
    нам здесь достаточно возможности простой интерпретации
    0<σ(s(i))<1

    View full-size slide

  18. Нам нужна функция стоимости

    (которую мы будем минимизировать, чтобы
    найти оптимальное положение активации)

    Мы можем интерпретировать активацию-
    сигмоиду как вероятность некоторой случайной
    величины

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

    View full-size slide

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

    View full-size slide

  20. Немного теории вероятностей

    (в необходимом нам объеме)

    Случайная величина, эксперимент

    Условная вероятность

    Функция правдоподобия, метод наибольшего
    правдоподобия

    Распределение Бернулли

    View full-size slide

  21. Случайная величина

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

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

    View full-size slide

  22. Случайная величина

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

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

    View full-size slide

  23. Случайная величина

    Неправильная (или намеренно искаженная) интерпретация
    предметной области может приводить к странным
    противоречивым результатам (на этом основаны некоторые
    известные «парадоксы», например, см. «парадокс»
    Бертрана)

    Бытовая интуиция может здесь сыграть плохую роль,
    поэтому не следует на нее полагаться сгоряча (см.
    «парадокс» Монти Холла, обыграно в фильме «Двадцать
    одно» с Кевином Спейси)

    View full-size slide

  24. Классический эксперимент:
    вы достали шар из мешка, какого цвета
    выбранный шар — синий или красный?

    View full-size slide

  25. Как подступиться?

    Нам нужны условия эксперимента

    Как минимум: мы должны знать, сколько в мешке синих и
    красных шаров (и что там вообще лежат разноцветные шары)

    1000 шаров, 500 синих, 500 красных: вероятность ½ для синих и
    красных, может быть и то и другое (если мы не знаем историю
    или достаём первый шар)

    1000 шаров, 800 синих, 200 красных: вероятность 0.8 для синих,
    0.2 для красных, скорее всего мы достали синий шар

    1000 шаров, 1000 синих, 0 красных: вероятность 1 для синих, 0
    для красных, я бы поставил на то, что мы достали синий шар

    View full-size slide


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

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

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

    (это справедливо для любой пропорции синих и красных
    шаров)

    View full-size slide

  27. Откуда такая уверенность?

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

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

    Подтверждено множеством независимых наблюдений многих лет по всему
    миру (можете проверить сами)

    Наблюдения работают одинаковым образом для разных типов истинных
    («природных») случайных величин: бросок монетки, бросок кубика, рулетка,
    период полураспада атома и т. п.

    View full-size slide

  28. Откуда такая уверенность?

    Что, если в мешке 1000 шаров, 500 красных и 500 синих,
    человек достаёт подряд 500 синих шаров?

    Скорее всего что-то не так с мешком или мы не знаем что-то
    важное об эксперименте*:
    синие шары лежат наверху, синие шары приятнее на ощупь,
    мешок прозрачный** и человек любит синий цвет и т. п.
    * как великан, не распознавший в камне птицу («Храбрый
    портняжка», братья Гримм)
    ** обыграно в «Криптономиконе» Нила Стивенсона

    View full-size slide

  29. Как будем назначать вероятность,
    если мы не можем свести задачу к
    шарам в мешке или
    «броску монетки»?

    View full-size slide

  30. Вернемся к исходной задаче

    Ну нас есть объекты (шары): два класса (синие и красные) (ок)

    Мы берем объекты-шары по одному и пытаемся угадать, какого
    выбранный шар скорее всего цвета — синего или красного (ок)

    У каждого из объектов-шаров, помимо цвета, есть еще набор
    признаков (колонки таблицы)
    Например:

    Очередь к врачу, врач ставит пациенту диагноз «болен/здоров» (для
    известной болезни) по набору признаков: симптомы, результаты
    анализов, анкетные данные (пол, возраст, рост, вес и т.п.)

    View full-size slide

  31. Вернемся к исходной задаче

    Количества объектов мы не знаем, поток проверок
    идет бесконечно (мешок не ок, но есть еще бросок
    монетки — пока, вроде, не проблема)

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

    View full-size slide

  32. Вернемся к исходной задаче

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

    На результат назначения цвета (постановки диагноза)
    вообще не должно влиять количество элементов,
    отправленных на рассмотрение (например, врач при
    обучении изучил 30 анкет подтвержденных здоровых и 70
    анкет подтвержденных больных пациентов, это не значит,
    что к нему будет приходить 30% здоровых и 70% больных
    каждый день)

    View full-size slide

  33. Вернемся к исходной задаче

    Как будем назначать вероятность?

    Как здесь понимать вероятность?

    Проявит ли себя здесь вероятность как закон
    природы?

    Если проявит, то в каком виде?

    В чем здесь вообще эксперимент?

    View full-size slide

  34. Посмотрим на задачу с мешком и
    шарами немного под другим углом

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

    Какова вероятность, что слева синий шар? Какова вероятность, что
    справа синий шар?

    View full-size slide

  35. Посмотрим на задачу с мешком и
    шарами немного под другим углом

    Нам нужно знать условия эксперимента для каждого шара

    Или скажем немного по-другому: то, что мы знаем о шаре — это то,
    в каких условиях проводился (каким был) доставивший его к нам
    эксперимент

    Про левый шар мы знаем, что его доставали из мешка с 1000 шаров,
    800 синих, 200 красных, значит его вероятность оказаться синим 0.8

    Про правый шар мы знаем, что его доставали из мешка с 1000 шаров,
    500 синих, 500 красных, значит его вероятность оказаться синим 0.5

    View full-size slide


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

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

    View full-size slide

  37. Замечание

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

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

    View full-size slide

  38. Вернемся к пациентам

    Перед нами шар (пациент)

    Какова вероятность, что он синий (болен)?

    Что мы знаем о шаре (пациенте), помимо того,
    что он может быть синий или красный (болен или
    здоров)?

    Мы знаем его признаки (анкетные данные,
    симптомы и анализы)!

    Вот по этим признакам и будем судить!

    View full-size slide

  39. Вернемся к пациентам

    Таким образом, у нас должна появиться некоторая функция,
    которая по признакам объекта-шара будет назначать ему
    вероятность (число от 0 до 1) оказаться синим (или красным,
    т.е. не синим)

    Никакой известной «природной» вероятности, чтобы, сразу
    назначить значения (например, распределить вероятности
    пропорционально количеству шаров в мешке), у нас здесь нет

    Но у нас есть обучающая выборка — подборка объектов
    (анкетные данные, симптомы и анализы) с известными
    правильными ответами (выставленными диагнозами).

    View full-size slide

  40. Вернемся к пациентам

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

    View full-size slide

  41. Вернемся к пациентам

    Таким образом, мы не знаем, как выглядит реальная
    функция (и существует ли она вообще в природе как
    некоторая стабильно воспроизводимая зависимость),

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

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

    View full-size slide

  42. Предположения

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

    Частное предположение-1: о форме этого неизвестного
    закона, в каком виде мы будем его искать, как выглядит
    функция, параметры которой мы будем под него подгонять

    Частное предположение-2: насколько хороши выбранные
    параметры в рамках частного предположения-1, можно ли
    сделать еще более качественную подгонку

    View full-size slide

  43. Общее предположение

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

    Другими словами: предсказание работает, значит закон природы всё-таки
    есть и мы смогли приблизить его эффект.

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

    View full-size slide

  44. Частное предположение-1

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

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

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

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

    View full-size slide

  45. Частное предположение-2

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

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

    Отсутствие глобальной зависимости между параметрами
    объекта и классом объекта никак не помешает нам найти
    оптимальные параметры на обучающей выборке

    View full-size slide

  46. Замечание: условная вероятность

    Строго говоря, мы можем представить наш опыт как последовательность
    двух случайных событий:
    - Событие-1: какова вероятность из всего множества объектов выбрать
    объект с такими параметрами, как параметры объекта, который попал к нам
    на рассмотрение (какова вероятность, что в кабинет врача войдет пациент с
    таким возрастом, весом, такими симптомами и такими анализами)?
    (здесь не обязательно точное совпадение, речь может идти о попадании
    в некоторый близкий диапазон)
    - Событие-2: исходя из того, что объект с такими параметрами (человек
    именно с таким возрастом, весом, такими симптомами и такими анализами)
    попал к нам на рассмотрение (зашел в кабинет), какова вероятность для
    этого объекта оказаться синим шаром (для пациента — подтвердить
    наличие болезни)?

    View full-size slide

  47. Замечание: условная вероятность

    Это называется условная вероятность

    В общем виде: какова вероятность наступления события y при условии, что событие
    x уже произошло?

    Обозначается как:

    В нашем случае:
    или
    p( y∣x)
    p( y∣x)=p( y=1∣x=(x
    1
    ,..., x
    m
    ))
    p( y∣x)=p( y=0∣x=(x
    1
    ,..., x
    m
    ))

    View full-size slide

  48. Замечание: условная вероятность

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

    Например, мы можем выявить более мелкие «группы» объектов внутри больших
    целевых групп (например, окажется, что на приём приходят в основном молодые
    люди 18-20 лет с избыточным весом, взрослые 35-40 лет с нормальным весом и
    пожилые люди 75-80 лет, диагнозы внутри этих групп будут выставляться с
    разными долями вероятностей)

    визуально: синие и красные точки кучкуются на оси

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

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

    И т.д.

    View full-size slide


  49. Здесь красные точки слева, синие точки справа,

    Искомая вероятность — получить нужный цвет (уравняет
    все группы, т. к. бьет по площадям)

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

    View full-size slide

  50. Замечание: условная вероятность

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

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

    View full-size slide

  51. Замечание: условная вероятность
    Но

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

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

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

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

    От условной вероятности здесь оставим только обозначения.

    View full-size slide


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

    если она разделяет объекты на два класса

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

    Нас это может устраивать, но нужно это иметь ввиду

    View full-size slide

  53. Строим параметрическую
    подгоночную функцию

    View full-size slide

  54. Итак, у нас есть

    Функция активации — сигмоида, для каждого элемента
    выдаёт значение от 0 до 1, его и будем принимать за
    вероятность назначения объекту класса «1».

    Активация выдаёт значения для объектов (назначает
    вероятность получить класс «0» или «1»), исходя из
    значений признаков объекта, взятых как взвешенная
    сумма

    Признаки объектов x
    j
    у нас данность, мы можем
    настраивать весовые коэффициенты w
    j

    View full-size slide

  55. Итак, у нас есть

    Функция активации (сигмоида) — это и есть наша искомая
    приближающая (имитирующая) «закон природы» функция (мы будем
    искать ее в таком виде)

    Коэффициенты w — это параметры искомой приближающей функции

    У нас так же есть обучающая выборка — набор объектов с заранее
    известным классом (y=«0» — красные точки, y=«1» — синие)

    Мы должны подобрать коэффициенты w так, чтобы для объектов
    обучающей выборки с классом y=«1» значение сигмоиды-активации
    было близко к 1, для y=«0» — к 0-лю.

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

    View full-size slide

  56. - Как будем подбирать коэффициенты?
    - Введем функцию стоимости!

    View full-size slide

  57. Функция стоимости (потерь)

    Зависит от параметров, которые мы хотим
    подобрать

    Чем меньше значение функции стоимости, тем
    лучшие значения параметров мы подобрали

    Имеет минимум (наилучшее значение искомых
    параметров)

    View full-size slide

  58. Для введения функции стоимости
    мы можем использовать

    Расстояние Кульбака-Лейблера и перекрестную
    энтропию
    или

    Функцию правдоподобия (likehood)
    В обоих случаях получим один и тот же результат —
    одну и ту же функцию стоимости (что любопытно)

    View full-size slide

  59. Расстояние Кульбака-Лейблера и
    перекрестная энтропия

    Мера разницы между двумя вероятностными
    распределениями P («истинное») и Q
    (приближение)

    Служит оценкой качества приближения Q к P:
    показывает, насколько приближенное
    распределение вероятности Q похоже на
    истинное распределение вероятности P

    View full-size slide

  60. Расстояние Кульбака-Лейблера и
    перекрестная энтропия

    Неотрицательно

    Равно нулю только тогда, когда P и Q совпадают почти всюду

    Не совсем расстояние (не симметрично: «расстояние» от P
    до Q может быть не равно «расстоянию» от Q до P)

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

    Самостоятельно: изучить матчасть по Кульбаку-Лейблеру и
    перекрестной энтропии

    View full-size slide

  61. Функция правдоподобия (likehood)

    Позволяет оценить, насколько наблюдаемые события
    вероятны (правдоподобны) в контексте данного
    (оцениваемого) вероятностного распределения

    Наблюдаемые события у нас будут известные
    назначения классов y(i) объектам x(i) в обучающей
    выборке

    Оцениваемое вероятностное распределение —
    приближенное распределение, наша приближающая
    функция при выбранных параметрах w

    View full-size slide

  62. Функция правдоподобия (likehood)

    Оценивать будем по результатам работы приближающей
    функции при выбранных параметрах w на обучающей
    выборке, т. е. по вероятностям, которая она назначит для
    тех же x(i) (значения сигмоид-активаций Ф(x(i); w)=Ф(s(i)))

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

    View full-size slide

  63. Функция правдоподобия вообще,
    метод наибольшего правдоподобия
    L(X ;θ)=∏
    i=1
    n
    p(x(i);θ)=p(x(1);θ)⋅p(x(2);θ)⋅...⋅p(x(n);θ)
    (большая П — произведение)

    X — наблюдаемая цепочка событий (всего n штук)

    x(i) — i-е наблюдаемое событие

    p(x(i); θ) — оценочная вероятность наступления события x(i) (или плотность вероятности в этой
    точке для непрерывной случайно величины) в рамках оцениваемой вероятностной модели

    θ — параметр для нашей вероятностной модели, влияет на значение вероятности, которую
    оцениваемая модель назначит для каждого из событий x(i)

    Чем больше множителей с оценочной вероятностью близкой к 1 и чем меньше множителей с
    оценочной вероятностью близкой к 0 даст модель, тем больше всё произведение

    Метод наибольшего правдоподобия: найти такое θ, для которого будет самое большое
    произведение

    View full-size slide

  64. Например: правдоподобие для шаров

    Эксперимент: достали из мешка 10 шаров — 5 синих, 5 красных
    - оцениваем распределение: синие — ½, красные — ½
    L = 1/2*1/2*...*1/2 = 1/2^10 = 0.0009765625
    - оцениваем распределение: синие — ¼, красные - ¾
    L = 1/4^5 * (3/4)^5 = 0.00023174286
    итого: лучший вариант — 1-е распределение (соответствует действительности)

    Эксперимент: достали из мешка 10 шаров — 2 синих, 8 красных
    - оцениваем распределение: синие — ½, красные — ½
    L = 1/2*1/2*...*1/2 = 1/2^10 = 0.0009765625
    - оцениваем распределение: синие — ¼, красные - ¾
    L = 1/4^2 * (3/4)^8 = 0.00625705719
    итого: лучший вариант — 2-е распределение (соответствует действительности)

    View full-size slide

  65. Интуитивный смысл

    Смысл: все множители, которые встречаются (результаты эксперимента),
    должны давать вклад в произведение — максимальную вероятность.

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

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

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

    имеет смысл только при сравнении.

    View full-size slide

  66. Функция правдоподобия для нашего случая
    L(w)=p(Y∣X ;w)=∏
    i=1
    n
    p( y(i)∣x(i);w)=∏
    i=1
    n
    (Φ(s(i)))y(i)
    (1−Φ(s(i)))1−y(i)
    (большая П — произведение)

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

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

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

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

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

    View full-size slide

  67. Правдоподобие для одного элемента
    (распределение Бернулли — для 2-х классов)

    Т.к. у у нас принимает значения только 0 или 1 (вообще говоря, до этого момента это были
    просто метки классов, но назначили мы их не просто так), то степень здесь — это всего-
    навсего хитрый способ получить равнозначную однострочную запись для:

    Если истинный класс i-го элемента y(i)=«1», то это вероятность получить класс «1» (синий)

    Если истинный класс i-го элемента y(i)=«0», то это вероятность получить класс «0» (красный)
    p( y(i)∣x(i);w)=(Φ(s(i)))y(i)
    (1−Φ(s(i)))1−y(i)
    p( y(i)∣x(i);w)=
    { Φ(s(i)), y(i)=1
    (1−Φ(s(i))), y(i)=0
    y(i):=
    {y(i)=1, y(i)=1
    y(i)=0, y(i)=0

    View full-size slide


  68. Нетрудно видеть для обоих случаев, т. к. 0 < Φ(s) < 1
    (выполнено для сигмоиды):

    При этом нельзя брать такую Φ(s) (если мы смотрим не
    сигмоду), которая может быть строго 0 или строго 1, т.к. это
    сразу обнулит всё произведение.
    0∣x(i) ;w)<1

    View full-size slide

  69. Правдоподобие для одного элемента

    Ф(x(i); w)=Ф(s(i)) — активация, она же — вероятность для текущего элемента получить класс
    «1» (синий)

    (1-Ф(s(i))) — вероятность для текущего элемента получить класс «0» (красный, т.е. не синий)

    Если истинный класс i-го элемента y(i)=«1», то активация должна выдавать для него
    значение, близкое к 1 (в таком случае вероятность получить правильный класс «1» будет
    близка к 1)

    Если истинный класс i-го элемента y(i)=«0», то активация должна выдавать для него
    значение, близкое к 0 (в таком случае вероятность получить правильный класс «0» будет
    близка к 1)
    p( y(i)∣x(i);w)=
    { Φ(s(i)), y(i)=1
    (1−Φ(s(i))), y(i)=0
    y(i):=
    {y(i)=1, y(i)=1
    y(i)=0, y(i)=0

    View full-size slide

  70. Правдоподобие для одного множителя

    View full-size slide

  71. На практике лучше взять логарифм

    возрастание/убывание сохранится

    при этом избавимся от степени и произведение превратится в сумму

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

    Самостоятельно: убедиться, что это сработает именно так (см
    свойства логарифма)

    Здесь уже важно, чтобы активация Ф была строго больше 0 и строго
    меньше 1 (для сигмоиды это уже выполнено) (см свойства логарифма)
    ln L(w)=∑
    i=1
    n
    [ y(i)ln(Φ(s(i)))+(1− y(i))ln(1−Φ(s(i)))]

    View full-size slide

  72. Функция стоимости (потерь)

    Натуральный логарифм правдоподобия со знаком минус:

    Для одного элемента:
    J (w)=−ln L(w)=∑
    i=1
    n
    [− y(i) ln(Φ(s(i)))−(1− y(i))ln(1−Φ(s(i)))]
    J (w)=
    { −ln(Φ(s(i))), y(i)=1
    −ln((1−Φ(s(i)))), y(i)=0

    View full-size slide

  73. Стоимость (штраф), основанная на правдоподобии

    View full-size slide

  74. Смысл функции стоимости на
    основе функции правдоподобия

    За отклонение от правильного ответа для выбранного объекта получаем
    штраф

    Для правильных предсказаний штраф приближается к нулю

    Для ошибочных предсказаний штраф стремится к бесконечности

    Штрафы накапливаются по всей выборке

    Смысл минимизации — получить наименьшую сумму штрафов по всей
    выборке

    [?] модель учтет не только количество правильных ответов, но и качество
    отдельных ответов

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

    View full-size slide

  75. Посмотрим на график
    (минимум вручную по сетке)

    View full-size slide

  76. С логарифмической шкалой

    View full-size slide

  77. Похоже на желоб
    (есть ли там минимум?)

    View full-size slide

  78. Минимизируем функцию
    стоимости: градиентный спуск

    View full-size slide

  79. Посчитаем градиент функции стоимости —
    частные производные по отдельным параметрам w
    ∂J (w)
    ∂w
    k
    = ∂
    ∂w
    k

    i=1
    n
    [− y(i) ln(Φ(s(i)))−(1− y(i))ln(1−Φ(s(i)))]
    = ∂
    ∂w
    k

    i=1
    n
    [− y(i) ln(σ(s(i)))−(1− y(i))ln(1−σ(s(i)))]
    =∑
    i=1
    n
    [− y(i)
    1
    σ(s(i))lne
    −(1− y(i))
    −1
    (1−σ(s(i)))lne
    ] ∂
    ∂w
    k
    σ(s(i))
    =∑
    i=1
    n
    [
    − y(i)
    σ(s(i))
    +
    (1− y(i))
    1−σ(s(i))
    ] ∂
    ∂w
    k
    σ(s(i))

    View full-size slide

  80. Отдельно посчитаем производную
    сигмоиды
    Итого

    ∂s σ(s)= ∂
    ∂ s
    1
    1+e−s
    =
    −1
    (1+e−s
    )2

    ∂s (1+e−s
    )=
    e−s
    (1+e−s
    )2
    =
    (1+e−s
    )−1
    (1+e−s
    )2
    =
    1
    (1+e−s
    )

    1
    (1+e−s
    )2
    =
    1
    (1+e−s
    )
    (1−
    1
    (1+e−s
    )
    )
    =σ(s)(1−σ(s))

    ∂s σ(s)=σ(s)(1−σ(s))

    View full-size slide

  81. кстати, мы всё еще обсуждаем
    нейронные сети...

    View full-size slide

  82. Продолжаем (s=s(w))
    ∂J (w)
    ∂w
    k
    =∑
    i=1
    n
    [
    − y(i)
    σ(s(i))
    +
    (1− y(i))
    1−σ(s(i))
    ] ∂
    ∂w
    k
    σ(s(i))
    =∑
    i=1
    n
    [
    − y(i)(1−σ(s(i)))+(1− y(i))σ(s(i))
    σ(s(i))(1−σ(s(i)))
    ]σ(s(i))(1−σ(s(i))) ∂
    ∂w
    k
    s(i)
    =∑
    i=1
    n
    [− y(i)+ y(i) σ(s(i))+σ(s(i))− y(i) σ(s(i))]x
    k
    (i)
    =∑
    i=1
    n
    [− y(i)+σ(s(i))] x
    k
    (i) =−∑
    i=1
    n
    [ y(i)−σ(s(i))]x
    k
    (i)

    View full-size slide

  83. В итоге получили производную:

    Получить такой красивый ответ — большая удача

    Нам она выпала не случайно, а потому, что мы взяли такие исходные
    функции

    Мы их выбрали потому, что до нас их открыли другие люди

    Но хватит и на нашу долю: никто не запретит нам попробовать найти
    другую активацию и другую функцию потерь, которые, может быть,
    дадут не менее красивый и, главное, эффективный результат
    ∂ J (w)
    ∂w
    k
    =−∑
    i=1
    n
    [ y(i)−σ(s(i))]x
    k
    (i)

    View full-size slide

  84. Кстати

    Очень похоже на производную (градиент) линейной
    активации: слагаемые суммы — для каждой точки
    (каждого объекта x) расстояние от метки класса
    до поверхности активации, умноженное на
    соответствующий признак

    Расстояние от активации до меток классов можно
    было разглядеть уже когда записали функцию
    правдоподобия

    View full-size slide

  85. Градиент — вектор частных производных

    ∇ [набла] (перевернутая дельта)

    Определим правило шага:

    Правило шага для k-го измерения:
    ∇ J (w)=(
    ∂ J (w)
    ∂w
    0
    ,..., ∂J (w)
    ∂w
    m
    ),w=(w
    0
    ,...,w
    m
    )
    w:=w+Δ w ,Δ w=−η∇ J(w)
    w
    k
    :=w
    k
    +Δ w
    k
    ,Δ w
    k
    =−η
    ∂J (w)
    ∂w
    k

    View full-size slide

  86. 1-Д: Φ(x, w)=σ(w
    0
    +w
    1
    x
    1
    )
    Δ w
    1
    =−η
    ∂ J (w)
    ∂w
    1
    =η∑
    i=1
    n
    [ y(i)−σ(w
    0
    +w
    1
    x
    1
    (i))]x
    1
    (i)
    Δ w
    0
    =−η
    ∂ J (w)
    ∂w
    0
    =η∑
    i=1
    n
    [ y(i)−σ(w
    0
    +w
    1
    x
    1
    (i))]
    ∂ J (w)
    ∂w
    0
    =−∑
    i=1
    n
    [ y(i)−σ(w
    0
    +w
    1
    x
    1
    (i))]
    ∂ J (w)
    ∂w
    1
    =−∑
    i=1
    n
    [ y(i)−σ(w
    0
    +w
    1
    x
    1
    (i))]x
    1
    (i)

    View full-size slide

  87. Спуск по градиенту,
    графики срезов по измерениям

    View full-size slide

  88. Фиксируем w
    1
    , гуляем по w
    0

    View full-size slide

  89. Фиксируем w
    0
    , гуляем по w
    1

    View full-size slide

  90. Есть ли минимум у J(w)?

    Минимум есть на каждом срезе (производная пересекает 0)

    Но после шага вниз по текущему срезу на измерении w
    0
    минимум на другом измерении w
    1
    сдвигается влево

    После шага по вниз к новому минимуму на измерении w
    1
    минимум на измерении w
    0
    сдвигается влево

    И так далее: скатываемся бесконечно уменьшающимися
    шажками по желобу вниз

    Дна, как у воронки (линейный нейрон ADALINE), нет, но
    ошибку можно уменьшать столько, сколько потребуется.

    View full-size slide

  91. Посмотрим коэффициент
    обучения, эпохи и шаги

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

    View full-size slide

  92. Норм слева

    View full-size slide

  93. Медленно справа

    View full-size slide

  94. Норм справа

    View full-size slide

  95. И всё равно не расходимся!

    View full-size slide


  96. Прыгнули через минимум далеко вправо,

    потом спокойно идем влево

    (т. е. в конечном итоге сходимся)

    View full-size slide

  97. Коэффициент обучения — графики
    сходимости (сходимся или nan)

    View full-size slide

  98. Так тоже можно сходиться (скачем вокруг)

    View full-size slide

  99. Так тоже можно сходиться

    View full-size slide

  100. Спуск скачками

    Прыгаем справа через минимум на левый склон (склон более
    крутой, поэтому ошибка вырастает)

    С левого склона опять через минимум вправо

    Но ближе к минимуму, чем предыдущая правая позиция

    Таким образом, все равно спускаемся к минимуму, хотя и с
    промежуточными всплесками

    Пожалуй, строго говоря, это не спуск по градиенту, а удачный
    сбой

    Для практического решения лучше подобрать коэффициент
    для более спокойного спуска без скачков

    View full-size slide

  101. Диапазон поиска коэффициентов w

    При больших w (даже в районе 10) получаем быстро inf и nan
    (действует экспонента), даже при не очень больших X (как у нас)

    Самый большой диапазон поиска коэффициентов для нашего случая
    получился w
    0
    : [-3, 5], w
    1
    : [-1, 3]

    Это так же зависит от значений X — если они слишком большие
    (например, уже в районе 100 или 1000), то их лучше сразу
    предварительно нормализовать — привести в отрезок [0, 1]

    Хорошая практика — умещать и коэффициенты w и значения
    признаков X в диапазон [-1, 1] или [0, 1]

    View full-size slide

  102. w
    0
    : [-3, 10]: «divide by zero»

    View full-size slide

  103. Скатимся по желобу

    Для w0 и w1 это спуск справа (на графиках градиента)

    На ракурсе картинки — дальний левый верхний угол,
    пологий склон

    Начальные значения: w
    0
    =4.9, w
    1
    =2.9

    η=0.1

    Количество эпох: 97

    View full-size slide

  104. Без логарифмической шкалы
    (гнутый лист)

    View full-size slide

  105. Активация

    Начинам с неправильного деления на группы

    В первое время активацию немного колбасит

    Но потом разделительная точка выползает слева,

    отделяет красные точки слева от синих точек справа (и назначает
    правильные классы),

    потом потом потихоньку спрямляется еще более минимизируя ошибку,
    пока мы ее не оборвем

    Начальные значения: w
    0
    =4.9, w
    1
    =2.9

    η=0.1

    Количество эпох: 97

    View full-size slide

  106. Пределы стоимости

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

    Благодаря особенности сигмоиды она может сжать эти
    расстояния вообще почти в ноль

    Ошибка на 0-й эпохе: 18.5

    Ошибка на 97-й эпохе: 0.48

    и это далеко не предел (можно спустить до сотых,
    тысячных и т.п.)

    View full-size slide

  107. Результат (97-я эпоха)

    Левые (красные) точки отделены от правых
    (синих),

    классы назначены правильно => нейрон обучен

    Коэффициенты: w
    0
    =-3.1, w
    1
    =0.91

    Активация будет:
    Φ(x(i) ,w)=σ(s(i))=σ(−3.1+0.91 x
    1
    (i))

    View full-size slide

  108. Проверим обученный нейрон

    TODO: самостоятельно

    x = (x
    1
    = 1.5):

    x = (x
    1
    = 7):

    View full-size slide

  109. Замечание по свободному
    коэффициенту w
    0

    При тренировке линейного нейрона (ADALINE) свободный
    коэффициент w
    0
    выводился из параметра — значения порога θ,
    без него у нас бы не получилось натренировать линейную
    регрессию (и нейрон)

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

    Так зачем мы вводим свободный коэффициент w
    0
    и нужен
    ли он нам?

    View full-size slide

  110. Замечание по свободному
    коэффициенту w
    0

    Во-первых, мы сами определяем архитектуру нейрона, поэтому
    имеем полное право считать сумму входов так, как нам больше
    нравится, в том числе волевым решением вводить свободный
    коэффициент (because we can)

    Коэффициент w
    1
    задаёт угол поворота гиперплоскости (в нашем
    случае 1-Д — прямой) суммы вокруг начала координат, меняя
    кривизну сигмоиды, влиять на назначение классов

    Но свободный коэффициент w
    0
    позволяет сдвигать
    гиперплоскость суммы, а вместе с ней и сигмоиду, по вертикали,
    меняя положение точки разделения классов

    View full-size slide

  111. Попробуем натренировать
    сигмоиду без свободного
    коэффициента w
    0

    View full-size slide


  112. Без участия w
    0
    прямая суммы вращается вокруг начала
    координат

    Сигмоида пересекает порог в той же точке, где прямая
    суммы пересекает начало координат, т. е. всегда в X1=0

    Это значит, у нас никак не получится перемещать по
    горизонтали разделяющую классы точку

    С таким ограничением на сумму вообще не получится
    натренировать сигмоиду (деление классов будет всегда
    проходить через 0)

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

    View full-size slide

  113. Двумерное пространство
    (m=2)

    View full-size slide

  114. Пространство 2д

    Элементы выборки — точки на плоскости (две
    координаты)

    x = (x
    1
    , x
    2
    )

    y = {0, 1} (как и раньше)

    активация Φ(x, w) = σ(w
    0
    + w
    1
    x
    1
    + w
    2
    x
    2
    )

    Спускаемся одновременно по 3-м
    параметрам (градиент из 3-х измерений)

    View full-size slide

  115. Активация
    Φ (x, w) = σ(w
    0
    + w
    1
    x
    1
    + w
    2
    x
    2
    )

    Активация — параметрическая поверхность в
    трёхмерном пространстве,

    значит мы не можем нарисовать ее на плоскости,
    как для 1-мерного случая,

    нужно переходить в 3-д:

    View full-size slide


  116. Линия пересечения поверхности активации
    (сиреневая) и плоскости порога Φ(w)=0.5
    (матово-белая) делит точки на классы.

    View full-size slide

  117. Замечания в завершение

    View full-size slide

  118. Чем сигмоида лучше линейной активации?

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

    Т.е. работает с линейно разделимыми множествами

    И даёт такой же результат, как и линейный нейрон ADALINE

    Т.о., хотя у нас функция активации — нелинейная сигмоида,
    модель классификации нейроном остаётся линейной

    Так зачем нам сигмоида?

    View full-size slide


  119. Todo: здесь картинка, как изогнутая линия
    разделяет линейно неразделимые точки и
    подпись, что это не о том

    View full-size slide

  120. Чем сигмоида лучше линейной активации?

    Использование сигмоиды даёт не только дискретный класс,
    но непрерывную «вероятность» в диапазоне от 0 до 1,
    которую в некоторых ситуациях можно интерпретировать
    как «уверенность» предсказания («вероятность»
    принадлежности объекта к назначенному классу)

    Это непрерывное нелинейное значение (значение
    сигмоиды, не пропущенное через квантизатор) нам
    пригодится потом, когда будем выстраивать нейроны в
    сетку

    Ключевую роль сыграет нелинейность сигмоиды (без неё
    вообще не получится обучить нейронную сеть)

    View full-size slide

  121. Самостоятельно

    Реализация логистической регрессии в scykit-
    learn

    Обучите 1-д нейрон с сигмоидой — [творчески]
    воспроизвести код

    Найдите какой-нибудь датасет, который можно
    разбить на два класса (классика — цветки
    ириса)

    Обучите и проверьте обученный нейрон

    View full-size slide