Глубокое обучение. Погружение в мир нейронных сетей, С. Николенко, А. Кадурин, Е. Архангельская • Высшая математика. Теория вероятностей, математическая статистика, случайные процессы. Сборник задач с решениями. В.Г. Крупин, А.Л. Павлов, Л.Г. Попов • Википедия, Хабр, Интернет
выборки — вектор 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)
предсказание метки класса объекта по взвешенной сумме входов нейрона (признаков объекта). Эта часть определяет архитектуру нейрона. • На выходе: метка класса объекта (одна из 2-х) y={1, 0} • По сравнению с прошлым разом (ADALINE): y={1, 0}, а не y={1, -1}
сигмоида • Замечание: хотя в названии алгоритма употребляется слово «регрессия», речь идет о решении задачи классификации, а не построения регрессии • Построение регрессии — это этап поиска параметров функции активации • Классификация — пропускание непрерывной активации (регрессии) через порог Φ(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)
на классы • Направление изгиба (направление роста) активации назначает точкам метки классов • На вертикальной оси: активация Φ(SUM) и значение суммы SUM • SUM=w 0 +w 1 x — параметрическая прямая • Параметр w 1 — задаёт угол наклона прямой SUM, w 0 — смещение по вертикальной оси • Сигмоида-активация «следует» за прямой SUM (совсем не удивительно): - кривизна и направление изгиба активации следует за углом наклона SUM, параметр w 1 - пересечение порога Ф=0.5 активацией происходит там же, где SUM=0, за это отвечает параметр w 0
на линии активации к своим проекциям на метках классов, тем лучше построенная активация (выбрали хорошие параметры w 0 и w 1 ) • Раньше (с линейной активацией ADALINE) мы использовали сумму квадратичных ошибок (расстояний от меток классов до линии активации) • Теоретически, можно попробовать пойти здесь этим же путем — построить функцию ошибки как сумму расстояний, найти её производную, спуститься к минимуму и т.п. (самостоятельно: попробуйте проверить)
ищем лёгких путей - заодно освоим здесь кое-какой теоретический подход, который широко используется на более сложных примерах - и подведем под оптимальность положения более устойчивое теоретическое обоснование вместо простой интуитивности малых отклонений • поэтому рассмотрим вариант покрасивее...
чем больше взвешенная сумма, тем ближе значение сигмоиды- активации к 1, тем более «вероятно», что объект принадлежит классу «1» (нейрон активируется) - чем меньше взвешенная сумма, тем ближе значение сигмоиды- активации к 0, тем более «вероятно», что объект принадлежит классу «0» (нейрон не активируется) • Это не значит, что она является настоящей вероятностью, но нам здесь достаточно возможности простой интерпретации 0<σ(s(i))<1
найти оптимальное положение активации) • Мы можем интерпретировать активацию- сигмоиду как вероятность некоторой случайной величины • Используем теорию вероятностей, чтобы найти там подходящую функцию для минимизации
так, что у нас есть некоторая абстрактная случайная величина (дискретная или непрерывная), вот есть для нее распределение вероятностей (вероятности состояний или функция плотности вероятностей) • Дальше, основываясь на этих данных и используя математический аппарат теории, требуется вычислить некоторое производное значение (матожидание, дисперсию, вероятность сложной комбинации событий и т.п.)
практической задаче из жизни, нам нужно сначала понять, как применить теорию к предметной области, или как переложить предмет исследования на язык теории • Указать, что у нас является случайной величиной, как определить вероятность этой случайной величины, в чем здесь эксперимент.
может приводить к странным противоречивым результатам (на этом основаны некоторые известные «парадоксы», например, см. «парадокс» Бертрана) • Бытовая интуиция может здесь сыграть плохую роль, поэтому не следует на нее полагаться сгоряча (см. «парадокс» Монти Холла, обыграно в фильме «Двадцать одно» с Кевином Спейси)
мы должны знать, сколько в мешке синих и красных шаров (и что там вообще лежат разноцветные шары) • 1000 шаров, 500 синих, 500 красных: вероятность ½ для синих и красных, может быть и то и другое (если мы не знаем историю или достаём первый шар) • 1000 шаров, 800 синих, 200 красных: вероятность 0.8 для синих, 0.2 для красных, скорее всего мы достали синий шар • 1000 шаров, 1000 синих, 0 красных: вероятность 1 для синих, 0 для красных, я бы поставил на то, что мы достали синий шар
этом заключается случайность) • Но, если вероятность для синих шаров высока, при достаточно большом количестве попыток мы будем ошибаться реже, всегда «ставя» на синий шар • В случае с равнозначной вероятностью (½) нам нет большого смысла предсказывать цвет каждого конкретного шара, но мы можем давать уверенную оценку для серии экспериментов: сколько бы шаров подряд мы ни достали, их должно быть примерно 50% на 50%. • (это справедливо для любой пропорции синих и красных шаров)
количеству равнозначных исходов? Кто решает, что вот эти исходы вообще равнозначные (или неравнозначные, но имеют вот такое отношение вероятностей)? Почему эта равнозначность вообще именно так работает? И т.п. • Источник закономерного поведения случайных величин — наша окружающая реальность • Подтверждено множеством независимых наблюдений многих лет по всему миру (можете проверить сами) • Наблюдения работают одинаковым образом для разных типов истинных («природных») случайных величин: бросок монетки, бросок кубика, рулетка, период полураспада атома и т. п.
500 красных и 500 синих, человек достаёт подряд 500 синих шаров? • Скорее всего что-то не так с мешком или мы не знаем что-то важное об эксперименте*: синие шары лежат наверху, синие шары приятнее на ощупь, мешок прозрачный** и человек любит синий цвет и т. п. * как великан, не распознавший в камне птицу («Храбрый портняжка», братья Гримм) ** обыграно в «Криптономиконе» Нила Стивенсона
два класса (синие и красные) (ок) • Мы берем объекты-шары по одному и пытаемся угадать, какого выбранный шар скорее всего цвета — синего или красного (ок) • У каждого из объектов-шаров, помимо цвета, есть еще набор признаков (колонки таблицы) Например: • Очередь к врачу, врач ставит пациенту диагноз «болен/здоров» (для известной болезни) по набору признаков: симптомы, результаты анализов, анкетные данные (пол, возраст, рост, вес и т.п.)
поток проверок идет бесконечно (мешок не ок, но есть еще бросок монетки — пока, вроде, не проблема) • Но (если говорим про монетку), монетку бросаем одну и ту же (пусть даже со смещенным центром тяжести, чтобы нарушить равномерность распределения), а объекты (пациенты) каждый раз разные, к каждому нужен индивидуальный подход
их будем доставать один за одним в случайном порядке (мы можем вообще рассортировать в каком-то порядке — в нашей очереди выстроиться по росту или пропустить всех бабушек вперед) • На результат назначения цвета (постановки диагноза) вообще не должно влиять количество элементов, отправленных на рассмотрение (например, врач при обучении изучил 30 анкет подтвержденных здоровых и 70 анкет подтвержденных больных пациентов, это не значит, что к нему будет приходить 30% здоровых и 70% больных каждый день)
Как здесь понимать вероятность? • Проявит ли себя здесь вероятность как закон природы? • Если проявит, то в каком виде? • В чем здесь вообще эксперимент?
углом • Вот два шара, не отличаются вообще ничем, кроме краски снаружи, накрыты платочком • Какова вероятность, что слева синий шар? Какова вероятность, что справа синий шар?
углом • Нам нужно знать условия эксперимента для каждого шара • Или скажем немного по-другому: то, что мы знаем о шаре — это то, в каких условиях проводился (каким был) доставивший его к нам эксперимент • Про левый шар мы знаем, что его доставали из мешка с 1000 шаров, 800 синих, 200 красных, значит его вероятность оказаться синим 0.8 • Про правый шар мы знаем, что его доставали из мешка с 1000 шаров, 500 синих, 500 красных, значит его вероятность оказаться синим 0.5
шар (информацию о нем — условия эксперимента), на выходе выдаёт вероятность для шара оказаться синим • Для известных «типовых» экспериментов эта функция будет назначать «природную» вероятность, основанную на известном законе природы или, например, на статистическом результате продолжительных наблюдений, которые проводились до того
«присоединять» к шару дополнительную информацию и конструировать более сложные функции распределения вероятности: • например, передавать вместе с шаром информацию о том, сколько шаров и какого цвета было вытащено из мешка до него (в таком случае 0.5 для синего шара из 2-го мешка будет уже не такой однозначной — если мы подряд достали 5 красных шаров, скорее всего, следует в ближайшее время ожидать уже синий шар)
вероятность, что он синий (болен)? • Что мы знаем о шаре (пациенте), помимо того, что он может быть синий или красный (болен или здоров)? • Мы знаем его признаки (анкетные данные, симптомы и анализы)! • Вот по этим признакам и будем судить!
некоторая функция, которая по признакам объекта-шара будет назначать ему вероятность (число от 0 до 1) оказаться синим (или красным, т.е. не синим) • Никакой известной «природной» вероятности, чтобы, сразу назначить значения (например, распределить вероятности пропорционально количеству шаров в мешке), у нас здесь нет • Но у нас есть обучающая выборка — подборка объектов (анкетные данные, симптомы и анализы) с известными правильными ответами (выставленными диагнозами).
результат действия этой неизвестной назначающей вероятность функции: - для тех объектов (их параметров), для которых известно, что они синие, функция должна выдавать высокую вероятность оказаться синим - если у нас несколько объектов с одинаковыми (или схожими) признаками, но заведомо разных цветов, вероятность оказаться синим должна быть тем выше, чем больше синих объектов в «группе»
выглядит реальная функция (и существует ли она вообще в природе как некоторая стабильно воспроизводимая зависимость), • но мы можем попробовать подобрать другую (параметрическую) функцию, которая на известных данных будет действовать так же, как неизвестная (гипотетическая) функция, подогнав параметры под известный результат • В надежде на то, что она начнет выдавать близкий к реальности результат и потом на новых неизвестных данных
диагноз пациента) действительно определяется известными нам параметрами и что эта зависимость действует как некоторый вероятностный закон • Частное предположение-1: о форме этого неизвестного закона, в каком виде мы будем его искать, как выглядит функция, параметры которой мы будем под него подгонять • Частное предположение-2: насколько хороши выбранные параметры в рамках частного предположения-1, можно ли сделать еще более качественную подгонку
после того, как выйдем за пределы обучающей выборки, проверяя предсказания на тестовых данных (и потом — на вновь поступающих данных). • Другими словами: предсказание работает, значит закон природы всё-таки есть и мы смогли приблизить его эффект. • Опровергнуть общее предположение так же просто нельзя: - Плохой результат на новых данных не обязательно будет говорить о том, что никакой зависимости между признаками и классом объекта вообще нет в природе. - Возможно, мы выбрали не ту приближающую функцию: например, выборка объектов линейно не разделима — у нас там сложная система подклассов и нам нужен не единичный нейрон, а нейросеть.
подтвердить только после того, как выйдем за пределы обучающей выборки, проверяя предсказания на тестовых данных (и потом — на вновь поступающих данных). • Другими словами: предсказание работает, значит закон природы всё-таки есть и мы выбрали хорошую функцию, чтобы приблизить его эффект. • Плохой результат на новых данных может говорить о том, что мы выбрали плохую приближающую функцию (частное предположение-1 будет опровергнуто). • В таком случае мы может рассмотреть вариант выбрать другую приближающую функцию, т. е. сформулировать новое частное предположение.
приближающей функции на обучающих данных — дело техники. • Подобрать наилучшие параметры нам поможет математический аппарат теории вероятностей и основанный на нем алгоритм. • Отсутствие глобальной зависимости между параметрами объекта и классом объекта никак не помешает нам найти оптимальные параметры на обучающей выборке
опыт как последовательность двух случайных событий: - Событие-1: какова вероятность из всего множества объектов выбрать объект с такими параметрами, как параметры объекта, который попал к нам на рассмотрение (какова вероятность, что в кабинет врача войдет пациент с таким возрастом, весом, такими симптомами и такими анализами)? (здесь не обязательно точное совпадение, речь может идти о попадании в некоторый близкий диапазон) - Событие-2: исходя из того, что объект с такими параметрами (человек именно с таким возрастом, весом, такими симптомами и такими анализами) попал к нам на рассмотрение (зашел в кабинет), какова вероятность для этого объекта оказаться синим шаром (для пациента — подтвердить наличие болезни)?
общем виде: какова вероятность наступления события 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 ))
позиции может дать определенный полезный эффект. • Например, мы можем выявить более мелкие «группы» объектов внутри больших целевых групп (например, окажется, что на приём приходят в основном молодые люди 18-20 лет с избыточным весом, взрослые 35-40 лет с нормальным весом и пожилые люди 75-80 лет, диагнозы внутри этих групп будут выставляться с разными долями вероятностей) • визуально: синие и красные точки кучкуются на оси • Если все кучки одинаковых цветов в целом распределены слева и справа на оси, т. е. их можно линейно разделить, нам будет достаточно единичного нейрона. • В том случае, если у нас плотные группы синих и красных точек будут чередоваться, мы получим линейно неразделимое множество, значит нам потребуется не отдельный нейрон, а нейросеть (количество плотных кучек подскажет, сколько в сети должно быть как минимум элементов). • И т.д.
вероятность — получить нужный цвет (уравняет все группы, т. к. бьет по площадям) • Но есть еще реальная вероятность стать синей или красной точкой, которая может быть разной внутри малых подгрупп
плотность распределения вероятностей для объекта попасть по исходным признакам в одну из этих подгрупп • Дальше, есть формула, которая связывает условную вероятность финального события с вероятностями отдельных составляющих его событий и есть формула из теоремы Байеса (для экономии времени здесь не привожу)
выставляет диагноз по признакам, уже сама даёт финальное значение вероятности по исходным признакам — это всё, что необходимо здесь нам. • Таким образом, она скрывает внутри себя эту гипотетическую зависимость сложной условной вероятности от совместной вероятности составляющих ее простых случайных величин (которые, вообще говоря, нам всё равно неизвестны). • Она (эта зависимость) там внутри, конечно, есть (с известным уровнем приближения), но нам здесь пока на нее всё равно. • Мы как уже собрались строить подгоночную функцию, так и продолжим это делать. • От условной вероятности здесь оставим только обозначения.
• если она разделяет объекты на два класса • Вероятность, назначаемая подгоночной функцией, не обязательно должна совпадать с реальной (условной) вероятностью (хотя мы её и не знаем) • Нас это может устраивать, но нужно это иметь ввиду
каждого элемента выдаёт значение от 0 до 1, его и будем принимать за вероятность назначения объекту класса «1». • Активация выдаёт значения для объектов (назначает вероятность получить класс «0» или «1»), исходя из значений признаков объекта, взятых как взвешенная сумма • Признаки объектов x j у нас данность, мы можем настраивать весовые коэффициенты w j
и есть наша искомая приближающая (имитирующая) «закон природы» функция (мы будем искать ее в таком виде) • Коэффициенты w — это параметры искомой приближающей функции • У нас так же есть обучающая выборка — набор объектов с заранее известным классом (y=«0» — красные точки, y=«1» — синие) • Мы должны подобрать коэффициенты w так, чтобы для объектов обучающей выборки с классом y=«1» значение сигмоиды-активации было близко к 1, для y=«0» — к 0-лю. • В таком случае, по крайней мере на обучающей выборке, наша приближающая функция (сигмоида-активация) будет вести себя так же (с достаточным приближением), как и гипотетический «закон природы»
и перекрестную энтропию или • Функцию правдоподобия (likehood) В обоих случаях получим один и тот же результат — одну и ту же функцию стоимости (что любопытно)
вероятностными распределениями P («истинное») и Q (приближение) • Служит оценкой качества приближения Q к P: показывает, насколько приближенное распределение вероятности Q похоже на истинное распределение вероятности P
только тогда, когда P и Q совпадают почти всюду • Не совсем расстояние (не симметрично: «расстояние» от P до Q может быть не равно «расстоянию» от Q до P) • В качестве функции стоимости для минимизации удобнее взять не само расстояние, а перекрестную энтропию, которая связана с расстоянием прямым образом • Самостоятельно: изучить матчасть по Кульбаку-Лейблеру и перекрестной энтропии
(правдоподобны) в контексте данного (оцениваемого) вероятностного распределения • Наблюдаемые события у нас будут известные назначения классов y(i) объектам x(i) в обучающей выборке • Оцениваемое вероятностное распределение — приближенное распределение, наша приближающая функция при выбранных параметрах w
функции при выбранных параметрах w на обучающей выборке, т. е. по вероятностям, которая она назначит для тех же x(i) (значения сигмоид-активаций Ф(x(i); w)=Ф(s(i))) • Если функция оценит свершившиеся события как правдоподобные (в рамках оцениваемой модели), значит мы подобрали хорошую приближающую функцию, а именно, хорошую комбинацию параметров w
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 даст модель, тем больше всё произведение • Метод наибольшего правдоподобия: найти такое θ, для которого будет самое большое произведение
должны давать вклад в произведение — максимальную вероятность. • Если у нас вероятность основана на частоте (шары из мешка), то элементы с низкой вероятностью должны просто реже встречаться. • Если вероятность основана не на частоте, а на спец. функции распределения вероятностей (мы знаем, что этот элемент синий, но с какой вероятностью он синий? мы знаем, что этот элемент красный, но с какой вероятностью он красный?), то она должна давать высокий результат для каждого элемента обучающей выборки (настоящие синие элементы должны быть с высокой долей вероятности синие, настоящие красные элементы — с высокой долей вероятности красные). • Общий результат (правдоподобие) будет — довольно маленькое число (каждый из множителей меньше единицы), особенно для большой выборки (скорее всего на компе не получится нормально вычислить), • имеет смысл только при сравнении.
y(i)∣x(i);w)=∏ i=1 n (Φ(s(i)))y(i) (1−Φ(s(i)))1−y(i) (большая П — произведение) • Вероятность того, что каждому из элементов обучающей выборки X будет назначен класс, соответствующий известному правильному ответу из Y • При условии, что выбор каждого из элементов и назначение ему класса — независимые события (в таком случае правдоподобие — это совместная вероятность, произведение вероятностей отдельных величин) • Вероятности для каждого элемента x(i) назначает наша приближающая функция при выбранных параметрах w • Значение всей функции правдоподобия будет тем больше, чем больше значение каждого из множителей. • Наша цель — подобрать такие параметры w, при которых значение всего произведения будет максимальным
• Т.к. у у нас принимает значения только 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
Φ(s) < 1 (выполнено для сигмоиды): • При этом нельзя брать такую Φ(s) (если мы смотрим не сигмоду), которая может быть строго 0 или строго 1, т.к. это сразу обнулит всё произведение. 0<p( y(i) ∣x(i) ;w)<1
же — вероятность для текущего элемента получить класс «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
этом избавимся от степени и произведение превратится в сумму • Здесь берем именно натуральный логарифм, т.к. еще дальше при вычислении производной он удачно сократится • Самостоятельно: убедиться, что это сработает именно так (см свойства логарифма) • Здесь уже важно, чтобы активация Ф была строго больше 0 и строго меньше 1 (для сигмоиды это уже выполнено) (см свойства логарифма) ln L(w)=∑ i=1 n [ y(i)ln(Φ(s(i)))+(1− y(i))ln(1−Φ(s(i)))]
от правильного ответа для выбранного объекта получаем штраф • Для правильных предсказаний штраф приближается к нулю • Для ошибочных предсказаний штраф стремится к бесконечности • Штрафы накапливаются по всей выборке • Смысл минимизации — получить наименьшую сумму штрафов по всей выборке • [?] модель учтет не только количество правильных ответов, но и качество отдельных ответов • В этом месте нам еще не важно, что функция активации — это сигмоида, главное,чтобы она принимала значение больше 0 и меньше 1
большая удача • Нам она выпала не случайно, а потому, что мы взяли такие исходные функции • Мы их выбрали потому, что до нас их открыли другие люди • Но хватит и на нашу долю: никто не запретит нам попробовать найти другую активацию и другую функцию потерь, которые, может быть, дадут не менее красивый и, главное, эффективный результат ∂ J (w) ∂w k =−∑ i=1 n [ y(i)−σ(s(i))]x k (i)
суммы — для каждой точки (каждого объекта x) расстояние от метки класса до поверхности активации, умноженное на соответствующий признак • Расстояние от активации до меток классов можно было разглядеть уже когда записали функцию правдоподобия
• Определим правило шага: • Правило шага для 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
срезе (производная пересекает 0) • Но после шага вниз по текущему срезу на измерении w 0 минимум на другом измерении w 1 сдвигается влево • После шага по вниз к новому минимуму на измерении w 1 минимум на измерении w 0 сдвигается влево • И так далее: скатываемся бесконечно уменьшающимися шажками по желобу вниз • Дна, как у воронки (линейный нейрон ADALINE), нет, но ошибку можно уменьшать столько, сколько потребуется.
(склон более крутой, поэтому ошибка вырастает) • С левого склона опять через минимум вправо • Но ближе к минимуму, чем предыдущая правая позиция • Таким образом, все равно спускаемся к минимуму, хотя и с промежуточными всплесками • Пожалуй, строго говоря, это не спуск по градиенту, а удачный сбой • Для практического решения лучше подобрать коэффициент для более спокойного спуска без скачков
районе 10) получаем быстро inf и nan (действует экспонента), даже при не очень больших X (как у нас) • Самый большой диапазон поиска коэффициентов для нашего случая получился w 0 : [-3, 5], w 1 : [-1, 3] • Это так же зависит от значений X — если они слишком большие (например, уже в районе 100 или 1000), то их лучше сразу предварительно нормализовать — привести в отрезок [0, 1] • Хорошая практика — умещать и коэффициенты w и значения признаков X в диапазон [-1, 1] или [0, 1]
справа (на графиках градиента) • На ракурсе картинки — дальний левый верхний угол, пологий склон • Начальные значения: w 0 =4.9, w 1 =2.9 • η=0.1 • Количество эпох: 97
первое время активацию немного колбасит • Но потом разделительная точка выползает слева, • отделяет красные точки слева от синих точек справа (и назначает правильные классы), • потом потом потихоньку спрямляется еще более минимизируя ошибку, пока мы ее не оборвем • Начальные значения: w 0 =4.9, w 1 =2.9 • η=0.1 • Количество эпох: 97
минимизации вертикальных расстояний от классов признаков до линии активации в этой же точке • Благодаря особенности сигмоиды она может сжать эти расстояния вообще почти в ноль • Ошибка на 0-й эпохе: 18.5 • Ошибка на 97-й эпохе: 0.48 • и это далеко не предел (можно спустить до сотых, тысячных и т.п.)
нейрона (ADALINE) свободный коэффициент w 0 выводился из параметра — значения порога θ, без него у нас бы не получилось натренировать линейную регрессию (и нейрон) • Здесь мы сразу взяли фиксированный порог 0.5, он не принимает участие в тренировке функции (выбранная функция ошибки сама сдвигает сигмоиду в положение наиболее удобного равновесия так, что он оказывается примерно посередине) • Так зачем мы вводим свободный коэффициент w 0 и нужен ли он нам?
определяем архитектуру нейрона, поэтому имеем полное право считать сумму входов так, как нам больше нравится, в том числе волевым решением вводить свободный коэффициент (because we can) • Коэффициент w 1 задаёт угол поворота гиперплоскости (в нашем случае 1-Д — прямой) суммы вокруг начала координат, меняя кривизну сигмоиды, влиять на назначение классов • Но свободный коэффициент w 0 позволяет сдвигать гиперплоскость суммы, а вместе с ней и сигмоиду, по вертикали, меняя положение точки разделения классов
координат • Сигмоида пересекает порог в той же точке, где прямая суммы пересекает начало координат, т. е. всегда в X1=0 • Это значит, у нас никак не получится перемещать по горизонтали разделяющую классы точку • С таким ограничением на сумму вообще не получится натренировать сигмоиду (деление классов будет всегда проходить через 0) • Вывод: свободный коэффициент w 0 (нейрон смещения) следует оставить (без него не получится ничего)
координаты) • x = (x 1 , x 2 ) • y = {0, 1} (как и раньше) • активация Φ(x, w) = σ(w 0 + w 1 x 1 + w 2 x 2 ) • Спускаемся одновременно по 3-м параметрам (градиент из 3-х измерений)
x 1 + w 2 x 2 ) • Активация — параметрическая поверхность в трёхмерном пространстве, • значит мы не можем нарисовать ее на плоскости, как для 1-мерного случая, • нужно переходить в 3-д:
в качестве активации всё так же разделяет объекты на два класса гиперплоскостью (точкой, прямой, плоскостью и т.п.), а не изогнутой поверхностью (как можно было бы в начале предположить) • Т.е. работает с линейно разделимыми множествами • И даёт такой же результат, как и линейный нейрон ADALINE • Т.о., хотя у нас функция активации — нелинейная сигмоида, модель классификации нейроном остаётся линейной • Так зачем нам сигмоида?
только дискретный класс, но непрерывную «вероятность» в диапазоне от 0 до 1, которую в некоторых ситуациях можно интерпретировать как «уверенность» предсказания («вероятность» принадлежности объекта к назначенному классу) • Это непрерывное нелинейное значение (значение сигмоиды, не пропущенное через квантизатор) нам пригодится потом, когда будем выстраивать нейроны в сетку • Ключевую роль сыграет нелинейность сигмоиды (без неё вообще не получится обучить нейронную сеть)
1-д нейрон с сигмоидой — [творчески] воспроизвести код • Найдите какой-нибудь датасет, который можно разбить на два класса (классика — цветки ириса) • Обучите и проверьте обученный нейрон