Практический пример.
Давайте разберем по кусочкам 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
Пока одни учат ллмки и умрут от старости, другие вычисляют протеины и будут жить вечно
👍49🥴13❤10👏3💯2