Байесовский вывод |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-10-12 12:17 Если вы планируете в будущем стать аналитиком/ML-инженером, то, возможно, уже какое-то время изучаете статистику. Чем дольше вы этим занимаетесь и погружаетесь в прикладной контекст, тем с большей вероятностью вы могли встречать на просторах интернета крамольную мысль, что есть ещё какая-то другая, байесовская статистика. Но что это за зверь, чем она отличается от классической статистики и почему она так нравится многим? В этой статье мы попробуем кратко расписать логику байесовского вывода и основные его компоненты, разобрав всё на конкретном примере. Основная идея Чтобы понять смысл байесовской статистики, в первую очередь стоит понять философские различия между двумя подходами, а именно понятие вероятности в каждом из них.
«Субъективная вероятность» звучит как что-то максимально нестрогое и почти что эзотерическое. Однако в этом и заключается магия байесовского вывода: это максимально строгий и математически выверенный способ оценки того, как должны меняться наши субъективные убеждения при получении новой информации. Фактически реализуется следующая логика:
Именно строгая формальная база вкупе с натуральной интерпретируемостью процесса и подкупает многих адептов байесовского подхода! Но как реализуется эта строгость? Здесь, как ни удивительно, замешана формула Байеса: Три элемента этой формулы концептуально совпадают с тремя шагами логики выше. Четвёртый элемент — P(A) — играет вспомогательную роль в качестве нормирующей константы. Он нужен лишь для того, чтобы значения на выходе можно было трактовать именно как вероятность со значениями от 0 до 1. Рассмотрим остальные элементы:
Звучит достаточно абстрактно и непонятно. Но давайте попробуем разобрать это на конкретном примере. Пример Ситуация: вы запускаете свой онлайн-стартап, чтобы поделиться с человечеством Уникальным Продуктом (и получить прибыль). Рекламная кампания уже вовсю ходит по уголкам интернета, и сайт уже ждёт тех смельчаков, которые готовы пройти на него по ссылке и совершить покупку. Естественно, не каждый человек перейдёт по ссылке. А из тех, кто перешёл, не каждый купит. Первое оценивается метрикой под названием CTR, а второе —CR, больше известной как конверсия. Допустим, нас интересует именно конверсия: какой процент посетителей сайта в конечном итоге станет нашими покупателями, насколько эффективно они проходят воронку. Как можно подойти к этому вопросу по-байесовски? Prior Любой байесовский вывод начинается с наших предварительных убеждений. Какие значения конверсии мы считаем более вероятными, а какие менее? Для начала надо подобрать адекватное априорное распределение. Подойдёт ли здесь нормальное распределение? Вряд ли — оно принимает значения от -? до +?, а конверсия меняется от 0 до 1! Гораздо лучше здесь подойдёт нежно любимое байесианцами бета-распределение — оно как раз на этом промежутке значений и определено. Все характеристики бета-распределения зависят от двух параметров: Beta(?,?) Оба параметра можно (грубо) интерпретировать похожим на биномиальное распределение образом: ? отражает число успехов и перетягивает распределение вправо, а ? отражает число неудач и перетягивает распределение влево. Форма итогового распределения будет зависеть от величины каждого параметра и отношения между этими величинами. Звучит всё ещё абстрактно. Давайте посмотрим на четыре конкретных примера, где мы выразим 4 разных убеждения, а затем сравним их итоговый эффект! Неинформативное распределение Для начала мы можем поиграть в Сократа и решить, что мы вообще ничего не знаем про конверсию, кроме границ её значений. Какое наиболее вероятное значение конверсии? А чёрт его знает, все одинаково вероятны! Никакой информации у нас нет и модели мы её давать не будем. Очевидный выбор распределения - это равномерное Uniform(0,1). К счастью, оно является частным случаем бета-распределения, и мы можем получить его через параметры Beta(1,1): Так как в данном случае мы высказываем 0 конкретных убеждений и отдаём всё на откуп данным, то такое распределение мы зовём неинформативным. Что интересно, равномерное распределение не всегда является оптимальным неинформативным вариантом с точки зрения математики. Более того, оно часто усложняет жизнь нашим моделям с точки зрения расчётов. Но если мы реально ничего не знаем и не придерживаемся никаких убеждений, то это стандартный выбор распределения! Другой вопрос — реально ли у нас нет убеждений. Слабоинформативное распределение Давайте подумаем: а действительно ли все варианты конверсии одинаково вероятны? Действительно ли мы считаем, что 50%-ая конверсия столь же вероятна, как и 100%-ая? А конверсия в 0%? Согласитесь, настолько радикальные значения конверсии не кажутся столь вероятными — вряд ли нас ждёт прям совсем грандиозный провал или столь же грандиозный успех. И эту информацию мы вполне можем учесть: вы не будем давать нашей модели слишком уж конкретные значения, но скажем ей, что экстремальные значения не столь вероятны. Так как информацию мы даём, но этой информации не очень много, мы зовём такое слабоинформативными распределениями. Сделать такое можно, например, в виде Beta(3,3): Можно было бы понизить ? и ?, если нам кажется, что это даёт слишком много информации модели. Или наоборот, поднять эти параметры, если нам кажется, что модель недостаточно исключает крайние значения. А можно указать гораздо более конкретную информацию о наиболее правдоподобных значениях конверсии и создать информативное априорное распределение. Информативное распределение Давайте предположим, что у нас уже есть продуктовый опыт и мы повидали много разных конверсий в похожих продуктах. Самые неудачные выдавали вам конверсию около 40%, самые успешные — около 80%, но обычно конверсия была где-то в районе 60%. Давайте используем этот продуктовый инсайт и расскажем о нём нашей модели! Этот вариант можно выразить через распределение Beta(24,16): Опять же, можно сделать его уже (увеличив значения и ?, и ?), или шире (уменьшив их) и, конечно же, изменять его центральную тенденцию. Всё, о чём вам говорит опыт и интуиция. В целом информативные априорные распределения лучше всего основывать либо на исторических данных, либо на научных источниках или другой проверенной информации. Но, само собой, нам ничто не мешает использовать очевидно плохое распределение. Не очень адекватное информативное распределение Представьте, что мы верим в продукт настолько сильно, что это балансирует на грани с фанатизмом. Конверсия обязана быть максимально возможной (ну максимум на 5-6% пониже). Всё остальное — из жанра фантастики. Представим эту модель как Beta(100,1): Итого мы выразили 4 различные суждения о правдоподобных значениях конверсии. Давайте посмотрим, как это соотнесётся с жестокой реальностью. Likelihood Давайте представим, что реально нашей эффективности хватило лишь на 40% посетителей — т.е. имеем конверсию в покупку, равную 0.4. Однако мы как исследователи этого пока не знаем! Всё, что у нас на данный момент есть — это данные 20 посетителей сайта. Они выглядят вот так: Всего из 20 человек покупку совершило лишь 5 — это конверсия в 25%. Негусто! Но надо понять, при каких "истинных" значениях конверсии мы могли бы получить такой результат. Так как у нас, по сути, есть череда успехов и неудач, то такие данные хорошо описываются распределением Бернулли. Соответственно, используя биномиальную функцию правдоподобия, мы получаем вот такой результат: Ожидаемо, пик находится в районе 25% — однако допустимы значения от 0 (невключительно) до примерно 60%. Попадает в диапазон и "истинное" значение 40% — мы его не знаем, но данные были симулированы именно из такого распределения. Причина такой ширины распределения - малый размер выборки. Остановитесь здесь и подумайте: как изменятся четыре наших убеждения выше в свете вот таких данных? Когда будете готовы, переходите в следующий раздел. Posterior Итого мы имеем с вами P(B) и P(A|B). Чтобы получить апостериорное распределение P(B|A), нам нужно получить нормирующую константу P(A). Как это сделать? Здесь мы используем небольшой трюк. Дело в том, что в биномиальной модели бета-распределение обладает замечательным математическим свойством: оно является сопряжённым априорным распределением. Это означает, что апостериорное распределение тоже будет бета-распределением. Также это значит, что есть конкретная формула, по которой от P(B) и P(A|B) можно напрямую перейти к P(B|A). Она очень простая: P(B|A)=Beta(?+k, ?+n-k) Где ? и ? — параметры нашего априорного распределения, k — число успехов, n — число испытаний. Иными словами, мы просто прибавляем к первому параметру число покупателей нашего продукта, а ко второму — всех остальных. Давайте смотреть для каждого случая: Неинформативное распределение Наше неинформативное распределение меняется так: Beta(1+5,1+15)=Beta(6,16). Посмотрим, как это выглядит: Обратите внимание, что по форме оно идеально совпадает со значениями функции правдоподобия! Интуитивно это не столь удивительно — мы не высказывали никаких предположений, а значит, данные всё решили за нас. Слабоинформативное распределение Сравним прошлый результат со слабоинформативным: Beta(3+5,3+15)=Beta(8,18). На первый взгляд выглядит, будто это распределение ничем не отличается от предыдущего. Однако если присмотреться, то можно увидеть небольшой сдвиг: Как следствие изначально более низкой вероятности крайних значений, здесь наш вывод смещён в сторону более высоких значений конверсии. Более того — можете обратить внимание на то, что слабоинформативный вариант имеет меньшую дисперсию. Мы сузили границы допустимых значений и стали увереннее в своём текущем выборе! Но сдвиг всё ещё не очень большой. На то оно и слабоинформативное. Информативное распределение А теперь оценим эффект информативного распределения: Beta(24+5,16+15)=Beta(29,31) Здесь влияние исходного распределения гораздо сильнее — видно, что апостериорное распределение явно смещено правее, чем прошлые варианты! Тем не менее, достаточно очевидно, что реальные данные повлияли на результат и скорректировали наше изначальное мнение. Не очень адекватное информативное распределение Наконец, глянем, к чему привёл наш фанатизм: Beta(100+5,1+15)=Beta(105,16): Конечно, определённое влияние данные на нас оказали — мы уже не настолько отчаянно веруем в крайне высокую конверсию. Тем не менее, полностью избавиться от его влияния нам не удалось — наше апостериорное распределение всё ещё лежит около довольно высоких значений конверсии. Собранных данных недостаточно, чтобы переубедить нас полностью. Подытог Ну и какой же вариант оказался ближе всего к истине? Давайте поглядим: Видно, что «фанатичный» вариант явно оказал нам медвежью услугу — это апостериорное распределение даже не близко к «истине»! Это ожидаемое поведение — малые выборки неспособны значимо пошатнуть высокую уверенность в чём-то. Остальные три распределения захватывают «истинное» значение. При этом видно, что неинформативный вариант даёт «истине» меньше веса, чем слабо- и сильно- информативные распределения. Давайте приблизим, чтобы понять, какое из них «лучше»: Информативный вариант оказался самую чуточку «лучше» — он даёт больше веса «истинному» значению! Итого имеем такое ранжирование априорных распределений для данного случая:
Из этого мы можем сделать (неформально) несколько выводов:
А если данных будет больше? Одна из приятных особенностей байесовского вывода — он работает как постепенное накопление информации. Из-за этого проблема подглядывания нам не столь принципиальна по сравнению с классической статистикой — мы можем просто накапливать всё больше и больше данных и смотреть, как меняются наши убеждения в чём-то! Хотя тут тоже не всё так просто. На практике это означает, что чем больше у нас будет становиться выборка, тем больше реальные данные будут доминировать над априорными. Взглянем на это на практике! Ради финального вывода давайте глянем на результат для 1000 значений: Выводы по этому графику дадим вам сделать самостоятельно. Что почитать ещё? Здесь мы описали лишь общую логику байесовского вывода, оставив нераскрытыми множество вопросов. Как делать байесовский вывод для несопряжённых априорных распределений? Как сделать байесовские аналоги стандартных тестов? Как проверять статзначимость полученных результатов? Что вообще можно делать в байесовской парадигме? Мы собрали для вас подборку материалов, в которых можно ознакомиться с этим всем и даже больше.
Источник: m.vk.com Комментарии: |
|