Важность данных неоспорима, но как заставить данные создавать ценность?
Старый full-stack разработчик часто сталкивается с различными проблемами прогнозирования, принятия решений, логического вывода, классификации, обнаружения, сортировки и многих других проблем во время разработки или управления НИОКР. Столкнувшись с проблемой «есть ли в вашем коде еще ошибки?», разумный ответ будет заключаться в том, что мы выполнили несколько тестовых случаев, и вероятность ошибок в коде составляет несколько десятых процента. То есть наша уверенность в том, что в текущей программе нет багов, составляет несколько девяносто девять процентов. На самом деле это байесовское мышление или использование байесовских методов. Видим мы это или нет, но оно там, ярко сияет.
Что делать, если текущее программное обеспечение содержит ошибки? Начнем с теоремы Байеса.
Краткое объяснение теоремы Байеса
Для старых программистов вероятностное выражение теоремы Байеса относительно ясно, и его будет относительно легко понять. Вспоминая теорию вероятностей, которую мы изучили, совместная вероятность коммутативна, то есть:
P(A and B) = P (B and A)
Разложите совместные вероятности с условными вероятностями:
P(A and B ) = P(A) P(B|A)
P(B and A ) = P(B) P(A|B)
что приводит к:
P(A) P(B|A) = P(B) P(A|B)
Просто преобразуйте его, чтобы получить:
Готово, это магия теоремы Байеса. в:
- P(b) — априорная вероятность, то есть вероятность гипотезы до получения новых данных;
- P(B|A) — апостериорная вероятность, то есть вероятность вычисления гипотезы после наблюдения новых данных;
- P(A|B) — правдоподобие, то есть вероятность получения этих данных при данном предположении;
- P(A) — нормированная константа, вероятность получения этих данных при любых предположениях.
Вы также можете добавить немного материала.При вычислении P(A) вы можете использовать теорему сложения, чтобы выразить:
P(A) = P(A and B) + P(A and B_) = P(A|B)P(B)+ P(A|B_) P(B_)
Таким образом, есть:
где B_ — событие, противоположное B. Что касается оценки между тестами и ошибками, "Идея байесовского вывода» дает результаты байесовского вывода, где используется такой подход.
Байесовский метод
Байесовский подход — это очень общая схема вывода, в которой обновление нашего первоначального мнения о чем-либо объективной новой информацией приводит к новому и улучшенному убеждению. Путем введения априорной неопределенности допускается ошибка первоначального вывода.После получения обновленных данных первоначальный вывод не отбрасывается, а корректируется, чтобы больше соответствовать текущим данным.
Однако такие вещи, как P (A | B) и P (B | A), часто сбивают с толку. Г-н Чен из @waiziguizhong дал ключевой момент понимания, различая законы и явления, а именно рассматривать A как «Закон». , B рассматривается как «явление», то формула Байеса рассматривается как:
Учитель Чен «это понимание формулы Байеса» и «Байесовское приложение в другой жизни» приводит несколько популярных примеров, которые здесь не будут описываться.
Возвращаясь к жизни фермы кода, когда мы улучшаем системную функцию, обычным средством является тест AB. AB-тест — это статистический паттерн проектирования для определения степени дифференциации различных методов обработки.Например, два сайта принесут более высокую конверсию, и преобразованием здесь могут быть покупки пользователей, регистрация или другое поведение. Ключевым моментом теста AB является то, что между группами есть только одно различие. Анализ после экспериментов обычно использует гипотетические тесты, такие как тесты разности средних или пропорциональные тесты, часто включающие Z-баллы или вводящие в заблуждение значения P, и байесовский метод, естественно, будет.
Смоделируйте вероятность конверсии двух веб-сайтов, A и B. Коэффициент конверсии находится в диапазоне от 0 до 1, и можно использовать бета-распределение. Если априорное распределение — Бета (a1, b1), а за N посещений наблюдается X конверсий, то апостериорное распределение в это время — Бета (a1 + X, b1 + NX). Предположим, что априорное распределение — Бета (1, 1). , что эквивалентно равномерному распределению на [0, 1], пример кода выглядит следующим образом:
from spicy.stats import beta
a1_prior = 1
b1_prior =1
visitors_A = 12345 // 网站A的访问人数
visitors_B = 1616 // 网站B的访问人数
conversions_from_A = 1200 // 网站A的转化人数
conversions_from_B = 15 0 // 网站B的转化人数
posterior_A = beta(a1_prior+ conversions_from_A,b1_prior + visitors_A -conversions_from_A)
posterior_B = Beta(a1_prior+converiosns_from_B,b1_prior + visitors_B-conversions_from_B)
// 对后验概率进行采样,用rvs方法生成样本
samples = 20000
samples_posterior_A = posterior_A.rvs(samples)
samples_posterior_B = posterior_B.rvs(samples)
// 对后验概率进行比较
print (samples_posterior_A > samples_posterior_B).mean()
Использование байесовского подхода начинается с размышлений о том, как генерируются данные.
1) Какие случайные величины могут описать эту статистику
2) Искомые параметры распределения вероятностей
3) Параметры соответствуют раннему поведению или позднему поведению и определяют различные точки изменения
Вероятность 4) определить параметры распределения
5) Переменный выбор параметрических распределений вероятностей до тех пор, пока можно будет предположить равномерное распределение.
Выбор априорных и апостериорных вероятностей зависит от сценария приложения. Что касается априорных дистрибутивов, помимо обычных дистрибутивов существуют:
* Гамма-распределение, обобщение экспоненциальных случайных величин
* Распределение Уишарта, которое является распределением всех положительно-полуопределенных матриц, является подходящим априором для ковариационной матрицы.
* Бета-распределение, случайная величина определяется между 0 и 1, что делает ее популярным выбором для вероятностей и пропорций.
* Распределение по степенному закону, удовлетворяющее соотношению между размером компании и количеством компаний
Бета-распределение используется в тесте AB, применяя принцип априорного бета-распределения в сочетании с биномиальными данными наблюдения для формирования апостериорного бета-распределения.
Столкнувшись с причинно-следственными связями между несколькими объектами, байесовские методы превратились в байесовские сети.
Байесовская сеть
Байесовская сеть предлагается для решения проблемы неопределенности и неполноты и широко используется во многих областях. Байесовская сеть — это графическая сеть, основанная на вероятностных рассуждениях, а байесовская формула лежит в основе этой вероятностной сети. Каждая точка в байесовской сети представляет собой случайную величину, которая имеет практическое значение и должна быть рассчитана вручную.Граница между точками представляет собой неопределенную причинно-следственную связь.Например,узел E напрямую влияет на узел H, то есть E →H, тогда используйте стрелку от E до H, чтобы установить направленную дугу (E, H) от узла E к узлу H, а вес (т.е. сила соединения) представлен условной вероятностью P(H|E).
Фактически, если отношения между вещами могут быть связаны цепью, образуется частный случай байесовской сети - цепь Маркова.С другой точки зрения, байесовская сеть является нелинейным расширением цепи Маркова. В байесовской сети, когда в какой-то момент появляется свидетельство, изменяется вероятность события во всей сети.
Просто потому, что между несколькими переменными существуют возможные зависимости, байесовские сети учитывают в них совместное распределение условной вероятности, позволяя определить условную независимость между подмножествами переменных. Процесс использования байесовской сети аналогичен использованию байесовского метода:
- Создавая сеть по множеству дискретных переменных, она представляет собой ориентированный ациклический граф.
- Параметризация или обучение, то есть обход DAG и вычисление таблицы вероятностей каждого узла
- Сетевые рассуждения, получить доверительную вероятность о причинно-следственной связи
- результат вывода
Например, проблема обнаружения неаутентичных аккаунтов в социальных сетях. Сначала определим случайные величины в сети:
* Подлинность аккаунта А
* Подлинность аватара H
* По проводке бревна плотностью L
* Плотность друзей F
Инстанцируя H, L, F с помощью наблюдений, присваивая A случайные значения, мы получаем
P(A|H,L,F) = P(H|A)P(L|A)P(F|A,H)
Затем этот вывод можно опробовать в социальной сети. Относительно подробное объяснение этого примера дано в статье «Алгоритмическая бакалея — байесовские сети для алгоритмов классификации».
Можно сказать, что байесовский метод охватил всю теорию вероятностей и распространил свое применение на различные проблемные области.Тень байесовского метода можно увидеть везде, где требуется вероятностное предсказание.В частности, байесовский метод имеет большое влияние на машинное обучение Что может помочь?
Байесовское и машинное обучение
Машинное обучение горячо в отрасли, но мы также сталкиваемся с такими проблемами, как прогноз, принятие решений, классификация и обнаружение в машинном обучении. Байесовские методы также очень полезны.
Существует большое количество моделей в машинном обучении, таких как линейные модели и нелинейные модели, а методы байесов могут быть использованы для создания прогнозов модели. То есть, что есть бесконечное число возможных моделей для сцены, которая может быть описана путем распределения вероятностей. Для гипотетической до предшествующего предшествующего предсказания для нового образца, такого как расчет его вероятности, а затем интегрироваться с задним распределением, полученным ранее. Вероятность образца при этой данной модели является распределение всех возможных моделей.
Выбор и сравнение моделей в машинном обучении также является распространенной проблемой. Например, когда дело доходит до задач классификации, используем ли мы линейную модель или нелинейную модель глубокого обучения? Байесовский подход мыслит следующим образом: пусть A обозначает один класс моделей, возможно, линейных, а B — другой класс моделей, возможно, нелинейных. Для того же набора данных X вычислите вероятность Ma и Mb обучающего набора, наблюдаемого в случае A и B, а затем сравните Ma и Mb, что является основным правилом байесовского метода выбора модели.
По сути, теорема Байеса — это критерий обработки информации, вход — априорное распределение и функция правдоподобия, а выход — апостериорное распределение. Что касается самой модели в машинном обучении, вы также можете попытаться улучшить ее с помощью байесовских методов, таких как байесовский SVM, байесовский гауссовский процесс и так далее.
Кроме того, байесовские методы по-прежнему очень полезны для глубокого обучения, по крайней мере, в этой части настройки параметров. В нейронной сети параметры каждого слоя, такие как размер и количество ядер свертки, не оптимизируются автоматически моделью в глубоком обучении и должны указываться вручную, что может быть байесовской оптимизацией.
Вздыхаю от умиления, код фермера байесовского не знает, а если и знает данные, то напрасно!
Другие ссылки:
- «Байесовский подход — вероятностное программирование и байесовский вывод»
- «Байесовское мышление: подход Python к обучению статистическому моделированию»
- «Красота математики: обычный и волшебный байесовский метод»
- «Байесовский метод машинного обучения» www.cs.toronto.edu/~radford/ftp/bayes-tut.pdf
1 лайк1 ИзбранноеКомментарийВознаграждайте и поддерживайте меня, чтобы я писал больше хороших статей, спасибо!
Наградить автора