Тоже хотите собрать полный комплект яблочной техники? Тогда покупайте мои курсы изучайте статистику.
Сегодня полезный пост, в котором мы начнем собирать статистический словарик для начинающих ML-щиков и аналитиков.
0. Центральная предельная теорема.
Святой грааль теории вероятностей, из которого статистика как наука практически родилась. Что говорит ЦПТ? Если у нас есть много независимых случайных величин из одного распределения, то их среднее (как случайная величина) будет распределена нормально, причем математическое ожидание совпадет с мат.ожиданием одной случайной величины, а дисперсия будет дисперсией одной случайной величины, деленной на кол-во наблюдений. В частности, ошибки измерений и случайный шум часто распределены нормально, что позволяет использовать MSE-loss для моделей, приближающих данные, но про это в другом посте (поддержите активностью, если вам интересно!!!).
1. Статистические гипотезы.
Статистическая гипотеза представляет из себя утверждение о параметрах модели. В тестах обычно используется два вида гипотез - нулевая и альтернативная, обозначаются H0 и H1 соответственно. Нулевая гипотеза - та, которую мы примем, если не соберем достаточных доказательств ее неправильности. Соответственно, ее можно составить по формуле "при отсутствии данных принимаем такое же решение, как если бы было верно...".
Альтернативная гипотеза - гипотеза, требующая доказательств, то есть данных, свидетельствующих о ее правильности и о том, что нулевая гипотеза неверна. Пример: вы - банк, нормальный банк, не МФО, и на основе данных хотите принять решение, является ли заемщик надежным? Тут нулевой гипотезой будет то, что заемщик - ненадежный, ибо зачем без доказательств выдавать кредит кому попало? Это экономически невыгодно.
2. Статистические тесты, уровень значимости, мощность.
После того, как мы определились с гипотезами, нужно их проверить - для этого и нужны статистические тесты. Статистические тесты вычисляют функцию от наблюдений, называемую статистику, и проверяют, попало ли это значение в "критический регион" - множество значений, при которых мы отклоняем нулевую гипотезу. Критический регион основан на знании о том, как распределена тестовая статистика. Тесты бывают односторонние и двусторонние. При одностороннем тесте вы сравниваем тестовую статистику только с одним числом, в двустороннем тесте - с двумя числами. Подробнее с этим мы разберемся в практическом примере.
Однако, помимо формулирования гипотез, перед проведением теста необходимо определиться с уровнем значимости. Уровень значимости показывает, как часто наш тест неверно отклоняет нулевую гипотезу. Более формально - это вероятность отклонить H0 при условии ее правильности. В примере с банком - как часто мы выдаем кредит ненадежным заемщикам. От уровня значимости будет зависеть критический регион теста. Обычно используется значение 0.05 - то есть мы позволяем тесту ошибочно отвергать H0 не более чем в 5% случаев.
Почему же мы не можем поставить уровень значимости очень маленьким, скажем, 0.01%, чтобы почти никогда неверно не отклонять H0? Пострадает мощность. Мощность показывает, как часто мы правильно отклоняем H0, для случая с банком - как часто мы выдаем кредит надежным заемщикам. Если поставить уровень значимости очень низким, то почти все заемщики вернут нам кредит, но самих заемщиков станет сильно меньше! При уменьшении уровня значимости мощность обычно падает, и итоговая значимость будет зависеть от наших бизнес-целей.
Сегодня полезный пост, в котором мы начнем собирать статистический словарик для начинающих ML-щиков и аналитиков.
0. Центральная предельная теорема.
Святой грааль теории вероятностей, из которого статистика как наука практически родилась. Что говорит ЦПТ? Если у нас есть много независимых случайных величин из одного распределения, то их среднее (как случайная величина) будет распределена нормально, причем математическое ожидание совпадет с мат.ожиданием одной случайной величины, а дисперсия будет дисперсией одной случайной величины, деленной на кол-во наблюдений. В частности, ошибки измерений и случайный шум часто распределены нормально, что позволяет использовать MSE-loss для моделей, приближающих данные, но про это в другом посте (поддержите активностью, если вам интересно!!!).
1. Статистические гипотезы.
Статистическая гипотеза представляет из себя утверждение о параметрах модели. В тестах обычно используется два вида гипотез - нулевая и альтернативная, обозначаются H0 и H1 соответственно. Нулевая гипотеза - та, которую мы примем, если не соберем достаточных доказательств ее неправильности. Соответственно, ее можно составить по формуле "при отсутствии данных принимаем такое же решение, как если бы было верно...".
Альтернативная гипотеза - гипотеза, требующая доказательств, то есть данных, свидетельствующих о ее правильности и о том, что нулевая гипотеза неверна. Пример: вы - банк, нормальный банк, не МФО, и на основе данных хотите принять решение, является ли заемщик надежным? Тут нулевой гипотезой будет то, что заемщик - ненадежный, ибо зачем без доказательств выдавать кредит кому попало? Это экономически невыгодно.
2. Статистические тесты, уровень значимости, мощность.
После того, как мы определились с гипотезами, нужно их проверить - для этого и нужны статистические тесты. Статистические тесты вычисляют функцию от наблюдений, называемую статистику, и проверяют, попало ли это значение в "критический регион" - множество значений, при которых мы отклоняем нулевую гипотезу. Критический регион основан на знании о том, как распределена тестовая статистика. Тесты бывают односторонние и двусторонние. При одностороннем тесте вы сравниваем тестовую статистику только с одним числом, в двустороннем тесте - с двумя числами. Подробнее с этим мы разберемся в практическом примере.
Однако, помимо формулирования гипотез, перед проведением теста необходимо определиться с уровнем значимости. Уровень значимости показывает, как часто наш тест неверно отклоняет нулевую гипотезу. Более формально - это вероятность отклонить H0 при условии ее правильности. В примере с банком - как часто мы выдаем кредит ненадежным заемщикам. От уровня значимости будет зависеть критический регион теста. Обычно используется значение 0.05 - то есть мы позволяем тесту ошибочно отвергать H0 не более чем в 5% случаев.
Почему же мы не можем поставить уровень значимости очень маленьким, скажем, 0.01%, чтобы почти никогда неверно не отклонять H0? Пострадает мощность. Мощность показывает, как часто мы правильно отклоняем H0, для случая с банком - как часто мы выдаем кредит надежным заемщикам. Если поставить уровень значимости очень низким, то почти все заемщики вернут нам кредит, но самих заемщиков станет сильно меньше! При уменьшении уровня значимости мощность обычно падает, и итоговая значимость будет зависеть от наших бизнес-целей.
❤57🔥6🤮6⚡4👎3
Практический пример.
Давайте разберем по кусочкам z-тест - популярный тест, используемый для проверки равенства математического ожидания некоторому числу. Допустим, у нас есть сайт, для которого мы сделали новый дизайн, и мы хотим узнать, приносит ли он дополнительную прибыль. Мы проверяем только то, что он приносит больше денег - тогда тест односторонний. Если бы мы хотели проверить, что у нас вообще есть какие-то изменения, как положительные, так и отрицательные, то есть смотрели бы в обе стороны, то тест был бы двусторонним.
Нулевая гипотеза будет звучать так: новый дизайн приносит столько же прибыли, сколько и старый, либо меньше (но для одностороннего стат.теста это не важно - равенство или неравенство), то есть mu (математическое ожидание прибыли от нового дизайна) = mu0 (математическое ожидание старого дизайна, известное нам). Альтернативная гипотеза - mu > mu0.
z-тест основан на ЦПТ - при достаточно большом размере выборки ее среднее распределено нормально, при верности нулевой гипотезы распределение будет N(mu0, sigma^2 / n). Тогда (выборочное среднее - mu0)/sigma * sqrt(n) будет распределено как N(0, 1), что и будет нашей статистикой. Выберем уровень значимости 5% - как стандарт индустрии. Что тогда будет критическим регионом?
При верности нулевой гипотезы 95% статистик будут меньше 95-го перцентиля N(0, 1). Тогда, если мы возьмем этот перцентиль как критическое значение, а все, что больше него - как критический регион, то мы неверно отклоним нулевую гипотезу ровно в 5% случаев - что нам и нужно!) Соответственно, тест будет выглядеть так - посчитать нашу статистику, и сравнить с 95-ым перцентилем нормального распределения. Если она больше - отклоняем нулевую гипотезу, то есть дизайн приносит больше прибыли, если же меньше - мы не собрали достаточно статистических доказательств, что новый дизайн повысит прибыль. Тут возникает важный момент - то, что нулевая гипотеза не отвергнута, не означает, что она верна. Вот мы и приняли решение.
Спасибо за внимание, если вам понравилось то поддержите пост активностью!!!
Давайте разберем по кусочкам z-тест - популярный тест, используемый для проверки равенства математического ожидания некоторому числу. Допустим, у нас есть сайт, для которого мы сделали новый дизайн, и мы хотим узнать, приносит ли он дополнительную прибыль. Мы проверяем только то, что он приносит больше денег - тогда тест односторонний. Если бы мы хотели проверить, что у нас вообще есть какие-то изменения, как положительные, так и отрицательные, то есть смотрели бы в обе стороны, то тест был бы двусторонним.
Нулевая гипотеза будет звучать так: новый дизайн приносит столько же прибыли, сколько и старый, либо меньше (но для одностороннего стат.теста это не важно - равенство или неравенство), то есть mu (математическое ожидание прибыли от нового дизайна) = mu0 (математическое ожидание старого дизайна, известное нам). Альтернативная гипотеза - mu > mu0.
z-тест основан на ЦПТ - при достаточно большом размере выборки ее среднее распределено нормально, при верности нулевой гипотезы распределение будет N(mu0, sigma^2 / n). Тогда (выборочное среднее - mu0)/sigma * sqrt(n) будет распределено как N(0, 1), что и будет нашей статистикой. Выберем уровень значимости 5% - как стандарт индустрии. Что тогда будет критическим регионом?
При верности нулевой гипотезы 95% статистик будут меньше 95-го перцентиля N(0, 1). Тогда, если мы возьмем этот перцентиль как критическое значение, а все, что больше него - как критический регион, то мы неверно отклоним нулевую гипотезу ровно в 5% случаев - что нам и нужно!) Соответственно, тест будет выглядеть так - посчитать нашу статистику, и сравнить с 95-ым перцентилем нормального распределения. Если она больше - отклоняем нулевую гипотезу, то есть дизайн приносит больше прибыли, если же меньше - мы не собрали достаточно статистических доказательств, что новый дизайн повысит прибыль. Тут возникает важный момент - то, что нулевая гипотеза не отвергнута, не означает, что она верна. Вот мы и приняли решение.
Спасибо за внимание, если вам понравилось то поддержите пост активностью!!!
🔥65👍4⚡3🤮3🤡2
Forwarded from Ebout Data Science | Дима Савелко
Тотальное Уничтожение Multihead-Attention
Для начала вам стоит прочитать пост про Self-Attention для более лучшего понимания данного поста. Если ты действительно хочешь понять MHA, то к данному посту нужно подходить ни один раз, спрашивая в комментах или у GPT.
Главная суть MHA - Multihead Attention
- Распараллеливание: Каждая голова в MHA обрабатывается независимо, что позволяет эффективно использовать вычислительные ресурсы (например, GPU).
- Интерпретация разных смыслов: Разные головы фокусируются на различных аспектах текста, что помогает модели "замечать" важные связи между словами с разных точек зрения.
Детальный разбор
Представим, что batch_size=1, seq_len=4, embedding_dim=6, heads=3 (количество голов).
На вход поступает последовательность ["Я", "Хочу", "Пиццу", "<eos>"]. Каждый токен - это слово, которое преобразуется в эмбеддинг (вектор). На выходе имеем матрицу эмбеддингов X, смотрите на картинку 1
Картинка 1:
- На вход в MHA поступает матрица эмбеддингов X.
- Имеем веса Wq, Wk, Wv, которые обучаются.
- Путём матричного умножения X на Wq, Wk, Wv получаем три матрицы: Q, K, V.
Размерности:
- X → (batch_size, seq_len, embedding_dim)
- Wq, Wk, Wv → (embedding_dim, embedding_dim)
- Q, K, V → (batch_size, seq_len, embedding_dim)
Картинка 2:
Вот у нас получились матрицы Q, K, V. Важно понимать, что MHA — это не создание новых отдельных матриц Q, K, V, а деление каждой из них на головы.
Условно, для каждого токена мы уменьшаем длину его вектора, разделяя его между головами. Например, на картинке 2 токен "пиццу" изначально представлен эмбеддингом длиной 6 → [13,14,15,16,17,18]. Если количество голов равно 3, то теперь этот токен преобразуется в 3 вектора по 2 элемента каждый → [[13,14],[15,16],[17,18]], теперь токен "пиццу" представили как три вектора с размером вектора два. Для этого выполняются операции
reshape
и swap
, у нас появляется новая переменная head_dim = embedding_dim/heads Размерности:
- Q, K, V → (batch_size, seq_len, embedding_dim) = (1, 4, 6)
- Q, K, V после
reshape
→ (batch_size, seq_len, heads, head_dim) = (1, 4, 3, 2)- Q, K, V после
swap
→ (batch_size, heads, seq_len, head_dim) = (1, 3, 4, 2)Картинки 3-5:
Теперь происходит обычная формула Self-Attention по каждой голове: softmax((Q x K.T)/sqrt(head_dim)) * V
И основная суть, что каждая голова обрабатывается параллельно на одном устройстве (например, GPU), что обеспечивает эффективное распараллеливание вычислений
Размерности:
Attention Output для каждой головы имеет размерность → (batch_size, seq_len, head_dim) = (1, 4, 2).
Картинки 6-8:
Вот мы посчитали для каждой головы Attention Output, а теперь время всё конкатить, восстанавливая исходную размерность эмбеддингов. Делаем обратные операции что и на втором шаге. Сначала
reshape
, а потом swap
Размерности:
- Attention Output каждой головы → (batch_size, text, seq_len, head_dim) = (1, 3, 4, 2)
- После
swap
→ (batch_size, seq_len, heads, head_dim)=(1, 4, 3, 2)- После
reshape
→ (batch_size, seq_len, heads×head_dim)=(1, 4, 6)Картинка 9:
Ну и наконец-то получаем наш Attention Output, который матрично умножается на матрицу весов Wo: Attention Output x Wo. По итогу получается FinalOutput, которая идёт в следующие слои
Размерности:
- Wo → (embedding_dim, embedding_dim) = (6, 6)
- Attention Output → (batch_size, seq_len, embedding_dim) = (1, 4, 6)
- FinalOutput → (batch_size, seq_len, embedding_dim) = (1, 4, 6)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🤡7👍5❤🔥4🤮3
Я уже день нахожусь под впечатлением от информации, что я засветился в ролике гендерфлюидного вертосексуала про Алексея Поднебесного (ссылка, 4:11, таймкод выставлен)
YouTube
Падение Алексея Поднебесного
💚ЛУЧШИЕ ОБМЕННИКИ НА BESTCHANGE: https://bc.to/genderfluid
Мой ТГ https://www.tgoop.com/genderfluidhelisexual
Эксклюзивный контент:
Boosty https://boosty.to/vertoletski
Patreon https://www.patreon.com/vertoletski
Видеоприколы от @HideoDima-px9zl
Мои стримы по…
Мой ТГ https://www.tgoop.com/genderfluidhelisexual
Эксклюзивный контент:
Boosty https://boosty.to/vertoletski
Patreon https://www.patreon.com/vertoletski
Видеоприколы от @HideoDima-px9zl
Мои стримы по…
😁22❤5🤮3🤡2
Если ты шортишь боинг в падающем самолете является ли это инсайдерской торговлей?
😁61😭9🔥2🤮2🤡1