← Макалаларга кайтуу
July 31, 2026
5 мүн окуу

Эпистемдик жана алеатордук: Кайтарым модели билбеген нерсени өлчөө

Эпистемдик жана алеатордук: Кайтарым модели билбеген нерсени өлчөө
#bayesian
#uncertainty
#neural-network
#risk
#position-sizing

Бул блогдун бардык позиция өлчөө эрежелери белгисиздикти бир скалярлык чоного кысып келет. Kelly критерийи дисперсияга бөлөт. Конформалдык болжоо аралык туурасына бөлөт. Волatilityдык таргеттүү GARCH болжамына бөлөт. Үчөң тең туура, бирок саудада маанилүү айырмачылыкты таштап келет: шу-шуулуу рынок жана билбеген моделдин айырмачылыгы.

Бул бирдей риск эмес. Рыноктун шусу бааланган — аны алып жүргөн үчүн төлөнөт. Моделдин билимсиздиги бааланба gan, төлөнбөйт жана дээр сиздин артыкчылыгуңуздун баасы эң ишенимсиз кылып. Аларды тең жазган өлчөө эрежеси үстөлдөн бир нерсе калтырат.

Бул пост бөлүнү өлчөөгө келет кылуу жөнүндө. Тактап айтканда:

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

Аны Келлинин бөлүгүнө жалпы дисперсия ордуна коюңуз. Макаланын калган бөлүгү эки компонентти баалоо жөнүндө (MC Dropout, терең ансамблдар) жана чыныгы берилүлөрдө бөлүнүнүн көрүнүшү жөнүндө.

Тезис: Эки белгисиздик — эки аракет

Эпистемдик Алеатордук
Булак Чектүү берилүүлөр / модель Берилүүлөрдүн ички шуму
Азайышты барбы? Ооба (көбүрөөк берилүү жардам берет) жок
Сауда аракети Позицияны азайтыңыз же баш тартыңыз Стопторду кеңитит, тиректи азайтыңыз
Сигнал "Мен бул режимди көргөм жокпун" "Бул рынок учур шу-шуулуу"

"Сауда аракети" сабындагы асимметрия — бул бүткөн далил. Жогорку алеатордук дисперсия — бул белгилүү белгисиз: ага өлчөөгө болот, хеджирлөөгө болот жана аны кармоо үчүн риск сыйлыгы алууга болот деп күтөөгө болот. Жогорку эпистемдик дисперсия — белгисиз белгисиз: модель экстраполяция кылат, анын орточо баасы μ\mu дисперсия баасы сыяктуу шектүү, жана өз параметрңиз мен ката кылганга эч кандай сыйлык жок.

Экөөнү чаташтырган модель же танбаган режимдерде көп сауда жасайт (эпистемдик белгисиздикти элеп коёт), же танган бирок шу-шуулуу режимдерде аз сауда жасайт (алеатордук белгисиздикти ашык жазат). Жалпы дисперсияга колдонулган стандартты Келли кай компонент басым болгонуна карай эки эле иштейт.

Бөлүү

Эпистемдик белгисиздик модель параметрлери θ\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)

Ол гетероскедастик баш GARD классикалык баалоочу нерсени баалайт — түнкы убакытта жогору, pik убакытта төмөн шартта көз каранды дисперсия. Крипто валюта боюнча бул объектидин эмпирикалыгы керек болсо, GARCH(1,1) for crypto volatility туура камсыз кылат, анын ичинде неге тири шарттуу болжам (шарттуу эмес үлгү дисперсиясы эмес) Келли бөлүгүнө кирерин кошот. NN башы орточо мен бирге үйрөтүлгөн ошол объекти башка баалоочу гана.

GARCH бере албаган бул экинчи мүчө. Бул посттун калган бөлүгүнүн максаты ошол.

Мурдатагы жариялангандар мен салыштырмалуу жайгашуу

Эки мурунку пост жанаша аймакты камтыйт жана алгач окууга татыктуу, себеби бул пост аларды кайталабайт:

  • Конформалдык болжоо акыркы үлгү камкордугу бар аралыктарды берет, үлгүрү болжам жок, туурасына карама-каршы өлчөө жана edge ratio no-trade фильтрү бар. Эгер дүйүн өлчөнгөн аралык гана керек болсо, бул күчтүү курал.
  • Temporal Fusion Transformers тике квантилдерди чыгарат жана pinball-loss квантилдери үлгүдөн тыш автоматтык түрдө калибрленбейтинин эскертет.

Алмашуу таза. Конформал камкордук берет бирок бир сан — аралык туурасы бөлүнбөйт, ошондуктан ал неге кеңейтирилгенин айта албайт. Байес ыкмалар бөлүнү берет бирок камкордук жок — MC Dropout аралыктары жуык posterior сиякты гана жакшы. Бул макала бөлүнү сатып алуу жөнүндө. Камкордук үчүн анын үстүнөн конформалды карманууңуз керек.

ыкма 1: Вариациялык чыгаруу (Backprop аркылуу Байес)

Туунду Байес салмақ posterior болжалдуу кайтарым үлгүрүмүн чыгарардан мурун колдо жүргүзүлгөн вариациялык жакындаштыргыч кысылат

Байес нейрондук тармагы салмактарга prior p(θ)p(\theta) орнотот жана posterior p(θD)p(Dθ)p(θ)p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta) p(\theta) издейт. Нормалдаштыргыч ар бир салмақ конфигурациясы боюнча интегралдоону талап кылат, бул бир нече параметрден ашык нерсе үчүн мүмкүн эмес.

Вариациялык чыгаруу мүмкүн эмес posteriorту колдо жүргүзүлгөн утуун мен 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-ны берилүүлөрдү түшүндүрүүгө багыттайт, экинчиси аны priordin жанында каржыйт. Bayes by Backprop (Blundell et al., 2015) булды репараметеризация трюк мен дифференциалды кылат: ϵN(0,I)\epsilon \sim \mathcal{N}(0, I) алыңыз, θ=μ+σϵ\theta = \mu + \sigma \odot \epsilon коюңуз.

Практикалык түрдө VI параметр санын эки эсе көбөйтөт, градиент дисперсиясын көтөрөт (ар бир алга өтүү ар түрдүү салмактарды колдонот) жана mean-field болжамы салмақ корреляцияларын элеп коёт, бул эпистемдик белгисиздикти төмөн баалоого алып келет. Сауда стегиңизде бул керек болсо, төмөндөгү эки арзан ыкма адатта жакшы кириш точка.

ыкма 2: MC Dropout

Кайталанчу dropout-кабыл алган алга өтүүлөр ар түрдүү болжамдарга бөлүнөт, алардын келишпөөсүздүгү эпистемдик белгисиздикти түзөт

Gal жана Ghahramani (2016) dropout мен үйрөтүлгөн жана тест убактысында dropout дагы күйү бааланган тармак терең гаусс процессиндеги жуык вариациялык чыгаруу процедурасы экенин көрсөттү. Dropout элете subnetwork жөнүндөгү үлгүрүмдү жаратат; аны чыгаруу учунда күйү коюп TT алга өтүү жүргүзүү ошол жашырын posterior-дан үлгү алат.

Бул бул блогдун башка жеринде жок. Бул жерде жарияланган код dropout-ту жала гана training-time regularizer катары колдонот (spread modeling, TFT dropout=0.1–0.3). Аны inference учунда күй коюу — бир сап өзгөртүү, бирок таптакы башка маани.

Болжалдык статистика

TT стохастикалык алга өтүү {y^t}t=1T\{\hat{y}_t\}_{t=1}^{T} чыгарса жана ар бир өтүүдүн дисперсиясы σ^t2(x)\hat{\sigma}_t^2(x) болсо:

Болжалдык орточо:

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

Эпистемдик (өтүүлөр ортосундагы келишпөөсүз):

σ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):
    """Үйрөнгөн, кирүү көз каранды дисперсиясы бар гаусс үчүн терис 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):
    """
    MC Dropout inference: dropout-ты КҮЙҮ КАРМАҢЫЗ, T алга өтүүнү жыныңыз,
    болжалдык дисперсияны эпистемдик жана алеатордукка бөңүз.
    """
    model.train()  # NOT 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)              # өтүүлөр ортосундагы дисперсия
    aleatoric_var = log_vars.exp().mean(dim=0)  # өтүүлөр ортосундагы күтүү

    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: mc_predict ичинде model.eval() чакыруу. Ал dropout-ту өчүрөт, ар бир өтүү бирдей маанини кайтарат, epistemic_var так эц кулайт, жана өлчөө эрежеңиз ичте алеатордук дисперсия гана карап жөнө Келлиге кайтат. Ката жок ийгигисиздикке учуйт. Inference жолунда epistemic_var > 0 текшириңиз.

Алга өтүү санын тандоо

  • T=30T = 30: туруктуу орточо үчүн төмөнкү чек
  • T=100T = 100: орточо жана дисперсия үчүн иштейтген өткөөнү
  • T=500+T = 500{+}: куйрук квантилдери керек болбосо diminishing returns

ыкма 3: Терең ансамблдер

Беш эркин үйрөтүлгөн нейрондук тармактар божолдорун бириктирет, алардын келишпөөсүздүгү эпистемдик гало түзөт

Lakshminarayanan et al. (2017) ар түрдүү кездейсоол инициализациялардан MM эркин тармакты үйрөтөт жана агрегациялайт. Расмий Байес болсо да, терең ансамблдер белгисиздик калибрациялык бенчмаркте үнемү принципалды ыкмаларды жеңет.

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 — бирок мүчөлөр ортосундагы spread аркылуу белгисиздик баалоочу катары эмес. Бул бул жердеги колдонуу.

Ансамбль ишке ашыруу

Ар түрдүүлүк эркин үйрөтүүдөн келет, 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/dropoff stream
            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)   # мүчөлөр ортосундагы spread
        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 live dropout mask-тен алат.

Трейдоффтор: MC Dropout vs Терең ансамблдер

MC Dropout Терең ансамблдер
Үйрөтүү чыгымы 1x (жалгыз модель) MMx (MM модель)
Inference чыгымы TT алга өтүү MM алга өтүү
Эс 1x параметрлер MMx параметрлер
Белгисиздик сапаты Эпистемдик төмөн баалоого багыттайт Жалпы жакшыраак калибрленген
Ишке ашыруу оңойлугу апапты (flag flip) апапты (MM модельди үйрөтүңүз)
Параллелдик Кезек пассалар (оол модель) Толук параллель

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

Акы төлөө: Асимметриялык өлчөө

Алеатордук шум капты кеңитет, эпистемдик белгисиздик позиция өлчөө жылчыгын жабат жана баш тартуу аймагын жаратат

Бул чыныгы салым. Гаусс Келли f=μ/σ2f^* = \mu / \sigma^2; чыгару, өсүү параболасы, drawdown ыктымалдык таблицасы жана fraction Kelly эмес full Kelly жүргүзүүнүн төрт себебинин баары The Kelly Criterion for Strategies бар, жана кайталанбайт. Төртүн биринчи-Kelly fraction-дагы f=μ/σ2f^* = \mu / \sigma^2 бекик деп алыңыз.

Өзгөртүү — бөлүүч. Жалпы болжалдык дисперсия ордуна:

σ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}} чоң болгондо, Келлинин саны бөлүүчү мен бирге ишенимсиз, ошондуктан өлчөө катеси татаалдат. Рынок шусуна караганда аны superlinearly жазуу — анын тике билдирүүсү.

def uncertainty_adjusted_position_size(
    pred_mean: float,
    epistemic_std: float,
    aleatoric_std: float,
    max_position: float = 1.0,
    lam: float = 2.0,                   # эпистемдик penalty; validation-те tune
    max_epi_ratio: float = 0.5,         # бул epi/alea катышынан жогору abstain
    base_kelly_fraction: float = 0.25,
) -> float:
    """Эпистемдик дисперсия алеатордукка караганда катты жазалуучу Kelly өлчөө."""
    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))

Шлюзге эскертүү керек. Ишенимдүүлүк порогунан төмөн позицияларды нөлдөө — бул жерде жаңы эмес — конформал макала ноу-трейд фильтрин et=μ^/wte_t = |\hat{\mu}| / w_t min_edge порогу мен жалпы түрдө сипаттайт жана коддoit, анын ичинде порогду кантип тандоо жана нөлдү айлантуучу аралыктын геометриялык окуусу. Ол машина үчүн conformal prediction караныңыз. Жаңасы — бөлүүч: σepi/σalea\sigma_{\text{epi}} / \sigma_{\text{alea}} боюнча гейтинг модель нарыктан гөри өз параметрлери жөнүндөататканда атайын өтөт — жалпы белгисиздик гейтинг алай турган кыйыя, себеби тыныч бирок танбаган режим төмөн жалпы дисперсия жана жаман эпистемдик катышы болушу мүмкүн.

Калибрация: Бул башкага бериңиз

Белгисиздик баасы калибрацияланган кезде гана пайдалуу: номиналды 95% аралык чындыктын шамамен 95% убактысын камтыйт. Мунда өз Гаусс-квантиль ишенимдүүлүк тексерин куруңуз — калың куйруктуу кайтарым калдыктарындагы параметрлик аралык — conformal prediction болуучу ийгиликсиздик режими, жана ал арты жагында соңку үлгү камкордугу мен target vs empirical coverage билдирген иштейт evaluate() жиберет. TFT пост да квантил баштары үчүн ош нүктөни жасайт.

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

Бул жарияланганга чейин өлчөнүшү керек

Жогорудагы ыкмалар белгилүү. Бөлүнүн саудада эч нерсени сатуу эмес, жана бул блог тек аргумент менен sizing эрежелерин жарыялабайт. Бар:

**1. Берилүүлөр жана максат. ** Аспапты, бар өлчөмдү, так күн аймагын, feature set-ти, болжоо максатын атап айтыңыз.

**2. Бөлүү өзү. ** Жалпы болжалдык дисперсиянын канча пайызы эпистемдик алеатордук, жана бул катыш аталган тын-жылуу терезеден аталган волатил терезеге кантип кыймылдаганы. Бул акыча диаграммасы жана али жок. Жалпыланбаган гипотеза: катыш жүзүк волатилдүүлүктөн мурун чыгат, себеби танбагандык бузулуудан мурун келет.

**3. Конформал мен камкордук. ** Ошол эле берилүүлөрдеги жарияланган макаладан келген split-conformal аралыктары мен салыштырганда, MC Dropout аралыктарынын үлгүдөн тыш камкордугунун өлчөнгөнү. Ол head-to-head өзү жаңы натыйжа жана эки посттун табийый көпүрүсү.

**4. λ\lambda эч нерсени сatabы? ** Validation-да эпистемдик penalty-ти sweep кылыңыз жана λ=1\lambda = 1 baseline-ка каршы PnL жана макс drawdown билдириңиз. Эчтеңе сабаса, ошентип айтыңыз — The Honest Negative ош натыйжа үчүн шаблон жана жариялануучу натыйжа.

**5. Inference чыгымы. ** Target hardware-да ар бир TT-де өлчөнгөн.

Мундагы кез келген баалоо walk-forward optimization тартиби мен жүрөт — λ\lambda гиперпараметр, жана толук үлгүдө tune-делген λ\lambda натыйжа эмес.

өндүрүш үчүн колдонмо сунуштар

**1. Prior-ды жылытыңыз. ** Вариациялык чыгарууда, вариациялык орточону random эмес pretrained deterministic network-тен инициализациялаңыз. Адатте конвергенция убактысы жартылан кичирейт.

**2. Дисперсия кулашын бақылаңыз. ** Үйрөнгөн дисперсиялар σj\sigma_j шамамен нөлгө drift жасап, BNN-ни тыныш deterministic network-ге кайтаруусу мүмкүн. Training кезинде орточо σj\sigma_j-ти бақылаңыз; керек болсо KL annealing кошуңуз.

**3. Фиксировалган validation set эмес rolling basis кайта калибрлаңыз. ** Рынктар стационар эмес жана бир жолу fit-телген калибрациялауdecay. Walk-forward тартиби мен rolling window-да кайта үйрөтүңүз же ACI-ге модельдин staleness-ти онлайн сиңириңиз — конформал пост retraining frequency trade-off-у тике камтыйт.

**4. Ансамбль ар түрдүүлүгү маанилүү. ** Ар түрдүү түкымдар, ар түрдүү shuffle-лер, опционалды түрдө мүчө үчүн ар түрдүү гиперпараметрлер. Инициализация ар түрдүүлүгү — ансамбл сапатынын башкы драйвери, ошондуктан жогорудагы fit() циклы опционалды эмес.

**5. Бөлүштү, жалпы гана эмес, жазыңыз. ** Эки элеңди де репозициялар мен сактаңыз. Алсыз шолууда маанилүү жалгыз суракка жооп бере албайсыз: sizer exposition-ди кыскартканда, бул рынок шулуулугунан же модель жоголгонунан — жана ал турабы?

**6. Белгисиздик feature катарында. ** Rolling эпистемдик статистика өзү drawdown-дарды болжашы мүмкүн. Толук мүмкүн, өлчөнбөгөн, жеке постко лайык.

Чектөөлөр жана чынайы келтирүүлөр

  • **Жуык posterior-лар дагы жуык. ** MC Dropout жана VI чын posterior-дын чектелүү көрүнүшүн берет. Эчтеңеден жакшы, чындык эмес, жана эки элеңге да камкордук кептиги жок.
  • **Калибрация керек учурда начарлайды. ** Чын жаңы режимде модель дагы miscalibrated болушу мүмкүн — ал тек deterministic-ке караганда аз miscalibrated болуу кайталанат. Distribution out input-тан белгисиздик баалары өзү distribution out output-тор.
  • **Алеатордук дисперсия эпистемдик сигналды сиңире алат. ** Эгер гетероскедастик баш жетикили икемдүү болсо, ал модель белгисиздикти берилүү шуму катары түшүндүрүүгө үйрөнөт, σepi\sigma_{\text{epi}}-ни нөлгө карай кулатат жана бүтүн бөлүштү тынышсыз бузат. Бул бул посттагы эң маанилүү ийгиликсиздик режими жана ал өзүн билдирбейт. Режимдер арасындагы катышты бақылаңыз; эч качан кыймылбаган катыш — сынган бөлүш, туруктуу рынок эмес.
  • **λ\lambda эркин параметр. ** Tunable knob-ту sizing rule-ге киргизүү — бул overfit sizing rules-тар кантип жасалганы. Ал walk-forward justification-ды талап кылат же 1-де бекитүүсү керек.

Корутунду

Конформал болжоо бул блогка камкордугу бар аралык туурасын камсыз кылат, Kelly бизге sizing rule берет. Эки эле бербеген — неге аралык кен деген суроого жооп. Болжалдык дисперсияны эпистемдик жана алеатордукка бөлүү ага жооп берет, жана жооп — жалпы сыяктуу аракеттеги: рынок шусу төлөнгөн риск, модель билимсиздиги жок, жана sizing бөлүүчү ошент айтуусу керек.

MC Dropout бөлүштү дээрлик тегин кылат — бир сап (inference-де model.train()) кез келген dropout тармагын жуык Байеске айландырат. Терең ансамблдер MMx чыгымы мен жакшыраак калибрлейт. Эки эле да сол асимметриялык бөлүүчүгө σalea2+λσepi2\sigma^2_{\text{alea}} + \lambda \sigma^2_{\text{epi}} камдайт.

λ>1\lambda > 1 чын маанисинде төлейби же жокбу — бул караға жоабы жок эмпирикалык суроо. Жогоруда аталган өлчөөлөр — аны жариялоо баасы.


Адабияттар:

  • 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.
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Рынктан бир кадам алдыда болуңуз

AI соода аналитикасы, рынок талдоолору жана платформа жаңылыктары үчүн биздин жаңылыктар бюллетенине жазылыңыз.

Биз сиздин купуялыгыңызды урматтайбыз. Каалаган убакта жазылымдан чыга аласыз.