Markov chains are the original language models 🔥 Горячее 💬 Длинная дискуссия
Цепочки Маркова — это классические вероятностные модели, предшественники современных языковых ИИ. Они описывают последовательности событий, где каждое следующее состояние зависит только от текущего, без учёта всей истории. Например, перемещения Алисы между магазином и планетарием с заданными вероятностями перехода можно представить в виде матрицы и вектора состояния, а прогноз на несколько шагов вперёд вычисляется через умножение матриц.
В контексте генерации текста цепочки Маркова применяются для предсказания следующего слова на основе предыдущих. Автор, разочаровавшись в сложности и «магии» современных языковых моделей, обратился к этой прозрачной и фундаментальной технике, реализовав автодополнение на Rust и WebAssembly. Это подчёркивает ценность понимания базовых принципов вместо слепого использования сложных систем.
Комментарии (154)
- Обсуждаются ограничения и природа марковских цепей: их линейность, неспособность учитывать контекст за пределами текущего состояния и проблемы с обработкой двумерных данных.
- Упоминаются исторические и юмористические примеры использования марковских цепей для генерации текста: Mark V. Shaney, KingJamesProgramming, спам-сайты и чат-боты в IRC/Slack.
- Проводятся паралле
How to become a pure mathematician or statistician (2008)
План самообразования математика-чистяка (или статистика)
Этап 1
- школьная база
- дискретка, алгебра, анализ начального уровня
Этап 2
- линейная алгебра
- высшая алгебра
- вещественный и комплексный анализ
- диффуры, вероятность и статистика
Этап 3
- анализ, абстрактная алгебра, теория чисел
- топология, диффгеометрия
- по желанию: моделирование, статвывод, стохастика, вычислительная статистика
Этап 4
- фундамент: логика, множества, комбинаторика, криптография
- анализ: функциональный, мера, гармонический
- алгебра: группы, кольца, поля, гомологии
- числа: алгебраическая и аналитическая теория, эллиптические кривые
- геометрия и топология: алгебраическая, риманова, K-теория
- опционально: диффуры в частных, матфизика, вероятность на мере, многомерная статистика, байес, выживание, data mining
Этап 5
- читаем монографии и статьи, выбираем специализацию, делаем исследования
«Как пианист: сначала скучные этюды, потом — музыка» (Терри Тао).
Комментарии (74)
- Классические «дорожные карты» по чистой математике часто выглядят как бесполезные списки книг без объяснения, зачем и в каком порядке их читать.
- Настоящий путь проще: крепкая линейная алгебра и анализ (Шилов, Рудин), дальше — основные учебники по геометрии, алгебре и анализу с доказательствами и наставником.
- Единственный способ стать математиком — публиковать исследования; маршрут любой, лишь бы вам было интересно и вы могли его пройти.
- Споры о «требуемом IQ 145» вызывают бурю критики: IQ не определяет креативность и усердие, а SAT/ACT лишь коррелируют с успехом, но не гарантируют его.
- Проверять стоит не коэффициент интеллекта, а свои реальные успехи в математике: умеете ли вы читать и писать доказательства, получаете ли удовольствие от процесса.
Important machine learning equations 🔥 Горячее
Байес
$$P(A|B)=\frac{P(B|A)P(A)}{P(B)}$$ Обновляем вероятность гипотезы при новых данных.
def bayes(p_d, p_t_d, p_t_nd):
p_t = p_t_d*p_d + p_t_nd*(1-p_d)
return p_t_d*p_d / p_t
Энтропия
$$H(X)=-\sum_x P(x)\log P(x)$$ Измеряем неопределённость распределения.
import numpy as np
H = lambda p: -np.sum(p*np.log(p, where=p>0))
KL-дивергенция
$$D_{\text{KL}}(P|Q)=\sum_x P(x)\log\frac{P(x)}{Q(x)}$$ Сколько бит «лишних» нужно, если вместо истинного распределения $P$ использовать $Q$.
Кросс-энтропия
$$H(P,Q)=-\sum_x P(x)\log Q(x)$$ Используется как лосс в классификации.
Линейная алгебра
Линейное преобразование
$$\mathbf{y}=A\mathbf{x}$$ Матрица $A$ переводит вектор $\mathbf{x}$ в пространство признаков.
Собственные значения и векторы
$$A\mathbf{v}=\lambda\mathbf{v}$$ Направления, вдоль которых преобразование лишь растягивает/сжимает.
SVD
$$A=U\Sigma V^\top$$ Разложение на ортогональные и диагональные матрицы; основа PCA и рекомендательных систем.
Оптимизация
Градиентный спуск
$$\theta_{t+1}=\theta_t-\eta\nabla_\theta J(\theta)$$ Шагаем против градиента, чтобы минимизировать функцию потерь $J$.
Backprop
$$\frac{\partial L}{\partial W^{(l)}}=\delta^{(l)}(a^{(l-1)})^\top$$ Цепное правило для обучения нейросетей.
Функции потерь
MSE
$$\text{MSE}=\frac{1}{n}\sum_i (y_i-\hat y_i)^2$$ Классика регрессии.
Кросс-энтропия
$$L=-\sum_i y_i\log \hat y_i$$ Стандарт для классификации.
Продвинутые темы
Диффузия
$$q(x_t|x_{t-1})=\mathcal N(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t I)$$ Постепенное добавление шума и обратное восстановление.
Свертка
$$(f*g)[n]=\sum_m f[m]g[n-m]$$ Извлечение локальных паттернов в CNN.
Softmax
$$\text{softmax}(z_i)=\frac{e^{z_i}}{\sum_j e^{z_j}}$$ Превращает логиты в вероятности.
Attention
$$\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^\top}{\sqrt d_k}\right)V$$ Взвешенная сумма значений по релевантности запроса и ключей.
Краткий конспект ключевых уравнений ML: от вероятностей до трансформеров, с кодом и интуицией.
Комментарии (26)
- @dkislyuk и @morleytj критикуют формат «списка формул» без связного объяснения и советуют читать оригинальную теорию Шеннона.
- @cl3misch нашёл баг в коде энтропии из-за неинициализированных значений и несоответствие формулы кросс-энтропии.
- @dawnofdusk и @cgadski хвалят полноту материала как удобную шпаргалку для быстрого погружения.
- @bee_rider и @calebkaiser обсуждают применение сингулярных чисел и собственных значений в LLM и LoRA.
Guid Smash
Вероятность совпадения двух GUID — 1 к 2¹²², то есть примерно 1 к 5×10³⁶.
Guid Smash показывает, насколько близко каждый новый GUID подходит к целевому.
- Целевой GUID: 6e197264-d14b-44df-af98-39aac5681791
- Старт: 20 июля 2025
- Проверено: 1,14 трлн GUID
- Скорость: ~468 тыс./с
- Ожидаемое совпадение: через 4,21×10²³ лет при 400 тыс./с
| Префикс | Совпадений |
|---|---|
| 6 | 66,7 млрд |
| 6e | 4,17 млрд |
| 6e1 | 261 млн |
| 6e19 | 16,3 млн |
| 6e197 | 1,02 млн |
| 6e1972 | 63,7 тыс |
| 6e19726 | 4,0 тыс |
| 6e197264 | 244 |
| 6e197264d | 11 |
| 6e197264d1…1791 | 0 |
Ошибка. Перезагрузить
Комментарии (61)
- Вероятность совпадения двух случайных UUIDv4 действительно 1 : 2¹²², но из-за парадокса дней рождения при генерации ≈ 2⁶¹ идентификаторов шанс хотя бы одного дубля возрастает до ~50 %.
- Эксперимент лучше вести не «в лоб» (ищем конкретный UUID), а проверяя все уже сгенерированные значения на дубликаты.
- UUIDv7 снабжены 48-битным префиксом времени: при генерации миллионов ID в одну миллисекунду коллизии становятся реальнее.
- На практике коллизии встречаются: участники сообщили два случая — один из-за одинакового «магического» GUID, другой при слиянии данных разных систем.
- Для коротких уникальных кодов подстрока UUID не подходит; нужно учитывать «день рождения» и выбирать диапазон квадратично больше требуемого количества.
Simulating and Visualising the Central Limit Theorem
Кратко о ЦПТ
Если из любого распределения с конечным средним и дисперсией брать выборки размера n и считать их средние, то при n → ∞ распределение этих средних стремится к нормальному.
Эксперимент
Сгенерировано по 10 000 значений из шести распределений: uniform, normal, binomial, beta, exponential, χ².
Функция take_random_sample_mean() берёт случайную выборку размера 60 и возвращает среднее. Повторено 20 000 раз.
take_random_sample_mean <- function(data, n) {
slice_sample(data, n = n) |> summarise(across(everything(), list(mean = mean, sd = sd)))
}
Результаты
Гистограммы 20 000 средних показывают, что даже для сильно ненормальных исходных распределений форма распределения средних близка к нормальной.
Комментарии (55)
- Обсудили аналог ЦПТ для экстремумов — теорему Фишера–Типпета–Гнеденко (GEV).
- Подчеркнули важность симуляций для интуитивного понимания ЦПТ и поделились ссылками на визуализации.
- Отметили, что скорость сходимости к нормальному распределению зависит от исходного распределения (экспоненциальное сходится медленнее).
- Упомянули обобщения ЦПТ: для распределений без конечной дисперсии, ряды Эджворта, устойчивые распределения.
- Предупредили о риске завышенных ожиданий из-за «хорошо ведущих себя» примеров и дали ссылки на литературу.
How to teach your kids to play poker: Start with one card 💬 Длинная дискуссия
- Начните с одной карты: каждый игрок получает рубашкой вверх карту и делает ставку, зная лишь свою.
- Цель — понять, что покер — это ставки на неполную информацию.
- Добавляйте по одному элементу: две карты, общие карты, комбинации, блайнды, позиции.
- Используйте фишки-конфеты и короткие сессии (10 минут).
- Подчеркивайте математику: шансы, outs, ожидание.
- Обсуждайте банкролл-менеджмент: «не ставь больше, чем готов потерять».
- Играйте открыто: показывайте карты, объясняйте решения.
- Переходите к Техасскому холдему только после освоения базы.
Комментарии (170)
- Участники спорят: полезен ли покер как способ обучения детей принятию решений при неполной информации и расчёту вероятностей.
- Одни считают, что игра развивает критическое мышление и умение «читать» людей; другие боятся, что это введёт ребёнка в мир азартных игр.
- Многие подчёркивают: покер можно играть без денег, используя фишки или спички, тогда он становится обычной семейной игрой.
- Предложены альтернативы: Skull, Monopoly Deal, шахматы, го, блэкджек — всё, что учит стратегии без ставок.
- Общий вывод: покер сам по себе не «дегенеративен», но важно подавать его детям в безопасной форме и с правильной мотивацией.