← К списку статей
July 31, 2026
5 мин. чтения

Эпистемическое и алеаторическое: измерение того, что не знает модель доходности

Эпистемическое и алеаторическое: измерение того, что не знает модель доходности
#bayesian
#uncertainty
#neural-network
#risk
#position-sizing

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

Это не одинаковые риски. Рыночный шум оценивается рынком — это то, за что вам платят как за его принятие. Незнание модели не оценивается, не компенсируется и является именно тем состоянием, в котором оценка вашего преимущества наименее достоверна. Правило sizing, которое одинаково penalizes оба компонента, оставляет деньги на столе.

Этот пост о том, как сделать это разделение измеримым. Конкретно:

σeff2=σalea2+λσepi2,λ>1\sigma^2_{\text{eff}} = \sigma^2_{\text{alea}} + \lambda \cdot \sigma^2_{\text{epi}}, \qquad \lambda > 1

Подставьте это в знаменатель Келли вместо полной дисперсии. Остальная статья — о том, как оценить два компонента (MC Dropout, глубокие ансамбли) и как выглядит это разделение на реальных данных.

Тезис: два типа неопределенности требуют двух разных ответов

Эпистемическая Алеаторическая
Источник Ограниченные данные / модель Неизбежный шум в данных
Устранима? Да (больше данных помогает) Нет
Действие в трейдинге Уменьшить позицию или воздержаться Расширить стопы, уменьшить кредитное плечо
Сигнал "Я не видел такого режима" "Этот рынок сейчас шумный"

Асимметрия в строке "действие в трейдинге" и есть весь аргумент. Высокая алеаторическая дисперсия — это известное неизвестное: вы можете подбирать размер позиции, хеджировать это и ожидать премию за риск за удержание. Высокая эпистемическая дисперсия — неизвестное неизвестное: модель экстраполирует, ее оценка среднего μ\mu так же подозрительна, как и оценка дисперсии, и никакой премии за неверность собственных параметров не полагается.

Модель, которая conflates эти два типа, либо будет overtrade в незнакомых режимах (игнорируя эпистемическую неопределенность), либо undertrade в знакомых-но-шумных (over-penalizing алеаторическую неопределенность). Стандартный Келли, примененный к σtotal2\sigma^2_{\text{total}}, делает и то и другое в зависимости от того, какой компонент доминирует.

Декомпозиция

Эпистемическая неопределенность происходит от неопределенности по поводу параметров модели θ\theta. Вместо одного θ\theta^* (как в maximum likelihood), мы поддерживаем распределение p(θD)p(\theta \mid \mathcal{D}) и интегрируем:

p(yx,D)=p(yx,θ)p(θD)dθp(y \mid x, \mathcal{D}) = \int p(y \mid x, \theta)\, p(\theta \mid \mathcal{D})\, d\theta

Разброс, индуцированный интегрированием по θ\theta, — эпистемический. Он уменьшается по мере роста D\mathcal{D} и покрытия входной области.

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

p(yx,θ)=N(y;μθ(x),σθ2(x))p(y \mid x, \theta) = \mathcal{N}\bigl(y;\, \mu_\theta(x),\, \sigma^2_\theta(x)\bigr)

Эта гетероскедастическая голова оценивает тот же объект, который GARCH оценивает классически — зависящую от состояния условную дисперсию, которая высока ночью и низка в пиковые часы. Если вам нужны эмпирики этого объекта на криптовалютных рынках, GARCH(1,1) для волатильности криптовалют это покрывает должным образом, включая то, почему live условный прогноз (а не безусловная выборочная дисперсия) принадлежит знаменателю Келли. Голова NN — просто другой оценщик той же величины, подогнанный совместно со средним.

То, что GARCH не может вам дать — это другой член. Именно для этого остальная часть этого поста.

Как это соотносится с уже опубликованным

Два предыдущих поста покрывают смежные темы и стоит прочитать их первыми, потому что этот специально их не повторяет:

  • Конформальное предсказание для sizing, учитывающего риск дает вам интервалы с гарантией покрытия на конечной выборке, без предположения о распределении, плюс sizing по обратной ширине и фильтр no-trade по ratio преимущества. Это более сильный инструмент, если все, что вам нужно — правильно sized интервал.
  • Temporal Fusion Transformers испускают квантили напрямую и уже предупреждают, что квантили по pinball-loss автоматически не калибруются out of sample.

Компромисс ясен. Конформальный подход дает гарантию, но одно число — ширина интервала не декомпозируема, поэтому он не может сказать почему он расширился. Байесовские методы дают декомпозицию, но без гарантии — интервалы MC Dropout настолько хороши, насколько хорош приближенный posterior. Эта статья о покупке декомпозиции; вам, вероятно, стоит держать конформальный подход поверх нее для покрытия.

Метод 1: Вариационный вывод (Bayes by Backprop)

Плотный байесовский posterior весов сжимается в tractable вариационное приближение перед порождением распределения предсказываемой доходности

Байесовская нейронная сеть помещает априорное распределение p(θ)p(\theta) на веса и ищет posterior p(θD)p(Dθ)p(θ)p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta) p(\theta). Нормализатор требует интегрирования по каждой конфигурации весов, что intractable для чего угодно с более чем несколькими параметрами.

Вариационный вывод заменяет intractable posterior на tractable семейство qϕ(θ)q_\phi(\theta) — обычно факторизованный Гауссиан qϕ(θ)=jN(θj;μj,σj2)q_\phi(\theta) = \prod_j \mathcal{N}(\theta_j; \mu_j, \sigma_j^2) — и минимизирует

KL(qϕ(θ)p(θD))\text{KL}\bigl(q_\phi(\theta) \,\|\, p(\theta \mid \mathcal{D})\bigr)

Поскольку это включает неизвестный posterior, мы вместо этого максимизируем Evidence Lower Bound:

L(ϕ)=Eqϕ(θ)[logp(Dθ)]KL(qϕ(θ)p(θ))\mathcal{L}(\phi) = \mathbb{E}_{q_\phi(\theta)}\bigl[\log p(\mathcal{D} \mid \theta)\bigr] - \text{KL}\bigl(q_\phi(\theta) \,\|\, p(\theta)\bigr)

Первый член подталкивает qϕq_\phi к объяснению данных; второй держит его рядом с априорным. Bayes by Backprop (Blundell et al., 2015) делает это дифференцируемым с помощью reparameterization trick: выборка ϵN(0,I)\epsilon \sim \mathcal{N}(0, I), установка θ=μ+σϵ\theta = \mu + \sigma \odot \epsilon.

На практике VI удваивает количество параметров, повышает дисперсию градиента (каждый forward pass использует разные веса), и предположение mean-field игнорирует корреляции весов, что tends to underestimate эпистемическую неопределенность. Для трейдингового стека, где у вас уже есть обученная детерминистическая модель, два более дешевых метода ниже обычно лучшая точка входа.

Метод 2: MC Dropout

Многократные forward passes с активным dropout расходятся к различным прогнозам, чье несогласие формирует эпистемическую неопределенность

Gal и Ghahramani (2016) показали, что сеть, обученная с dropout и оцененная с dropout все еще активным в test time, является процедурой приближенного вариационного вывода в глубоком Gaussian process. Dropout уже индуцирует распределение над подсетями; оставление его включенным во время вывода и запуск TT forward passes выборки из этого implicit posterior.

Этого больше нигде в этом блоге. Опубликованный код здесь использует dropout только как regularizer времени обучения (моделирование спреда, TFT при dropout=0.1–0.3). Оставление его включенным во время вывода — однострочное изменение с совершенно другим значением.

Предиктивная статистика

Дано TT стохастических forward passes, производящих {y^t}t=1T\{\hat{y}_t\}_{t=1}^{T} и внутри-pass дисперсии σ^t2(x)\hat{\sigma}_t^2(x):

Предиктивное среднее:

yˉ=1Tt=1Ty^t\bar{y} = \frac{1}{T} \sum_{t=1}^T \hat{y}_t

Эпистемическое (несогласие между passes):

σepi2=1Tt=1T(y^tyˉ)2\sigma^2_{\text{epi}} = \frac{1}{T} \sum_{t=1}^T (\hat{y}_t - \bar{y})^2

Алеаторическое (среднее предсказанного шума):

σalea2=1Tt=1Tσ^t2\sigma^2_{\text{alea}} = \frac{1}{T} \sum_{t=1}^T \hat{\sigma}_t^2

Декомпозиция — это точно закон полной дисперсии: дисперсия условного среднего плюс среднее условной дисперсии. Полная предиктивная дисперсия — их сумма.

Реализация на PyTorch

import torch
import torch.nn as nn
import numpy as np

class MCDropoutNet(nn.Module):
    """
    Сеть предсказания доходности с MC Dropout для оценки неопределенности.
    Выводит и предсказанное среднее, и лог-дисперсию (алеаторическую).
    """
    def __init__(self, input_dim: int, hidden_dim: int = 128, dropout_p: float = 0.1):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(input_dim, hidden_dim),
            nn.ReLU(),
            nn.Dropout(p=dropout_p),
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU(),
            nn.Dropout(p=dropout_p),
        )
        self.head_mu = nn.Linear(hidden_dim, 1)        # предсказанная доходность
        self.head_logvar = nn.Linear(hidden_dim, 1)    # log(алеаторическая дисперсия)

    def forward(self, x: torch.Tensor):
        h = self.net(x)
        return self.head_mu(h), self.head_logvar(h)


def heteroscedastic_loss(mu, log_var, target):
    """Negative log-likelihood для Гауссиана с обученной, зависящей от входа дисперсией."""
    precision = torch.exp(-log_var)
    return torch.mean(0.5 * precision * (target - mu) ** 2 + 0.5 * log_var)


@torch.no_grad()
def mc_predict(model: MCDropoutNet, x: torch.Tensor, n_samples: int = 100):
    """
    Inference MC Dropout: держим dropout ВКЛЮЧЕННЫМ, собираем T forward passes,
    декомпозируем предиктивную дисперсию на эпистемическую и алеаторическую части.
    """
    model.train()  # НЕ eval() -- это именно то, что держит dropout активным
    mus, log_vars = [], []
    for _ in range(n_samples):
        mu, log_var = model(x)
        mus.append(mu)
        log_vars.append(log_var)

    mus = torch.stack(mus)            # (T, batch, 1)
    log_vars = torch.stack(log_vars)  # (T, batch, 1)

    pred_mean = mus.mean(dim=0)
    epistemic_var = mus.var(dim=0)              # Var по passes
    aleatoric_var = log_vars.exp().mean(dim=0)  # E по passes

    return {
        "mean": pred_mean.squeeze(-1),
        "epistemic_std": epistemic_var.sqrt().squeeze(-1),
        "aleatoric_std": aleatoric_var.sqrt().squeeze(-1),
        "total_std": (epistemic_var + aleatoric_var).sqrt().squeeze(-1),
    }

Обучение использует гетероскедастическую функцию потерь, именно то, что придает смысл голове дисперсии. Обратите внимание на саморегулирующуюся структуру: член 0.5 * precision * (target - mu)**2 хочет малую дисперсию, член 0.5 * log_var штрафует ее, и точка баланса — уровень условного шума.

model = MCDropoutNet(input_dim=50, hidden_dim=128, dropout_p=0.1)
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3, weight_decay=1e-4)

for epoch in range(200):
    model.train()
    for x_batch, y_batch in train_loader:
        mu, log_var = model(x_batch)
        loss = heteroscedastic_loss(mu, log_var, y_batch)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

Gotcha, который молча убивает метод: вызов model.eval() внутри mc_predict. Это отключает dropout, каждый pass возвращает идентичное значение, epistemic_var схлопывается точно в ноль, и ваше правило sizing тихо revert к plain Kelly на алеаторической дисперсии. Это fails без ошибки. Assert, что epistemic_var > 0 в вашем пути вывода.

Выбор количества forward passes

  • T=30T = 30: разумная нижняя граница для стабильного среднего
  • T=100T = 100: работающий дефолт для среднего и дисперсии
  • T=500+T = 500{+}: убывающая отдача, если вам не нужны хвостовые квантили

Метод 3: Глубокие ансамбли

Пять независимо обученных нейронных сетей комбинируют свои предсказания, пока их несогласие формирует эпистемический ореол

Lakshminarayanan et al. (2017) обучают MM независимых сетей из разных случайных инициализаций и агрегируют. Несмотря на то, что формально не байесовские, глубокие ансамбли последовательно beat более principled методы на бенчмарках калибровки неопределенности.

p(yx)1Mm=1Mp(yx,θm)p(y \mid x) \approx \frac{1}{M} \sum_{m=1}^M p(y \mid x, \theta_m^*)

Несогласие между членами — это оценка эпистемической неопределенности. Ансамбли появляются в других местах этого блога как устройства агрегации — детекция аномалий, детекция режимов HMM, EnbPI block bootstrap конформального подхода — но никогда как оценщик неопределенности через разброс между членами. Именно в этом использование здесь.

Реализация ансамбля

Разнообразие происходит от независимого обучения, а не от конструирования MM объектов. Ансамбль необученных или одинаково обученных членов возвращает либо шум, либо нулевую эпистемическую дисперсию:

class DeepEnsemble:
    def __init__(self, input_dim: int, n_models: int = 5, hidden_dim: int = 128):
        self.models = []
        for seed in range(n_models):
            torch.manual_seed(seed)          # разный init для каждого члена
            self.models.append(
                MCDropoutNet(input_dim, hidden_dim, dropout_p=0.0)
            )

    def fit(self, train_loader, epochs: int = 200, lr: float = 1e-3):
        """Каждый член обучается независимо. Именно здесь происходит разнообразие
        -- разный init, разный порядок shuffle. Пропуск этого
        дает epistemic_var == 0 (идентичные члены) или чистый шум (необученные)."""
        for seed, model in enumerate(self.models):
            torch.manual_seed(1000 + seed)   # разный поток shuffle/dropout
            opt = torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=1e-4)
            model.train()
            for _ in range(epochs):
                for x_batch, y_batch in train_loader:
                    mu, log_var = model(x_batch)
                    loss = heteroscedastic_loss(mu, log_var, y_batch)
                    opt.zero_grad()
                    loss.backward()
                    opt.step()
        return self

    @torch.no_grad()
    def predict(self, x: torch.Tensor):
        mus, variances = [], []
        for model in self.models:
            model.eval()                     # правильно здесь: без dropout sampling
            mu, log_var = model(x)
            mus.append(mu.squeeze(-1))
            variances.append(log_var.exp().squeeze(-1))

        all_mus = torch.stack(mus)
        all_vars = torch.stack(variances)

        epistemic_var = all_mus.var(dim=0)   # разброс ПОПЕРЕК членов
        aleatoric_var = all_vars.mean(dim=0)

        return {
            "mean": all_mus.mean(dim=0),
            "epistemic_std": epistemic_var.sqrt(),
            "aleatoric_std": aleatoric_var.sqrt(),
            "total_std": (epistemic_var + aleatoric_var).sqrt(),
        }

Обратите внимание, что model.eval() правильно в DeepEnsemble.predict и неправильно в mc_predict. Источник стохастичности отличается: ансамбли получают ее от независимого обучения, MC Dropout — от активных масок dropout.

Трейдофф: MC Dropout vs Глубокие ансамбли

MC Dropout Глубокие ансамбли
Стоимость обучения 1x (одна модель) MMx (MM моделей)
Стоимость вывода TT forward passes MM forward passes
Память 1x параметры MMx параметры
Качество неопределенности Тends to underestimate эпистемическую Лучше калиброван в целом
Легкость реализации Тривиально (flip флага) Тривиально (обучить MM моделей)
Параллелизм Последовательные passes (та же модель) Громадно параллелен

Прагматичный гибрид: обучить небольшой ансамбль (M=35M = 3{-}5), где каждый член также использует MC Dropout, захватывая и inter-model несогласие, и intra-model стохастичность.

Выгода: асимметричный sizing

Алеаторический шум расширяет конверт риска, пока эпистемическая неопределенность сужает апертуру sizing и создает зону воздержания

Вот реальный вклад. Гауссов Келли — это f=μ/σ2f^* = \mu / \sigma^2; вывод, парабола роста, таблица вероятности drawdown и четыре причины запускать fractional вместо full Келли — все в Критерий Келли для стратегий, и здесь не повторяются. Возьмите f=μ/σ2f^* = \mu / \sigma^2 на quarter-Kelly fraction как данность.

Модификация — знаменатель. Вместо полной предиктивной дисперсии:

σeff2=σalea2+λσepi2,λ>1\sigma^2_{\text{eff}} = \sigma^2_{\text{alea}} + \lambda \cdot \sigma^2_{\text{epi}}, \qquad \lambda > 1

Аргумент для λ>1\lambda > 1: алеаторическая дисперсия — это шум рынка, он оценивается, и именно его несение — за счет чего стратегия зарабатывает. Эпистемическая дисперсия — ваше незнание — она не несет премии, и хуже того, она коррелирована с тем, что ваша оценка μ\mu неправильна. Когда σepi\sigma_{\text{epi}} велика, числитель Келли ненадежен одновременно со знаменателем, поэтому ошибка в размере позиции накапливается (компаундируется). Штрафуйте ее суперлинейно относительно рыночного шума — прямое выражение этого.

def uncertainty_adjusted_position_size(
    pred_mean: float,
    epistemic_std: float,
    aleatoric_std: float,
    max_position: float = 1.0,
    lam: float = 2.0,                   # эпистемический штраф; tune на validation
    max_epi_ratio: float = 0.5,         # воздержаться выше этого epi/alea ratio
    base_kelly_fraction: float = 0.25,
) -> float:
    """Sizing по Келли, где эпистемическая дисперсия штрафуется жестче, чем алеаторическая."""
    effective_var = aleatoric_std ** 2 + lam * epistemic_std ** 2
    if effective_var < 1e-10:
        return 0.0

    position = (pred_mean / effective_var) * base_kelly_fraction

    epi_ratio = epistemic_std / (aleatoric_std + 1e-8)
    if epi_ratio > max_epi_ratio:
        position *= max(0.0, 1.0 - epi_ratio)

    return float(np.clip(position, -max_position, max_position))

Gate заслуживает заметки. Обнуление позиций ниже порога confidence — не новость здесь — статья о конформальном подходе специфицирует и кодирует общий фильтр no-trade как et=μ^/wte_t = |\hat{\mu}| / w_t с порогом min_edge, включая то, как выбрать порог и геометрическое чтение интервала, straddling ноль. Смотрите конформальное предсказание для этой техники. Что новое — так это знаменатель: gate на σepi/σalea\sigma_{\text{epi}} / \sigma_{\text{alea}} срабатывает именно тогда, когда модель более запутана в своих собственных параметрах, чем рынок шумен — состояние, которое gate по полной неопределенности не может детектировать, потому что спокойный-но-незнакомый режим может иметь низкую полную дисперсию и ужасный эпистемический ratio.

Калибровка: делегируйте это

Оценка неопределенности полезна только если калибрована: номинальный 95% интервал должен содержать истину ~95% времени. Не roll your own проверку надежности Gaussian-квантилем здесь — параметрический интервал на толстохвостых остатках доходности — это именно режим отказа, существование которого конформальное предсказание призвано избегать, и оно ships рабочим evaluate(), который сообщает target против эмпирического покрытия с гарантией на конечной выборке за спиной. Пост TFT делает тот же момент для голов квантилей.

Пост-hoc рескалинг (σ~=ασ+β\tilde{\sigma} = \alpha \sigma + \beta, подогнанный на validation set) — дешевый fix, и это слабый кузен Adaptive Conformal Inference, который поддерживает online уровень miscoverage αt\alpha_t с долгосрочной bound покрытия вместо статического рескала. ACI — более сильный вариант; единственная причина предпочитать линейный рескалинг — он сохраняет эпистемический/алеаторический ratio, чего одна ширина ACI не делает.

Что должно быть измерено перед публикацией

Методы выше установлены. Утверждение, что разделение покупает что-то в трейдинге — нет, и этот блог не публикует правила sizing на одном аргументе. Планка:

1. Dataset и target. Назовите инструмент, размер бара, явный диапазон дат, набор фичей и цель предсказания.

2. Само разделение. Какая фракция полной предиктивной дисперсии — эпистемическая vs алеаторическая, и как этот ratio движется между названным спокойным окном и названным волатильным. Это money chart и его пока не существует. Гипотеза, стоящая falsify: ratio пикует до того, как realized волатильность делает, потому что незнакомость предшествует турбулентности.

3. Покрытие vs конформальное. Измеренное out-of-sample покрытие интервалов MC Dropout против номинального, по сравнению с split-conformal интервалами из опубликованной статьи на тех же данных. Этот head-to-head сам по себе новый результат и естественный мост между двумя постами.

4. Покупает ли λ\lambda что-то? Sweep по эпистемическому штрафу на validation и отчет PnL и max drawdown против baseline λ=1\lambda = 1. Если это ничего не покупает — скажите это — Честный негатив — шаблон для этого исхода и это публикуемый результат.

5. Стоимость вывода. Измеренная, на целевом железе, при каждом TT.

Любая оценка здесь запускается под дисциплиной walk-forward оптимизацииλ\lambda — гиперпараметр, и λ\lambda, подогнанный на полной выборке — не результат.

Практические советы для продакшна

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

2. Следите за коллапсом дисперсии. Выученные дисперсии σj\sigma_j могут drify к почти нулю, молча revert BNN к детерминистической сети. Монить среднее σj\sigma_j во время обучения; добавьте KL annealing если нужно.

3. Рекалибруйте на rolling basis, не на фиксированном validation set. Рынки нестационарны и калибровка, подогнанная один раз, декает. Либо retrain на rolling window под дисциплиной walk-forward, либо пусть ACI поглотит staleness модели online — пост о конформальном подходе покрывает trade-off частоты retraining напрямую.

4. Разнообразие ансамбля имеет значение. Разные seeds, разный shuffle, опционально разные гиперпараметры для каждого члена. Разнообразие инициализации — primary driver качества ансамбля, поэтому цикл fit() выше не optional.

5. Логируйте декомпозицию, не только total. Храните оба компонента вместе с realized outcomes. Без этого вы не можете ответить на единственный вопрос, который имеет значение в ревью: когда sizer режет exposure, это было потому, что рынок шумен или потому, что модель потеряна — и был ли он прав?

6. Неопределенность как фича. Rolling эпистемическая статистика может сама быть predictive для drawdown. Пausible, не измерено, и заслуживает отдельного поста.

Ограничения и честные оговорки

  • Приближенные posteriors все еще приближенные. MC Dropout и VI дают ограниченный вид истинного posterior. Лучше, чем ничего, не ground truth, и гарантия покрытия не attaches ни к одному из них.
  • Калибровка деградирует именно тогда, когда она нужна. В действительно новом режиме модель все еще может быть miscalibrated — она просто tends to be менее miscalibrated, чем детерминистическая. Оценки неопределенности из out-of-distribution входа — сами out-of-distribution outputs.
  • Алеаторическая дисперсия может поглотить эпистемический сигнал. Если гетероскедастическая голова достаточно гибкая, она учится объяснять неопределенность модели как шум данных, схлопывая σepi\sigma_{\text{epi}} к нулю и молча побеждая всю декомпозицию. Это самый важный режим отказа в этом посте и он о себе не объявляет. Монить ratio через режимы; ratio, который никогда не движется — сломанная декомпозиция, а не стабильный рынок.
  • λ\lambda — свободный параметр. Введение настраиваемой ручки в правило sizing — так строятся overfit sizing rules. Ему нужно walk-forward оправдание или нужно быть зафиксированным на 1.

Заключение

Конформальное предсказание уже дает этому блогу ширины интервалов с гарантией покрытия, и Келли уже дает ему правило sizing. Ни то, ни другое не дает ответа на почему интервал широк. Разделение предиктивной дисперсии на эпистемическую и алеаторическую части отвечает на это, и ответ actionабелен способом, которым total не является: рыночный шум — компенсируемый риск, незнание модели — нет, и знаменатель sizing должен так и говорить.

MC Dropout делает разделение почти бесплатным — одна строка (model.train() при inference) превращает любую dropout сеть в приближенную байесовскую. Глубокие ансамбли стоят MMx и калибруются лучше. Оба кормят один и тот же асимметричный знаменатель σalea2+λσepi2\sigma^2_{\text{alea}} + \lambda \sigma^2_{\text{epi}}.

Платит ли λ>1\lambda > 1 на самом деле — эмпирический вопрос, который этот черновик еще не отвечает. Измерения, перечисленные выше — цена публикации.


References:

  • Blundell, C., Cornebise, J., Kavukcuoglu, K., & Wierstra, D. (2015). Weight Uncertainty in Neural Networks. ICML.
  • Gal, Y. & Ghahramani, Z. (2016). Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning. ICML.
  • Lakshminarayanan, B., Pritzel, A., & Blundell, C. (2017). Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles. NeurIPS.
  • Kendall, A. & Gal, Y. (2017). What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision? NeurIPS.
  • Gibbs, I. & Candes, E. (2021). Adaptive Conformal Inference Under Distribution Shift. NeurIPS.
  • Kelly, J. L. (1956). A New Interpretation of Information Rate. Bell System Technical Journal.
Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

Авторы

Eugen Soloviov
Eugen Soloviov

Инженер торговых систем

Разработка торговых ботов с 2017 года: межбиржевой арбитраж (подключал до 30 бирж), парный арбитраж на коинтеграции между спотом и фьючерсами, скальпинг, фронтраннинг, торговля по новостям, сентиментный анализ, трендовые алгоритмы, а также алгоритмы управления и балансировки портфелей. Делает выставление ордеров до 1 мс, warehouse для big data, бэктестинг-движки, AI-агентов и интерфейсы для ботов (в т.ч. open-source profitmaker.cc). Стек: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, архитектура.

Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.