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

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

3a855e4e8dd144b8942da2463831a067?s=47 Anton
May 22, 2019

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

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

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

3a855e4e8dd144b8942da2463831a067?s=128

Anton

May 22, 2019
Tweet

Transcript

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

  2. Использованы материалы • Python и машинное обучение, Себастьян Рашка •

    Глубокое обучение. Погружение в мир нейронных сетей, С. Николенко, А. Кадурин, Е. Архангельская • Высшая математика. Теория вероятностей, математическая статистика, случайные процессы. Сборник задач с решениями. В.Г. Крупин, А.Л. Павлов, Л.Г. Попов • Википедия, Хабр, Интернет
  3. Структура искусственного нейрона

  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)
  5. Искусственный нейрон — бинарная классификация объектов • Дальше: активация+порог —

    предсказание метки класса объекта по взвешенной сумме входов нейрона (признаков объекта). Эта часть определяет архитектуру нейрона. • На выходе: метка класса объекта (одна из 2-х) y={1, 0} • По сравнению с прошлым разом (ADALINE): y={1, 0}, а не y={1, -1}
  6. Структура искусственного нейрона (с фиктивным входом — «нейроном» смещения)

  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)
  8. None
  9. Порог (квантизатор) • Порог для окончательной классификации можно взять 0.5:

    ŷ(i)= {1,σ(s(i))≥0.5 0,σ(s(i))<0.5
  10. None
  11. На графике отметим • Сигмоида всегда больше нуля и меньше

    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
  12. Одномерное пространство (m=1) (у объектов x всего один признак x

    1 , одна колонка в таблице)
  13. 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])
  14. None
  15. Сигмоида-активация • Взвешенная сумма — прямая на плоскости: • Активации

    с параметром выглядит так: s(i)=w 0 +w 1 x 1 (i) Φ(x(i) ,w)=σ(s(i))=σ(w 0 +w 1 x 1 (i))
  16. None
  17. Сигмоида-активация • Точка пересечения активации с порогом Ф=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
  18. None
  19. None
  20. Добавим горизонтальные метки классов

  21. None
  22. Добавим горизонтальные метки классов • Интуитивно: чем ближе проекции точек

    на линии активации к своим проекциям на метках классов, тем лучше построенная активация (выбрали хорошие параметры w 0 и w 1 ) • Раньше (с линейной активацией ADALINE) мы использовали сумму квадратичных ошибок (расстояний от меток классов до линии активации) • Теоретически, можно попробовать пойти здесь этим же путем — построить функцию ошибки как сумму расстояний, найти её производную, спуститься к минимуму и т.п. (самостоятельно: попробуйте проверить)
  23. None
  24. Какое положение активации считать оптимальным? • Но: - мы не

    ищем лёгких путей - заодно освоим здесь кое-какой теоретический подход, который широко используется на более сложных примерах - и подведем под оптимальность положения более устойчивое теоретическое обоснование вместо простой интуитивности малых отклонений • поэтому рассмотрим вариант покрасивее...
  25. Сигмоида-активация как вероятность • Её можно интерпретировать как вероятность: -

    чем больше взвешенная сумма, тем ближе значение сигмоиды- активации к 1, тем более «вероятно», что объект принадлежит классу «1» (нейрон активируется) - чем меньше взвешенная сумма, тем ближе значение сигмоиды- активации к 0, тем более «вероятно», что объект принадлежит классу «0» (нейрон не активируется) • Это не значит, что она является настоящей вероятностью, но нам здесь достаточно возможности простой интерпретации 0<σ(s(i))<1
  26. Нам нужна функция стоимости • (которую мы будем минимизировать, чтобы

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

    теории вероятностей
  28. Немного теории вероятностей • (в необходимом нам объеме) • Случайная

    величина, эксперимент • Условная вероятность • Функция правдоподобия, метод наибольшего правдоподобия • Распределение Бернулли
  29. Случайная величина • Часто задачи из области теории вероятностей формулируют

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

    практической задаче из жизни, нам нужно сначала понять, как применить теорию к предметной области, или как переложить предмет исследования на язык теории • Указать, что у нас является случайной величиной, как определить вероятность этой случайной величины, в чем здесь эксперимент.
  31. Случайная величина • Неправильная (или намеренно искаженная) интерпретация предметной области

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

    шар — синий или красный?
  33. Как подступиться? • Нам нужны условия эксперимента • Как минимум:

    мы должны знать, сколько в мешке синих и красных шаров (и что там вообще лежат разноцветные шары) • 1000 шаров, 500 синих, 500 красных: вероятность ½ для синих и красных, может быть и то и другое (если мы не знаем историю или достаём первый шар) • 1000 шаров, 800 синих, 200 красных: вероятность 0.8 для синих, 0.2 для красных, скорее всего мы достали синий шар • 1000 шаров, 1000 синих, 0 красных: вероятность 1 для синих, 0 для красных, я бы поставил на то, что мы достали синий шар
  34. • Мы можем ошибиться, называя цвет каждого конкретного шара (в

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

    количеству равнозначных исходов? Кто решает, что вот эти исходы вообще равнозначные (или неравнозначные, но имеют вот такое отношение вероятностей)? Почему эта равнозначность вообще именно так работает? И т.п. • Источник закономерного поведения случайных величин — наша окружающая реальность • Подтверждено множеством независимых наблюдений многих лет по всему миру (можете проверить сами) • Наблюдения работают одинаковым образом для разных типов истинных («природных») случайных величин: бросок монетки, бросок кубика, рулетка, период полураспада атома и т. п.
  36. Откуда такая уверенность? • Что, если в мешке 1000 шаров,

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

    к шарам в мешке или «броску монетки»?
  38. Вернемся к исходной задаче • Ну нас есть объекты (шары):

    два класса (синие и красные) (ок) • Мы берем объекты-шары по одному и пытаемся угадать, какого выбранный шар скорее всего цвета — синего или красного (ок) • У каждого из объектов-шаров, помимо цвета, есть еще набор признаков (колонки таблицы) Например: • Очередь к врачу, врач ставит пациенту диагноз «болен/здоров» (для известной болезни) по набору признаков: симптомы, результаты анализов, анкетные данные (пол, возраст, рост, вес и т.п.)
  39. None
  40. 0

  41. Вернемся к исходной задаче • Количества объектов мы не знаем,

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

    их будем доставать один за одним в случайном порядке (мы можем вообще рассортировать в каком-то порядке — в нашей очереди выстроиться по росту или пропустить всех бабушек вперед) • На результат назначения цвета (постановки диагноза) вообще не должно влиять количество элементов, отправленных на рассмотрение (например, врач при обучении изучил 30 анкет подтвержденных здоровых и 70 анкет подтвержденных больных пациентов, это не значит, что к нему будет приходить 30% здоровых и 70% больных каждый день)
  43. Вернемся к исходной задаче • Как будем назначать вероятность? •

    Как здесь понимать вероятность? • Проявит ли себя здесь вероятность как закон природы? • Если проявит, то в каком виде? • В чем здесь вообще эксперимент?
  44. Посмотрим на задачу с мешком и шарами немного под другим

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

    углом • Нам нужно знать условия эксперимента для каждого шара • Или скажем немного по-другому: то, что мы знаем о шаре — это то, в каких условиях проводился (каким был) доставивший его к нам эксперимент • Про левый шар мы знаем, что его доставали из мешка с 1000 шаров, 800 синих, 200 красных, значит его вероятность оказаться синим 0.8 • Про правый шар мы знаем, что его доставали из мешка с 1000 шаров, 500 синих, 500 красных, значит его вероятность оказаться синим 0.5
  46. None
  47. • Таким образом, мы получаем функцию, которая на входе принимает

    шар (информацию о нем — условия эксперимента), на выходе выдаёт вероятность для шара оказаться синим • Для известных «типовых» экспериментов эта функция будет назначать «природную» вероятность, основанную на известном законе природы или, например, на статистическом результате продолжительных наблюдений, которые проводились до того
  48. None
  49. Замечание • Далее, используя математический аппарат теории вероятностей, мы можем

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

    вероятность, что он синий (болен)? • Что мы знаем о шаре (пациенте), помимо того, что он может быть синий или красный (болен или здоров)? • Мы знаем его признаки (анкетные данные, симптомы и анализы)! • Вот по этим признакам и будем судить!
  51. None
  52. Вернемся к пациентам • Таким образом, у нас должна появиться

    некоторая функция, которая по признакам объекта-шара будет назначать ему вероятность (число от 0 до 1) оказаться синим (или красным, т.е. не синим) • Никакой известной «природной» вероятности, чтобы, сразу назначить значения (например, распределить вероятности пропорционально количеству шаров в мешке), у нас здесь нет • Но у нас есть обучающая выборка — подборка объектов (анкетные данные, симптомы и анализы) с известными правильными ответами (выставленными диагнозами).
  53. None
  54. None
  55. Вернемся к пациентам • Мы можем трактовать эту выборку как

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

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

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

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

    подтвердить только после того, как выйдем за пределы обучающей выборки, проверяя предсказания на тестовых данных (и потом — на вновь поступающих данных). • Другими словами: предсказание работает, значит закон природы всё-таки есть и мы выбрали хорошую функцию, чтобы приблизить его эффект. • Плохой результат на новых данных может говорить о том, что мы выбрали плохую приближающую функцию (частное предположение-1 будет опровергнуто). • В таком случае мы может рассмотреть вариант выбрать другую приближающую функцию, т. е. сформулировать новое частное предположение.
  61. Частное предположение-2 • Разрешить вопрос об оптимальности выбранных параметров для

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

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

    общем виде: какова вероятность наступления события 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 ))
  64. Замечание: условная вероятность • Обдумывание и анализ задачи с этой

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

    вероятность — получить нужный цвет (уравняет все группы, т. к. бьет по площадям) • Но есть еще реальная вероятность стать синей или красной точкой, которая может быть разной внутри малых подгрупп
  66. Замечание: условная вероятность • Таким образом, мы можем попробовать определить

    плотность распределения вероятностей для объекта попасть по исходным признакам в одну из этих подгрупп • Дальше, есть формула, которая связывает условную вероятность финального события с вероятностями отдельных составляющих его событий и есть формула из теоремы Байеса (для экономии времени здесь не привожу)
  67. Замечание: условная вероятность Но • наша искомая подгоночная функция, которая

    выставляет диагноз по признакам, уже сама даёт финальное значение вероятности по исходным признакам — это всё, что необходимо здесь нам. • Таким образом, она скрывает внутри себя эту гипотетическую зависимость сложной условной вероятности от совместной вероятности составляющих ее простых случайных величин (которые, вообще говоря, нам всё равно неизвестны). • Она (эта зависимость) там внутри, конечно, есть (с известным уровнем приближения), но нам здесь пока на нее всё равно. • Мы как уже собрались строить подгоночную функцию, так и продолжим это делать. • От условной вероятности здесь оставим только обозначения.
  68. • Для подгоночной функции нет разницы между всеми тремя вариантами,

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

  70. Итак, у нас есть • Функция активации — сигмоида, для

    каждого элемента выдаёт значение от 0 до 1, его и будем принимать за вероятность назначения объекту класса «1». • Активация выдаёт значения для объектов (назначает вероятность получить класс «0» или «1»), исходя из значений признаков объекта, взятых как взвешенная сумма • Признаки объектов x j у нас данность, мы можем настраивать весовые коэффициенты w j
  71. Итак, у нас есть • Функция активации (сигмоида) — это

    и есть наша искомая приближающая (имитирующая) «закон природы» функция (мы будем искать ее в таком виде) • Коэффициенты w — это параметры искомой приближающей функции • У нас так же есть обучающая выборка — набор объектов с заранее известным классом (y=«0» — красные точки, y=«1» — синие) • Мы должны подобрать коэффициенты w так, чтобы для объектов обучающей выборки с классом y=«1» значение сигмоиды-активации было близко к 1, для y=«0» — к 0-лю. • В таком случае, по крайней мере на обучающей выборке, наша приближающая функция (сигмоида-активация) будет вести себя так же (с достаточным приближением), как и гипотетический «закон природы»
  72. None
  73. - Как будем подбирать коэффициенты? - Введем функцию стоимости!

  74. Функция стоимости (потерь) • Зависит от параметров, которые мы хотим

    подобрать • Чем меньше значение функции стоимости, тем лучшие значения параметров мы подобрали • Имеет минимум (наилучшее значение искомых параметров)
  75. Для введения функции стоимости мы можем использовать • Расстояние Кульбака-Лейблера

    и перекрестную энтропию или • Функцию правдоподобия (likehood) В обоих случаях получим один и тот же результат — одну и ту же функцию стоимости (что любопытно)
  76. Расстояние Кульбака-Лейблера и перекрестная энтропия • Мера разницы между двумя

    вероятностными распределениями P («истинное») и Q (приближение) • Служит оценкой качества приближения Q к P: показывает, насколько приближенное распределение вероятности Q похоже на истинное распределение вероятности P
  77. Расстояние Кульбака-Лейблера и перекрестная энтропия • Неотрицательно • Равно нулю

    только тогда, когда P и Q совпадают почти всюду • Не совсем расстояние (не симметрично: «расстояние» от P до Q может быть не равно «расстоянию» от Q до P) • В качестве функции стоимости для минимизации удобнее взять не само расстояние, а перекрестную энтропию, которая связана с расстоянием прямым образом • Самостоятельно: изучить матчасть по Кульбаку-Лейблеру и перекрестной энтропии
  78. Функция правдоподобия (likehood) • Позволяет оценить, насколько наблюдаемые события вероятны

    (правдоподобны) в контексте данного (оцениваемого) вероятностного распределения • Наблюдаемые события у нас будут известные назначения классов y(i) объектам x(i) в обучающей выборке • Оцениваемое вероятностное распределение — приближенное распределение, наша приближающая функция при выбранных параметрах w
  79. Функция правдоподобия (likehood) • Оценивать будем по результатам работы приближающей

    функции при выбранных параметрах w на обучающей выборке, т. е. по вероятностям, которая она назначит для тех же x(i) (значения сигмоид-активаций Ф(x(i); w)=Ф(s(i))) • Если функция оценит свершившиеся события как правдоподобные (в рамках оцениваемой модели), значит мы подобрали хорошую приближающую функцию, а именно, хорошую комбинацию параметров w
  80. Функция правдоподобия вообще, метод наибольшего правдоподобия 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 даст модель, тем больше всё произведение • Метод наибольшего правдоподобия: найти такое θ, для которого будет самое большое произведение
  81. Например: правдоподобие для шаров • Эксперимент: достали из мешка 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-е распределение (соответствует действительности)
  82. Интуитивный смысл • Смысл: все множители, которые встречаются (результаты эксперимента),

    должны давать вклад в произведение — максимальную вероятность. • Если у нас вероятность основана на частоте (шары из мешка), то элементы с низкой вероятностью должны просто реже встречаться. • Если вероятность основана не на частоте, а на спец. функции распределения вероятностей (мы знаем, что этот элемент синий, но с какой вероятностью он синий? мы знаем, что этот элемент красный, но с какой вероятностью он красный?), то она должна давать высокий результат для каждого элемента обучающей выборки (настоящие синие элементы должны быть с высокой долей вероятности синие, настоящие красные элементы — с высокой долей вероятности красные). • Общий результат (правдоподобие) будет — довольно маленькое число (каждый из множителей меньше единицы), особенно для большой выборки (скорее всего на компе не получится нормально вычислить), • имеет смысл только при сравнении.
  83. Функция правдоподобия для нашего случая 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, при которых значение всего произведения будет максимальным
  84. Правдоподобие для одного элемента (распределение Бернулли — для 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
  85. • Нетрудно видеть для обоих случаев, т. к. 0 <

    Φ(s) < 1 (выполнено для сигмоиды): • При этом нельзя брать такую Φ(s) (если мы смотрим не сигмоду), которая может быть строго 0 или строго 1, т.к. это сразу обнулит всё произведение. 0<p( y(i) ∣x(i) ;w)<1
  86. Правдоподобие для одного элемента • Ф(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
  87. Правдоподобие для одного множителя

  88. На практике лучше взять логарифм • возрастание/убывание сохранится • при

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

    • Для одного элемента: 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
  90. Стоимость (штраф), основанная на правдоподобии

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

    от правильного ответа для выбранного объекта получаем штраф • Для правильных предсказаний штраф приближается к нулю • Для ошибочных предсказаний штраф стремится к бесконечности • Штрафы накапливаются по всей выборке • Смысл минимизации — получить наименьшую сумму штрафов по всей выборке • [?] модель учтет не только количество правильных ответов, но и качество отдельных ответов • В этом месте нам еще не важно, что функция активации — это сигмоида, главное,чтобы она принимала значение больше 0 и меньше 1
  92. Посмотрим на график (минимум вручную по сетке)

  93. None
  94. None
  95. С логарифмической шкалой

  96. None
  97. None
  98. None
  99. None
  100. Похоже на желоб (есть ли там минимум?)

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

  102. Посчитаем градиент функции стоимости — частные производные по отдельным параметрам

    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))
  103. Отдельно посчитаем производную сигмоиды Итого ∂ ∂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))
  104. кстати, мы всё еще обсуждаем нейронные сети...

  105. Продолжаем (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)
  106. В итоге получили производную: • Получить такой красивый ответ —

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

    суммы — для каждой точки (каждого объекта x) расстояние от метки класса до поверхности активации, умноженное на соответствующий признак • Расстояние от активации до меток классов можно было разглядеть уже когда записали функцию правдоподобия
  108. Градиент — вектор частных производных • ∇ [набла] (перевернутая дельта)

    • Определим правило шага: • Правило шага для 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
  109. 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)
  110. Спуск по градиенту, графики срезов по измерениям

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

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

  113. Есть ли минимум у J(w)? • Минимум есть на каждом

    срезе (производная пересекает 0) • Но после шага вниз по текущему срезу на измерении w 0 минимум на другом измерении w 1 сдвигается влево • После шага по вниз к новому минимуму на измерении w 1 минимум на измерении w 0 сдвигается влево • И так далее: скатываемся бесконечно уменьшающимися шажками по желобу вниз • Дна, как у воронки (линейный нейрон ADALINE), нет, но ошибку можно уменьшать столько, сколько потребуется.
  114. None
  115. None
  116. None
  117. None
  118. Посмотрим коэффициент обучения, эпохи и шаги • Очевидно, здесь динамика

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

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

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

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

  123. • Прыгнули через минимум далеко вправо, • потом спокойно идем

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

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

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

  127. Спуск скачками • Прыгаем справа через минимум на левый склон

    (склон более крутой, поэтому ошибка вырастает) • С левого склона опять через минимум вправо • Но ближе к минимуму, чем предыдущая правая позиция • Таким образом, все равно спускаемся к минимуму, хотя и с промежуточными всплесками • Пожалуй, строго говоря, это не спуск по градиенту, а удачный сбой • Для практического решения лучше подобрать коэффициент для более спокойного спуска без скачков
  128. Диапазон поиска коэффициентов 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]
  129. w 0 : [-3, 10]: «divide by zero»

  130. Скатимся по желобу • Для w0 и w1 это спуск

    справа (на графиках градиента) • На ракурсе картинки — дальний левый верхний угол, пологий склон • Начальные значения: w 0 =4.9, w 1 =2.9 • η=0.1 • Количество эпох: 97
  131. None
  132. None
  133. None
  134. None
  135. None
  136. None
  137. None
  138. None
  139. None
  140. None
  141. None
  142. None
  143. None
  144. None
  145. None
  146. None
  147. None
  148. None
  149. None
  150. None
  151. Без логарифмической шкалы (гнутый лист)

  152. None
  153. None
  154. None
  155. None
  156. None
  157. None
  158. None
  159. None
  160. None
  161. None
  162. None
  163. None
  164. Активация • Начинам с неправильного деления на группы • В

    первое время активацию немного колбасит • Но потом разделительная точка выползает слева, • отделяет красные точки слева от синих точек справа (и назначает правильные классы), • потом потом потихоньку спрямляется еще более минимизируя ошибку, пока мы ее не оборвем • Начальные значения: w 0 =4.9, w 1 =2.9 • η=0.1 • Количество эпох: 97
  165. None
  166. None
  167. None
  168. None
  169. None
  170. None
  171. None
  172. None
  173. None
  174. None
  175. None
  176. None
  177. None
  178. None
  179. None
  180. None
  181. None
  182. None
  183. None
  184. None
  185. None
  186. None
  187. None
  188. None
  189. None
  190. None
  191. None
  192. None
  193. None
  194. Пределы стоимости • Как видим, новая формула тоже привела к

    минимизации вертикальных расстояний от классов признаков до линии активации в этой же точке • Благодаря особенности сигмоиды она может сжать эти расстояния вообще почти в ноль • Ошибка на 0-й эпохе: 18.5 • Ошибка на 97-й эпохе: 0.48 • и это далеко не предел (можно спустить до сотых, тысячных и т.п.)
  195. None
  196. Результат (97-я эпоха) • Левые (красные) точки отделены от правых

    (синих), • классы назначены правильно => нейрон обучен • Коэффициенты: w 0 =-3.1, w 1 =0.91 • Активация будет: Φ(x(i) ,w)=σ(s(i))=σ(−3.1+0.91 x 1 (i))
  197. Проверим обученный нейрон • TODO: самостоятельно • x = (x

    1 = 1.5): • x = (x 1 = 7):
  198. None
  199. Замечание по свободному коэффициенту w 0 • При тренировке линейного

    нейрона (ADALINE) свободный коэффициент w 0 выводился из параметра — значения порога θ, без него у нас бы не получилось натренировать линейную регрессию (и нейрон) • Здесь мы сразу взяли фиксированный порог 0.5, он не принимает участие в тренировке функции (выбранная функция ошибки сама сдвигает сигмоиду в положение наиболее удобного равновесия так, что он оказывается примерно посередине) • Так зачем мы вводим свободный коэффициент w 0 и нужен ли он нам?
  200. Замечание по свободному коэффициенту w 0 • Во-первых, мы сами

    определяем архитектуру нейрона, поэтому имеем полное право считать сумму входов так, как нам больше нравится, в том числе волевым решением вводить свободный коэффициент (because we can) • Коэффициент w 1 задаёт угол поворота гиперплоскости (в нашем случае 1-Д — прямой) суммы вокруг начала координат, меняя кривизну сигмоиды, влиять на назначение классов • Но свободный коэффициент w 0 позволяет сдвигать гиперплоскость суммы, а вместе с ней и сигмоиду, по вертикали, меняя положение точки разделения классов
  201. Попробуем натренировать сигмоиду без свободного коэффициента w 0

  202. None
  203. None
  204. None
  205. None
  206. None
  207. None
  208. • Без участия w 0 прямая суммы вращается вокруг начала

    координат • Сигмоида пересекает порог в той же точке, где прямая суммы пересекает начало координат, т. е. всегда в X1=0 • Это значит, у нас никак не получится перемещать по горизонтали разделяющую классы точку • С таким ограничением на сумму вообще не получится натренировать сигмоиду (деление классов будет всегда проходить через 0) • Вывод: свободный коэффициент w 0 (нейрон смещения) следует оставить (без него не получится ничего)
  209. Двумерное пространство (m=2)

  210. Пространство 2д • Элементы выборки — точки на плоскости (две

    координаты) • x = (x 1 , x 2 ) • y = {0, 1} (как и раньше) • активация Φ(x, w) = σ(w 0 + w 1 x 1 + w 2 x 2 ) • Спускаемся одновременно по 3-м параметрам (градиент из 3-х измерений)
  211. 0

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

    x 1 + w 2 x 2 ) • Активация — параметрическая поверхность в трёхмерном пространстве, • значит мы не можем нарисовать ее на плоскости, как для 1-мерного случая, • нужно переходить в 3-д:
  213. 0.5 1.0 0.0

  214. None
  215. None
  216. • Линия пересечения поверхности активации (сиреневая) и плоскости порога Φ(w)=0.5

    (матово-белая) делит точки на классы.
  217. 0

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

  219. Чем сигмоида лучше линейной активации? • Как видим, использование сигмоиды

    в качестве активации всё так же разделяет объекты на два класса гиперплоскостью (точкой, прямой, плоскостью и т.п.), а не изогнутой поверхностью (как можно было бы в начале предположить) • Т.е. работает с линейно разделимыми множествами • И даёт такой же результат, как и линейный нейрон ADALINE • Т.о., хотя у нас функция активации — нелинейная сигмоида, модель классификации нейроном остаётся линейной • Так зачем нам сигмоида?
  220. • Todo: здесь картинка, как изогнутая линия разделяет линейно неразделимые

    точки и подпись, что это не о том
  221. Чем сигмоида лучше линейной активации? • Использование сигмоиды даёт не

    только дискретный класс, но непрерывную «вероятность» в диапазоне от 0 до 1, которую в некоторых ситуациях можно интерпретировать как «уверенность» предсказания («вероятность» принадлежности объекта к назначенному классу) • Это непрерывное нелинейное значение (значение сигмоиды, не пропущенное через квантизатор) нам пригодится потом, когда будем выстраивать нейроны в сетку • Ключевую роль сыграет нелинейность сигмоиды (без неё вообще не получится обучить нейронную сеть)
  222. Самостоятельно • Реализация логистической регрессии в scykit- learn • Обучите

    1-д нейрон с сигмоидой — [творчески] воспроизвести код • Найдите какой-нибудь датасет, который можно разбить на два класса (классика — цветки ириса) • Обучите и проверьте обученный нейрон