Skip to content

Commit df472ee

Browse files
fix: Correct some mistakes
1 parent d623224 commit df472ee

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

notes/machine_learning/neural_networks.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1276,7 +1276,7 @@
12761276
"\n",
12771277
"#### Описание проблемы\n",
12781278
"\n",
1279-
"Представим такую ситуацию. Пусть имеются $l$ токенов, среди которых есть токен \\<STOP\\>. Изначально последовательность состоит только из токена \\<START\\>, который не входит в упомянутые $l$ токенов. На каждом шаге нейронная сеть получает на вход некую информацию о текущей последовательноси (неважно, какую) и возвращает вектор длины $l$, который после нормировки интерпретируется как вектор вероятностей категориального распределения над токенами. Из этого категориального распределения сэмплируется следующий элемент последовательности, и так продолжается до тех пор, пока не будет сгенерирован токен \\<STOP\\>. По получившейся последовательности (в виде one-hot encoded векторов) дифференцируемым образом вычисляется функция потерь. Опять же, неважно, как (например, если это GAN, то может быть дискриминатор с агрегирующей [LSTM](__home_url__/notes/Внутреннее устройство LSTM-юнита)) или с [транформерными](__home_url__/notes/Трансформер) блоками). Проблема в том, что операция сэмплирования не позволит стандартным способом подсчитать градиент функции потерь по весам какого-либо юнита, стоящего до сэмплирования.\n",
1279+
"Представим такую ситуацию. Пусть имеются $l$ токенов, среди которых есть токен \\<STOP\\>. Изначально последовательность состоит только из токена \\<START\\>, который не входит в упомянутые $l$ токенов. На каждом шаге нейронная сеть получает на вход некую информацию о текущей последовательноси (неважно, какую) и возвращает вектор длины $l$, который после нормировки интерпретируется как вектор вероятностей категориального распределения над токенами. Из этого категориального распределения сэмплируется следующий элемент последовательности, и так продолжается до тех пор, пока не будет сгенерирован токен \\<STOP\\>. По получившейся последовательности (в виде one-hot encoded векторов) дифференцируемым образом вычисляется функция потерь. Опять же, неважно, как (например, если это GAN, то может быть дискриминатор с агрегирующей [LSTM](__home_url__/notes/Внутреннее устройство LSTM-юнита) или с [транформерными](__home_url__/notes/Трансформер) блоками). Проблема в том, что операция сэмплирования не позволит стандартным способом подсчитать градиент функции потерь по весам какого-либо юнита, стоящего до сэмплирования.\n",
12801280
"\n",
12811281
"Для большей ясности сравним описанный пример с языковой моделью, по предыдущим словам предсказывающей следующее слово. Такая модель обучается решать задачу классификации, где для логарифмической функции потерь не нужно никакое сэмплирование. В разбираемом же примере функция потерь вычисляется по самой последовательности, а не по вероятностям её отдельных элементов. Более того, без сэмплирования и получить эту последовательность не вышло бы, ведь её элементы зависят от конкретных значений предыдущих элементов, а не их вероятностей.\n",
12821282
"\n",

notes/machine_learning/statistics_and_ab_experiments.ipynb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
"Как ранее отмечалось, с формализацией мощности могут быть проблемы, если вероятность ошибки второго рода зависит от $p(x) \\in P_a$. В случае с A/B-тестированием это так: при $\\mathbb{E}_p x$, близких к 0, вероятность ошибки второго рода должна быть выше, чем при больших по модулю $\\mathbb{E}_p x$. Поэтому вместо мощности ориентируются на *минимальный детектируемый эффект* (MDE). По определению, это минимальное по модулю значение $\\mathbb{E}_p x$, для которого вероятность ошибки второго рода равна $\\beta$. Получается, что для меньших (по модулю) чем MDE значений разницы между группами вероятность ошибки второго рода будет больше $\\beta$, а для больших — меньше.\n",
152152
"\n",
153153
"MDE зависит от:\n",
154+
"* $\\alpha$ (чем она выше, тем он ниже),\n",
154155
"* $\\beta$ (чем она выше, тем он ниже),\n",
155156
"* количества наблюдений $n$ (чем их больше, тем он ниже),\n",
156157
"* дисперсии одиночного наблюдения (чем она выше, тем и он выше),\n",
@@ -305,7 +306,11 @@
305306
"\n",
306307
"#### Дефекты планирования\n",
307308
"\n",
308-
"* **Отсутствие заранее предрассчитанных сроков проведения и процента, вовлечённого в эксперимент**. Ещё до запуска эксперимента необходимо выбрать [статистическую значимость](__home_url__/notes/Проверка гипотез в классической статистике) $\\alpha$ (как правило, её полагают равной 0,95 или, что лучше, 0,99) и статистическую мощность, обозначаемую как $(1 - \\beta)$ (ниже 0,8 её обычно не берут), а также определиться, двусторонняя или односторонняя альтернатива будет проверяться (если неизвестно, как повлияет экспериментальное изменение, нужно взять двустороннюю альтернативу; если есть уверенность, что эксперимент заведомо улучшающий или ухудшающий, то можно взять соответствующую одностороннюю альтернативу, чтобы повысить чувствительность). Далее необходимо оценить дисперсию целевой метрики и предположительный размер эффекта, вносимого тестируемым изменением. Если про эффект заранее сложно что-то сказать, можно взять минимальное значение эффекта, ради которого есть смысл внедрять изменение (то есть минимальный практически значимый эффект; практическую значимость не стоит путать со статистической значимостью). Наконец, сроки проведения эксперимента и процент, отводимый под контрольную группу и тестовую группу, надлежит подобрать так, чтобы добиться выбранной (или большей) мощности при условии, что эффект окажется таким, как предполагается. Иными словами, MDE должен быть равен предполагаемому эффекту (или быть меньше него). Все эти расчёты нужны, потому что если продолжительность и охват выбрать наугад, то потом в случае отсутствия статистической значимости нельзя будет отличить ситуацию, когда эффекта нет или он сильно меньше ожидавшегося, от ситуации, когда эксперимент слишком рано завершили.\n",
309+
"* **Отсутствие заранее предрассчитанных сроков проведения и процента, вовлечённого в эксперимент**.\n",
310+
" - Ещё до запуска эксперимента необходимо выбрать [статистическую значимость](__home_url__/notes/Проверка гипотез в классической статистике) $\\alpha$ (как правило, её полагают равной 0,95 или, что лучше, 0,99) и статистическую мощность, обозначаемую как $(1 - \\beta)$ (ниже 0,8 её обычно не берут), а также определиться, двусторонняя или односторонняя альтернатива будет проверяться (если неизвестно, как повлияет экспериментальное изменение, нужно взять двустороннюю альтернативу; если есть уверенность, что эксперимент заведомо улучшающий или ухудшающий, то можно взять соответствующую одностороннюю альтернативу, чтобы повысить чувствительность).\n",
311+
" - Далее необходимо оценить дисперсию целевой метрики и предположительный размер эффекта, вносимого тестируемым изменением. Если про эффект заранее сложно что-то сказать, можно взять минимальное значение эффекта, ради которого есть смысл внедрять изменение (то есть минимальный практически значимый эффект; практическую значимость не стоит путать со статистической значимостью).\n",
312+
" - Наконец, сроки проведения эксперимента и процент, отводимый под контрольную группу и тестовую группу, надлежит подобрать так, чтобы добиться выбранной (или большей) мощности при условии, что эффект окажется таким, как предполагается. Иными словами, MDE должен быть равен предполагаемому эффекту (или быть меньше него).\n",
313+
" - Все эти расчёты нужны, потому что если продолжительность и охват выбрать наугад, то потом в случае недостаточной мощности из отсутствия статзначимого эффекта нельзя будет сделать никаких выводов, а в случае избыточной мощности эксперимент затребует больше ресурсов (включая пространство для других экспериментов), чем мог бы.\n",
309314
"* **Смещение тестовой группы относительно контрольной по каким-либо параметрам**. По самой концепции A/B-экспериментов такого смещения быть не должно.\n",
310315
"* **Отличие контроля от того, что на текущий момент есть по умолчанию**. Строго говоря, A/B-эксперимент проверяет не универсальное наличие эффекта от воздействия, а наличие эффекта от воздействия, применённого в конкретном состоянии. Значит, во время эксперимента контроль должен быть репрезентативен по отношению к состоянию по умолчанию. Пример, как это условие может быть нарушено, таков. Допустим, провели ухудшающий эксперимент, в котором половина пользователей испытала воздействие, эффект от которого продолжается и по окончании эксперимента. Если сразу же после этого эксперимента на той же самой выборке, но с независимым разбиением на группы проводить какой-то другой эксперимент, то в его контроле половина пользователей будет не такой, какой она обычно бывает.\n",
311316
"* **Добавление дополнительных воздействий к тому, которое якобы исследуется**. Например, если внедряется какая-либо рекомендательная модель, заполняющая блок на странице интернет-магазина товарами, которые могли бы быть интересны пользователю, то, чтобы протестировать эффект от собственно модели, необходимо в контроле заполнить блок случайными и/или наиболее популярными товарами, а не убирать весь блок. Если убрать весь блок, будет тестироваться совместный эффект от наличия на странице блока и его заполнения в соответствии с моделью.\n",

0 commit comments

Comments
 (0)