Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
308 - Telegram Web
Telegram Web
Forwarded from partially unsupervised
Применил на работе прием, который считал общеизвестным, но, судя по реакции коллег, это не совсем так. Потому расскажу и здесь!

Предположим, для какой-то ML задачи нужна ручная разметка данных, и расходы сколько-то заметны💰 (а значит, в 2023 их наверняка предложат урезать 🔪). В такой ситуации хочется хотя бы приблизительно понимать, как эти инвестиции в разметку окупаются.

Мое сколько-то наивное решение такое:
- делим тренировочный датасет на бакеты так, минимизируя разницу размеров бакетов и некоторое сходство между семплами разных бакетов (например, все семплы одного пользователя попадают в один бакет, который определяется на базе хэша его id);
- фиксируем вычислительный бюджет (вне зависимости от размера датасета учимся на N батчей);
- учим модель на сабсетах в диапазоне от малой части датасета до целого датасета, обеспечивая кумулятивного увеличение датасета (например, если некий семпл X был в обучении на 10% сабсете, то он обязательно будет и в обучении на 20% датасета);
- для каждой обученной модели смотрим ключевую метрику и рисуем график: по оси X - размер датасета, по оси Y - улучшение метрики;
- включаем воображение и оцениваем с точностью до порядка, сколько данных нужно досыпать, чтобы выжать следующий 1% метрики.

Точность такой экстраполяции оставляет желать лучшего (например, совершенно не учитывает штуки типа concept drift), но она значительно лучше, чем "хер его знает!", и сильно упрощает принятие решений типа "что выгоднее: отправить джуна подбирать гиперпараметры или нанять десять разметчиков и дальше заваливать модель данными".
👍7
На этой неделе вдохновения писать что-то нет.

Но порекомендую хороший канал - Чтобы не выгорать. Совсем не реклама, канал реально милый и приятный. Советы тоже хороши. Позволяют поддерживать менталку в порядке (это важно, не пренебрегайте поддержанием морального и психического тонуса).
🔥6👍5👌1
​​#statistics

Что такое Population Stability Index (PSI)?

Population Stability Index (PSI) - это метрика, которая позволяет измерить то, насколько распределение некоторой переменной меняется между двумя выборками с течением времени. Она широко используется для мониторинга изменений характеристик популяции и диагностики возможных проблем с эффективностью моделей машинного обучения.

Как считается PSI?

1. Делим выборку на децили по нашему целевому значению (децили считаем по одной из выборок, для нас логично это сделать по более ранней выборке);
2. Для обеих выборок считаем процент значений, попавших в конкретный дециль;
3. Далее считаем (%Actual - %Expected) * ln(%Actual / %Expected) для каждого дециля;
4. Суммируем полученные на шаге 3 значения по всем децилям.

Типичные значения для принятия решения:
1. PSI < 0.1 - разница незначительна;
2. PSI >= 0.1, PSI < 0.2 - небольшая разница между выборками;
3. PSI >= 0.2 - сильная разница между выборками, произошло смещение в данных.

Зачем вообще используется PSI?

Это полезная метрика для систем слежения за качеством данных во времени. Конкретно, с помощью PSI можно отслеживать так называемый data drift, чтобы понимать, когда наши данные начали резко меняться и нам нужно предпринимать те или иные действия (запустить новый процесс доразметки данных, переобучить модель, исследовать новые данные на предмет ошибок и качества поступающих данных и т.д.)
👍17🔥1
​​#statistics

Прекращайте использовать метод локтя в k-means.

Так называется недавно вышедшая статья от автора из университета Дортмунда. Немного кликбейтный заголовок, но статья весьма интересная.

Итак, как выглядит метод локтя?

1. Строим много кластеризаций k-means с разным количеством k;
2. Для каждого отдельного k считаем сумму квадратов внутрикластерных расстояний до центра кластера (within-cluster sum of squares, WCSS). Для sklearn это будет атрибут inertia_.
3. "На глаз" выбираем такое k, где у нас происходит "перегиб" (отсюда и метод локтя) и WCSS перестает существенно уменьшаться. Это и будет итоговым числом кластеров k.

У такого метода есть один некоторые минусы, например, выбор k "на глаз". Потому в разных работах предлагались методы автоматизации метода локтя.

Как можно улучшить метод?

1. Jump method. Давайте искать максимум SSE_k ** -Y - SSE_k ** -Y, где степень Y может варьироваться, но авторы предлагают брать Y=1/2 * dimensionality (то есть половина от размерности пространства признаков).
2. L-method. Возьмем две линейных функции (перед перегибом и после). Выберем лучшую кусочно-линейную аппроксимацию.
3. Kneedle algorithm. Возьмем полиномиальную кривую (сплайн), нормализуем от 0 до 1. Сравним с диагональю. Берем последний максимум перед задаваемым threshold.
4. Улучшение шага 3. Давайте искать максимум для SSE_k-1 - SSE_k / (SSE_k - SSE_k+1) - 1.
5. В библиотеке pyclustering используется метод ElbowLen, которые считается (x_k*(y_0 - y_1) + (x_1 - x_0)*y_k + (x_0*y_1 - x_1*y_0)) / (sqrt((x_1 - x_0)**2 + (y_1 - y_0)**2)), где x0, x1, y0, y1 - минимумы и максимумы графика.
6. AutoElbow. Вычисляем ((x_k - 1)**2 + (y_k - 1)**2) / (x_k ** 2 * y_k **2) на нормализованном на [0,1] графике.

Все эти методы не лишены минусов. В статье приводятся примеры для разных наборов данных. Общий вывод - на достаточно разделимых кластерах и небольшом k все работает более или менее неплохо. Но если мы отходим немного от тепличных условий, все становится весьма плохо.

Мы можем отойти от эвристик над методом локтя и прочих геометрических манипуляций в сторону вариационных методов (предполагается, что они более теоретически обоснованы). В статье по ним проходятся весьма поверхностно, так что некоторые из них я не совсем понял ¯\_(ツ)_/¯

1. Variance Ratio Criterion (VRC). Считаем ((SSE_1 - SSE_k) / (k - 1)) / (SSE_k / (n-k)). Авторы рассматривают это, как некий аналог F-статистики.
2. Метод Mariott. Рассматривается детерминант ковариационной матрицы |W|.
3. KL-index. Давайте рассмотрим DIFF_k = (k - 1)**(2/p)*SSE_k-1 - k**(2/p)*SSE_k. Потом ищем максимум KL(k) = |DIFF_k / DIFF_k+1|.
4. Метод Pham. Считаем SSE_k / (alpha_k * SSE_k-1), где alpha_2 = 1 - 3/(4*d) и alpha_k = 5/6 * alpha_k-1 + 1/6 (что моделирует ожидаемое изменение равномерного распределения).

Учитывая задачу кластеризации, можно придумать и критерии, основанные на расстояниях.

1. DUNN index.
2. David-Bouldin index.
3. Silhouette score.

Но это не все. Мы еще можем использовать теоретические подходы, основанные на теории информации.

1. Bayesian information criterion (BIC).
2. Akaike Information Criterion (AIC).

Ну и, напоследок, еще можно использовать симуляционный критерий.

1. В данном случае, мы считаем GAP_k = E[log(SSE'_k)] - log(SSE_k). И выбираем наименьший k, где GAP_k >= GAP_k-1 - std_k+1. Где SSE'_k - базовый SSE, а std_k+1 - среднеквадратичное отклонение оценок.

А какой итоговый вывод?

Не использовать метод локтя. Предпочитаемыми методами авторы считают VRC (реализация sklearn), Bayesian Information Criterion (BIC) (материал с реализацией) или симуляционный критерий (GAP-статистику, материал с реализацией).
👍10🤔3
#video

Клевая подборка видео по теме Multivariate statistics.

В основном, там базовые вещи, но повторить материал (или посмотреть в первый раз, если не знали) это позволяет очень хорошо. Описано все на примерах, рассказывается просто и понятно.
👍51
#libraries

Orion - библиотека для поиска аномалий во временных рядах с использованием unsupervised подходов (то есть, без учителя).

Авторы еще написали несколько интересных материалов на эту тему:
1. Вводная статья про unsupervised anomaly detection;
2. GAN'ы для детекции аномалий во временных рядах;
3. Подходы к оценке качества и построению пайплайнов для детекции аномалий во временных рядах.

В общем, весьма интересное чтиво. Библиотека тоже выглядит неплохо (хоть и сложновато, если честно).
👍4
​​#books

Статистика в рисунках.

Название отлично отражает суть. В книге основные статистические концепции показаны наиболее наглядным образом - в картинках. Если сложно понять какую-то концепцию, либо если нужно объяснить ее непосвященным - эта книга будет прекрасным вариантом.

Конечно, не все идеально описано (сложные понятия не особо проще выглядят в книге). Но большинство важных концепций, вроде проверки гипотез и доверительных интервалов весьма наглядно показаны.

В общем, советую. Особенно, если вам приходится объяснять какие-то статистические концепции бизнесу.
👍5
Forwarded from DeepSchool
CleanLab

Чистые данные — залог хороших метрик :) Но чистить разметку зачастую сложно, долго и скучно. В новой статье расскажем о библиотеке CleanLab, которая поможет вам в чистке аннотаций для задачи классификации. Мы покажем, как быстро прикрутить ее к своим проектам и поделимся личным опытом использования библиотеки на боевых задачах.

Из новой статьи вы узнаете:
- как найти сэмплы со спорными метками;
- как оценить качество меток вашего датасета;
- как найти пересекающиеся классы, и что можно с ними сделать.

Читайте наш новый гайд и делайте ваши данные чище: https://deepschool-pro.notion.site/CleanLab-586bc69c23bb429fb2476982fe74a420
🔥5
​​#statistics #metrics

Сегодня речь о Matthews Correlation Coefficient (MCC).

У нас есть много способов оценить качество классификации. Например, построить ROC кривые (и посчитать AUC), посмотреть F1 меру, точность и полноту и т.д. Но есть одна метрика, которую несколько обделяют вниманием. И это коэффициент корреляции Мэтьюса.

Напомню о классическом наборе значений для бинарной классификации (считаем, что у нас два класса - positive и negative):
1. True positive (TP) - мы предсказали positive и он же является правдой;
2. True negative (TN) - то же самое, но с negative;
3. False positive (FP) - предсказали positive при реальном negative;
4. False negative (FN) - предсказали negative при рельном positive.

И соответствующие метрики:
1. Accuracy = (TP + TN) / (TP + TN + FP + FN)
2. Precision = TP / (TP + FP)
3. Recall = TP / (TP + FN)

В разных задачах относительная важность этих показателей может отличаться. Но, если брать в целом, то нам хочется побольше True и поменьше False positive или negative. Ну и при дисбалансе классов мы частенько получаем проблемы с классическими метриками, по типу accuracy.

Что же мы хотим посчитать при использовании MCC? Давайте будем рассматривать target и наше предсказание, как две бинарные величины. Исходя из идеи, что корреляция показывает силу связи, давайте смотреть на корреляцию этих двух величин. Выше корреляция предсказаний с target - лучше мы решаем нашу задачу.

Давайте будем считать MCC таким образом, который показан на изображении к посту. Как мы можем заметить, у нас здесь используются все показатели - TP, TN, FP, FN. Что позволяет следить за качеством предсказания обоих классов. И это очень полезное свойство! Особенно, при дисбалансе классов.

Значения MCC находятся между -1 и 1. Соответственно, 1 - идеальное предсказание, 0 - случайное, -1 - все предсказано ровно наоборот.

Интересно, что MCC связано со статистикой Хи-квадрат для матрицы сопряженности 2*2. Соотношение следующее: C**2(D, M) = khi**2 / N, где C - MCC, D - таргет, M - предсказание, khi**2 - статистика хи-квадрат, N - количество наблюдений.

В дополнение приведу статью "The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation" и ссылку на доку sklearn для расчета метрики.
101
​​#datasets

Увидел про этот набор данных в одной книге и не смог не поделиться.

В общем, в Соединенных Штатах Америки есть Манхэттенское шоколадное общество (Manhattan Chocolate Society), которое ежегодно собирается, дабы продегустировать новые образцы шоколада (почему-то на этом моменте я представляю группу детей в смокингах и с моноклями, которые аристократично смеясь, уплетают шоколад за обе щеки).

Так вот, у них на сайте есть набор данных с результатами всех этих дегустаций. Там есть информация о годе оценки, производителе, месте происхождения бобов, составе шоколада, его наиболее запоминающихся характеристиках ("чувствую нотки пальмового масла в этой шоколадке за 30 рублей") и, собственно, оценке.

Из забавного:
1. Лучше не делать шоколад с долей какао в 100% (в основном, там оценки "ужасно" или "плохо" и небольшая часть с оценкой "хорошо")
2. Одной из плиток c низшим рейтингом в запоминающихся характеристиках записали ЭТО НЕ ШОКОЛАД ("this is not chocolate"). Страшно представить, что там в итоге людей заставили попробовать ;)

В принципе, неплохая замена набору wine (если он вам уже надоел), чтобы сделать пример разбора набора данных для портфолио. Ну или если просто желаете сделать идеальный шоколад по мнению группы чуваков из Манхэттена ¯\_(ツ)_/¯
11🌚3👍2😁2
У меня отпуск, потому нечто развлекательное. Попросил ChatGPT сделать совершенно новый коктейль с кофе (не уверен, что это нечто совершенно новое, но выглядит необычно). В общем, enjoy!

P.S. Напомню о drink responsibly и о том, что это 18+ (странно, что ChatGpt это сам не делает)
👀3🔥2
Forwarded from DLStories
Наткнулась на статью в Nature, которую выпустили ряд ученых-нейробиологов. Называется она "Catalyzing next-generation Artificial Intelligence through NeuroAI". Ее авторы выражают мнение, что для достижения следующего уровня AGI важно изучать нейробиологию живых организмов и применять эти знания к разработке AI. А также предлагают новый вариант теста Тьюринга, основанный на сравнении поведения реальных животных и AI-агентов.

Вот о чем этот новый тест:

Вспомним стандартный тест Тьюринга ("игра в имитацию"). Крутость AI ппроверяется так: берем живого человека (назовем его Васей) и заставляем его общаться с агентом. Агент — другой человек или AI. Общение происходит в текстовом виде. Если Вася при общении с AI не в состоянии определить, что он общается не с человеком, то тест пройден — этот AI считается достаточно сильным.

Этот тест далеко не идеален. Во-первых, результат зависит от конкретного Васи, который общается с AI. Во-вторых, проблема в возможности только текстового взаимодействия. Из-за этого сложно проверить у агента наличие многих скиллов, свойственных живым орагнизмам (и, соответственно, скиллов, которые мы хотели бы видеть у AGI). Например, таких:
- Эффективное взаимодействие с окружающей средой и контроль собственного тела. Существующие RL-агенты и роботы все еще плохо учатся управлять даже собственными конечностями, не говоря уж о том, чтобы взаимодействовать с другими объектами;
- Приспособляемость к меняющимся обстоятельствам. Это стандартная проблема AI-моделей, у которой много названий: отсутствие робастности, out-of-domain и т.д. Смысл в том, что AI-модели начинают плохо работать при малейшем изменении характеристик среды. Животные же умеют к этому быстро приспасабливаться. От AGI хочется, чтобы подобной проблемы у него не было, и это хочется уметь проверять;
- Наличие внутренней карты физического мира (или "общее понимание мира", "physical common-sense") и вытекающая из этого способность создавать причинно-следственные связи. С этим у AI тоже не очень хорошо, проблема causation vs correlation — одна из основных в AI.

Ко всему этому авторы замечают, что современные нейросети потребляют довольно много энергии для обучения и работы (привет GPT). Цифры приводят такие: для обучения GPT-3 потребовалось около 1000 мегаватт-часов, когда как человеческому мозгу нужно всего около 20 ватт (правда, я не поняла, для чего нужно. Чтобы научиться языковому моделированию?)). Если мы хотим получить эффективный AGI, мало заставить его пройти тест Тьюринга: нужно подумать о том, как увеличить его вычислительную эффективность.

Возможно, конечно, это все можно проверять и с помощью обычного теста Тьюринга, где человек и AI общаются текстом. Но придумать такой протокол будет как минимум сложно. Поэтому авторы статьи предлагают другой вариант теста, основанный на прямом сравнении поведения животных и AI-агентов. Назвали такой тест Embodied Turing test ("воплощенный тест Тьюринга"). Вот в чем его суть:

У биологов уже накопилось много данных о поведении животных. А также создаются биомеханические модели тел животных. На основе этого всего с помощью симуляторов можно создать реалистичные модели этих животных, и с их поведением сравнивать поведение AI-агентов.
Это позволяет сделать несколько уровней теста, в зависимости от того, насколько сложное животное хочется моделировать. По сути, симуляция каждого отдельного вида представляет собой отдельный тест Тьюринга. Это должно способствовать постепенному развитию AI-агентов: сначала они научатся моделировать червей, потом рыб, потом вашу кошку Мурку, а затем и вас самого =)
А еще так можно проверять отдельные способности AI-агентов: например, отдельно тестировать его умение управлять конечностями или приспосабливаться к среде. И даже проверять, сколько энергии AI-агент тратит на каждую конкретную задачу (и сколько тратит на эту же задачу Мурка)

Конечно, протоколы сравнения AI-агентов и Мурки надо еще придумать и стандартизовать. Но звучит интересно.
Вот так мы только-только подошли к решению старого теста Тьюринга (GPT-4), так уже неймется ехать куда-то дальше)

📄Статья
👍2
​​#books

Сегодня поговорим о книге "Цель" Э. Голдратта.

Классика на все времена. Одна из известнейших бизнес-книг. В виде производственного романа описывается работа теории ограничений.

Итак, сюжет в книге такой. У нас есть главный герой, который живет в мире "Ты горишь, и все горит, и все в аду". Он управленец на заводе, где дела идут ни шатко, ни валко. И тут герой встречает мудреца-консультанта, который начинает учить героя кунфу как эффективно управлять его предприятием. Сначала советы консультанта кажутся бредом, но оказывается, что в них есть что-то полезное (это, конечно, фантастическое допущение этой книги ;)). В итоге, следуя этим советам, герой добивается шампанского, успеха, женщин, 300$ и прочих почестей.

Основные идеи книги:
1. Нужны верные метрики работы. Цель бизнеса - зарабатывать деньги. И если приросла какая-то неведома зверюшка, но денег от нее - нуль, то это все от лукавого.
2. А какие основные метрики должны быть? ПРОХОД — это скорость, с которой система генерирует деньги посредством продаж;
ИНВЕСТИЦИИ — это все деньги, вложенные системой в продукцию, которая может быть продана. По сути - это все инвестиции в бизнес;
ОПЕРАЦИОННЫЕ ЗАТРАТЫ — это все деньги, которые тратит система на превращение инвестиций в доходы. Другими словами, это деньги, потерянные навсегда — зарплата, аренда, стоимость доставки.
Получаем, что в этих терминах Цель звучит так: увеличивать проход с одновременным уменьшением инвестиций и операционных затрат.
3. Еще одна история. У нас есть такие понятия, как связанные события и отклонение. Первое - про то, что оно событие идем за другим. Второе - про то, что у нас есть некоторая стохастичность в процессе.
И чем же это важно? А тем, что отклонения в каком-то длительном процессе на много этапов, будут накапливаться (в книге приводится пример цепочки скаутов, идущих в поход друг за другом).
4. Следующий вывод для последовательности связанных действий (как и происходит на заводе): Максимальное отклонение для одной операции будет начальным отклонением для следующей.
5. Так что же с этим делать? Искать узкие места и рационально их использовать (или расширять). Узкое место — это этап, у которого пропускная способность меньше или равна потребности в нем. Если коротко, то вывод об узких местах такой: на узкое место должно приходить ровно такое количество деталей, которое оно может обработать. И точно в срок, когда оно заканчивает обработку предыдущей партии.
6. Выводим историю выше в процесс непрерывного улучшения:
Шаг 1. Найти узкие звенья (ограничения) системы
Шаг 2. Решить, как максимально эффективно использовать ограничение
Шаг 3. Подчинить работу всей системы этому решению
Шаг 4. Повысить проход ограничения (расширить ограничение)
Шаг 5. Если на предыдущем этапе ограничение было устранено, то перейти к шагу 1

Собственно, схема выше кратко описывает общую идею книги. При всей простоте, это весьма хорошая идея, которая работает. Поэтому я бы посоветовал не читать краткую выжимку, а прочитать всю книгу целиком, выписав основные моменты себе.
👍83
Forwarded from Борис опять
# Воспроизводим взрыв и затухание градиентов

Сделал коллаб про взрыв и затухание градиентов. Сначала вызываем проблемы захутания и взрыва, анализируем, в том числе с помощью Wandb, и наконец чиним. Материал для того, чтобы поиграться с практикой, а не изучать теорию.

https://colab.research.google.com/drive/1Sek-YbosXLIhOwpX4BNRdsHMo4j109d4?usp=sharing

Когда я что-то изучаю мне нравится делать прототип-демонстрацию. Взять и вызвать взрыв градиентов, а затем попытаться починить. Я провел много маленьких экспериментов, так как мне надо было повторить эту тему. Теперь собрал материалы в один стройный коллаб, причесал и получилась этакая лабораторная работа.

Ставьте лайки, если материал нравится и хочется, чтобы я делал такое еще.
🔥20
#education

Небольшая история про работу с негативом при обучении.

Решил я записаться на вот этот курс по тестированию. По описанию все выглядело круто и интересно. Но! Как оказалось, курс скорее заточен на веб-разработку. А я в django ни в зуб ногой ;(

Потому начались мои мытарства и страдания.

Впрочем, авторам можно было написать и излить боль. Мы некоторое время пообщались в почте и пришли к выводу, что курс просто мне не подходит, увы. При этом, авторы предложили вернуть деньги за курс компании (что я считаю отличной работой с негативом). А могли бы просто сказать, что "ну сорян, не угадал с курсом, приходи еще". Но тогда бы я сгорел в угли ;)

Какие выводы из всей этой истории:
1. Не всегда можно по описанию правильно понять, про что будет курс. Потому лучше спросить выпускников, почитать отзывы на курс, поискать какие-то материалы из курса, дабы заранее оценить содержание;
2. Не стоит заранее завышать ожидания от обучения. Мол, ух, сейчас как за пару-тройку недель узнаю технологиянейм. Я вроде и опытный, но все равно периодически на таком напарываюсь. Повод продолжать работать над собой;
3. Хорошая работа с негативом приносит весьма немалую пользу продукту. Если бы мой негатив не проработали, то я бы куда менее позитивно отозвался о курсе. Но сейчас я скорее положительно отношусь к авторам (вон, даже пост накатал про то, как хорошо проработали негатив, еще и ссылку на курс оставил).
👍10
#разное 

Про эффект Расемона.

"Эффект Расёмона" — это психологический феномен, выражающийся в том, что одни и те же события излагаются их участниками или очевидцами совершенно по-разному, при этом все они искренне полагают, что говорят правду.

Впервые термин появился после выхода экраны в 1950 году фильма Акиры Курасавы «Расемон», по мотивам рассказов «В чаще» и «Ворота Расёмон»
классика японской литературы Акутагава Рюноске. В фильме четыре свидетеля совершенно по-разному описывают обстоятельства одного и того же убийства. Соответственно, эффект относится к субъективному восприятию человеком окружающей реальности.

Собственно, пример эффекта можете попробовать увидеть и сами, если спросите несколько участников какого-либо события рассказать о нем. Скорее всего, вы получите разные картины того, что происходило (а иногда еще и противоречащие друг другу).

Кажется, что в ML аналогом есть сжатие информации в эмбеддинг и последующая распаковка из него, искажающая результат. И если представить, что эмбеддинги одного и того же объекта делают несколько сетей, получим еще большие искажения итогового представления. И если вы не имеете информации об изначальном объекте, то разобраться в том, где и что восстановилось не так, будет ой как непросто.

P.S. Фильм посмотрите. Классика мирового кинематографа.
P.P.S. Спасибо жене за косвенную наводку на это понятие (жена даже делала активность в своем читательском клубе по этому рассказу, так что если вдруг увлекаетесь японским языком - заходите к ней на огонек).
👍6🍌1
#books

Путь джедая

Продолжение джедайских техник от Максима Дорофеева. Книжка про поиск системы личной продуктивности.

В целом, почитать было интересно. С общим посылом тоже согласен - не все, что работает у других, должно работать лично у вас. Потому в книге приведен набор разнообразных практик, которые рекомендуется попробовать, оценить, а применять уже по результатам (подошло или не подошло конкретно вам).

Плюсы:
- Много дополнений к "джедайским техникам", разные любопытные техники личной продуктивности
- Общий посыл (протестируй на себе и отбери только работающее)

Минусы:
- Очень много ссылок на другие книги, других авторов (но это минус скорее для меня, может кому-то даже понравится)
- ОЧЕНЬ МНОГО АНЕКДОТОВ. Реально, они там каждые две страницы, если не чаще. Выглядит, как будто студент "добавил воды" в диплом, чтобы увеличить объем текста. В принципе, я не против анекдотов и историй, но дозировано

Общий вывод - можно почитать, если интересна тема. Но далеко не откровение, есть некоторые минусы
👍4🥴2
#statistics

Немного про p-value hacking.

Знаете ли вы, что такое p-value hacking? Это манипуляция данными при проведении анализа таким образом, чтобы найти паттерны, которые будут представлены как статистически значимые, хотя на самом деле нет никакого реального эффекта. Это может происходить, когда исследователи проводят множество тестов на одних и тех же данных и выбирают самый лучший результат, не раскрывая количество попыток. В итоге, это может привести к искажению выводов и недостоверности научных исследований.

На самом деле, это достаточно важное явление в современной науке. Часто его связывают с т.н. подходом "publish or perish", когда на занимающихся наукой создается давление KPI по постоянному выпуску статей и исследований, которое умные люди успешно обходят, занимаясь профанацией.

Вот пример от известного товарища Нассима Талеба - статья “A Short Note on P-Value Hacking”. В статье показывается, как можно вычислить ожидаемые значения от p-value hacking в зависимости от количества тестов и размера выборки. Автор также демонстрирует, что p-value очень асимметрично и нестабильно, то есть сильно меняются при повторении одинаковых экспериментов при изучении одного и того же явлении. Такая волатильность делает минимальное p-значение существенно отличным от “истинного” p-значения.

Основные выводы из статьи:
1. Давайте снизим допустимый порог p-value как минимум на порядок (кстати, некоторые исслеователи до этого эмпирически дошли, ибо иногда вижу еще и проверку p-value на уровне .001);
2. При проведении исследований следует критически рассматривать получаемые результаты. И учитывать возможное смещение в оптимистичную сторону. Если проще - то делать нормальный мета-анализ и критически воспринимать отдельные публикации по теме;
3. Учитывать, что с мощностью экспериментов могут быть примерно такие же проблемы. Так что и с ней следует быть осторожнее.

В конце приведу известный пример p-hacking. Это т.н. "Эффект Моцарта".

В 1993 году группа психологов опубликовала статью, в которой утверждала, что слушание музыки Моцарта повышает пространственное мышление на короткое время. Этот результат получил широкую известность и даже привел к созданию специальных дисков с музыкой Моцарта для развития интеллекта детей. Однако позже выяснилось, что исследователи провели множество тестов на разных группах людей, слушавших разную музыку или тишину, и выбрали только тот тест, который показал статистически значимый эффект от музыки Моцарта. При этом они не сделали поправку на множественное тестирование и не раскрыли количество попыток. Попытки повторить этот эксперимент другими исследователями не дали подтверждения эффекту Моцарта.

Таким образом, некорректно проведенное исследование привело к ложному положительному результату и созданию мифа о волшебной силе музыки Моцарта.
🔥12👍6
#разное

В общем, у меня был длительный эксперимент с генерацией книги про успешный успех нейросетями. Идея пришла еще в прошлом году. А вот реализация заняла почти полгода.

Круто, что я в итоге довел дело до логического завершения (отредактировал весь текст и залил его на самиздат литреса).

Ну и я в принципе считаю письменность чуть ли не самым важным достижением человечества за всю историю. Да и книги люблю ;)

Впрочем, конкретно в этом кейсе, это скорее больше развлечение и отчасти шутка. Но что-то в этом есть, конечно, т.к. я давно мечтал сделать собственную книгу. А тут такой шанс в виде новомодных достижений NLP.

Из интересных выводов:
1. Редактировать тексты весьма сложно. Я понял, что работа редактора - это вам не "раз, и готово". Проникся уважением к профессии;
2. Современные инструменты генерации неплохо справляются с такого рода текстами. Путь и нужно подбирать промпты и отбирать адекватные результаты генерации;
3. Все равно нужно придумывать общую идею и сводить это в более или менее связный текст. Общий результат меня скорее устраивает, но местами прям так себе вышло (первый блин комом);
4. Поступательность сильнее драйва. Первое время было драйвово это делать, но вот дописывать и редактировать было дико сложно (ну или я просто не подхожу для этого). В итоге, поступательно, за несколько месяцев с перерывами, я таки смог справиться;
5. Пишет тот, кто не может не писать. Собственно, канал поэтому и появился.

P.S. Ссылку не даю. Предлагаю угадать. Имя автора я сделал мемным в контексте успеха. Подсказка: чтобы найти по имени автора, не сидите, как сычи.

P.P.S. Вообще, я еще и драматургией интересуюсь в виде хобби. Конкретно - сценарным делом в киноиндустрии. Если интересно, чтобы я иногда писал про это, то поставьте в реакшенах к посту кита.
🐳24
Forwarded from Reliable ML
Артем Ерохин - Бутстрапирование временных рядов
3-4 июня - Секция Reliable ML на Data Fest 2023

Во время Data Fest 2023 на нашей секции Reliable ML с докладом про бутстрапирование временных рядов выступит Артем Ерохин, Lead DS в X5 Tech, автор канала @Artificial Stupid.

В докладе будет рассмотрена проблема применения классического бутстрепа для временных рядов. Артем расскажет про различные методы бутстрепа, учитывающие структуру временного ряда, рассмотрит плюсы и минусы разных подходов.

Регистрация на мероприятие тут.
Расписание будет сформировано в конце мая.

Ваш @Reliable ML

#анонс #tech #causal_inference #datafest2023
12👍5🔥1
2025/07/10 09:25:20
Back to Top
HTML Embed Code: