← Makalelere geri dön
July 31, 2026
5 dakikalık okuma

Epistemik vs Aleatorik: Bir Getiri Modelinin Bilmediğini Ölçmek

Epistemik vs Aleatorik: Bir Getiri Modelinin Bilmediğini Ölçmek
#bayesian
#uncertainty
#neural-network
#risk
#position-sizing

Bu blogdaki her pozisyon boyutlandırma kuralı belirsizliği tek bir skaler indirger. Kelly varyansla böler. Conformal prediction aralık genişliğiyle böler. Volatility targeting bir GARCH tahminiyle böler. Üçü de doğru ve hepsi trading için önemli olan ayrımı göz ardı eder: gürültülü bir piyasa ile cahil bir model arasındaki fark.

Bu aynı riskler değildir. Piyasa gürültüsü fiyatlandırılır — onu taşıdığınız için ödüllendiğiniz şeydir. Model cehaleti fiyatlandırılmaz, telafi edilmez ve tam olarak avantaj tahmininizin en güvenilmez olduğu durumdur. İkisini eşit şekilde cezalandıran bir boyutlandırma kuralı masada para bırakır.

Bu yazı, bu ayrımı ölçülebilir hale getirmek hakkındadır. Somut olarak:

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

Bunu Kelly paydasında toplam varyans yerine koyun. Makalenin geri kalanı, iki bileşenin nasıl tahmin edileceği (MC Dropout, derin ansambller) ve ayrmanın gerçek verilerde nasıl göründüğüdür.

Tez: İki Belirsizlik İki Yanıt Gerektirir

Epistemik Aleatorik
Kaynak Sınırlı veri / model Verideki doğal gürültü
Azaltılabilir? Evet (daha fazla veri yardımcı olur) Hayır
Trading eylemi Pozisyonu azaltın veya kaçının Stopları genişletin, kaldıraçı düşürün
Sinyal "Bu rejimi görmedim" "Bu piyasa şu an gürültülü"

"Trading eylemi" satırındaki asimetri, tüm argümandır. Yüksek aleatorik varyans, bilinen bilinmeyendir: bunun için boyut belirleyebilir, hedge edebilir ve onu tutmak için bir risk primi bekleyebilirsiniz. Yüksek epistemik varyans, bilinmeyen bilinmeyendir: model dıştiriuyor, ortalama tahmini μ\mu varyans tahmini kadar şüpheli ve kendi parametrelerinizde yanılmanın bağlı olduğu bir prim yoktur.

İkisini karıştıran bir model, ya tanıdık olmayan rejimlerde fazla işlem yapar (epistemik belirsizliği göz ardı eder) ya da tanıdık ama gürültülü olanlarda az işlem yapar (aleatorik belirsizliği fazla cezalandırır). σtotal2\sigma^2_{\text{total}}'a uygulanan standart Kelly, hangi bileşenin baskın olduğuna bağlı olarak ikisini de yapar.

Ayrıştırma

Epistemik belirsizlik, model parametreleri θ\theta üzerindeki belirsizlikten gelir. Tek bir θ\theta^* yerine (maksimum olasılıkta olduğu gibi), bir dağılım p(θD)p(\theta \mid \mathcal{D}) sürdürürüz ve entegre ederiz:

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 üzerinden entegrasyonla induše edilen yayılma epistemiktir. D\mathcal{D} giriş bölgesini kapsayacak şekilde büyüdükçe küçülür.

Aleatorik belirsizlik, veri oluşturma sürecinin koşullu gürültüsüdür. Bir sinir ağında, giriş bağımlı bir varyans salan ikinci bir çıktı başı ile modellenir:

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

Bu heteroscedastik baş, GARCH'ın klasik olarak tahmin ettiği aynı şeyi tahmin eder — gece yüksek ve pik saatlerde düşük durum bağımlı koşullu varyans. Bunun kripto üzerinde empiriklerini istiyorsanız, kripto volatilitesi için GARCH(1,1) bunu uygun şekilde kapsar, including why canlı koşullu tahmin (unconditional sample variance değil) Kelly paydasına aittir. NN başı, aynı niceliğin sadece farklı bir tahminedicisi, ortalama ile ortak olarak fit edilir.

GARCH'ın size veremediği şey diğer terimdir. Bu yazının geri kalanı bunundur.

Zaten Yayınlanmış Olanlara Göre Konumu

İki önceki yazı bitişik alanları kapsar ve önce okunmaya değer, çünkü bu bunları kasıtlı olarak tekrarlamaz:

Takas temizdir. Conformal size bir garanti verir ama bir sayı — aralık genişliği ayrıştırılamaz, bu yüzden neden genişlediğini size söyleyemez. Bayesian yöntemler size bir ayrıştırma verir ama garanti yok — MC Dropout'un aralıkları yaklaşık posterior kadar iyidir. Bu makale ayrıştırmayı satın almak hakkındır; kapsama için muhtemelen conformal yöntemini üstünde tutmalısınız.

Yöntem 1: Varyasyonel Çıkarım (Bayes by Backprop)

Yoğun bir Bayesian ağırlık posterioru, tahmini getiri dağılımını üretmeden önce işlenebilir bir varyasyonel yaklaşıklığa sıkıştırılır

Bayesian bir sinir ağı, ağırlıklar üzerine bir prior p(θ)p(\theta) koyar ve posterioru p(θD)p(Dθ)p(θ)p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta) p(\theta) arar. Normalleştirici, her ağırlık konfigürasyonu üzerinden entegrasyon gerektirir, bu da bir avuçtan fazla parametresi olan her şey için işlenemezdir.

Varyasyonel çıkarım, işlenemez posterioru işlenebilir bir aile qϕ(θ)q_\phi(\theta) ile — genellikle çarpanlanmış bir Gauss qϕ(θ)=jN(θj;μj,σj2)q_\phi(\theta) = \prod_j \mathcal{N}(\theta_j; \mu_j, \sigma_j^2) — değiştirir ve minimize eder:

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

Bu bilinmeyen posterioru içerdiğinden, bunun yerine Evidence Lower Bound'ı maksimize ederiz:

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)

İlk terim qϕq_\phi'yı veriyi açıklamaya iter; ikinci terim onu priorın yakınında tutar. Bayes by Backprop (Blundell et al., 2015) bunu reparameterization trick ile türevlenebilir hale getirir: örnek ϵN(0,I)\epsilon \sim \mathcal{N}(0, I), θ=μ+σϵ\theta = \mu + \sigma \odot \epsilon koyun.

Pratikte VI parametre sayısını ikiye katlar, gradient varyansını yükseltir (her forward pass farklı ağırlıklar kullanır) ve ortalama alan varsayımı ağırlık korelasyonlarını göz ardı eder, bu genellikle epistemik belirsizliği gönderir. Zaten eğitilmiş deterministik bir modele sahip olduğunuz bir trading yığını için, aşağıdaki iki daha ucuz yöntem genellikle daha iyi giriş noktasıdır.

Yöntem 2: MC Dropout

Dropout özellikli tekrarlayan forward passes, anlaşmazlıkları epistemik belirsizlik oluşturan farklı tahminlere dallanır

Gal ve Ghahramani (2016), dropout ile eğitilen ve dropout test zamanında hala aktifken değerlendirilen bir ağın, derin bir Gauss sürecinde yaklaşık varyasyonel çıkarım prosedürü olduğunu gösterdi. Dropout zaten alt ağlar üzerinde bir dağılım induše eder; çıkarım sırasında açık tutmak ve TT forward pass çalıştırmak, bu örtük posteriordan örnekler.

Bu blogun başka hiçbir yerinde yok. Burada yayınlanan kod dropout'u sadece eğitim zamanı düzenleyicisi olarak kullanır (spread modelleme, TFT dropout=0.1–0.3'te). Çıkarım sırasında açık tutmak, tamamen farklı bir anlama gelen tek satırlık bir değişikliktir.

Tahminsel İstatistikler

TT stokastik forward pass {y^t}t=1T\{\hat{y}_t\}_{t=1}^{T} ve pass başına varyanslar σ^t2(x)\hat{\sigma}_t^2(x) ürettiğinde:

Tahminsel ortalama:

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

Epistemik (pass arasındaki anlaşmazlık):

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

Aleatorik (tahmin edilen gürültünün ortalaması):

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

Ayrıştırma tam olarak toplam varyans yasasıdır: koşullu ortalamanın varyansı artı koşullu varyansın ortalaması. Toplam tahminsel varyansları toplamlarıdır.

PyTorch Uygulaması

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

class MCDropoutNet(nn.Module):
    """
    Belirsizlik tahmini için MC Dropout içeren getiri tahmini ağı.
    Hem tahmin edilen ortalamayı hem de log-varyansı (aleatorik) çıkarır.
    """
    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)        # tahmin edilen getiri
        self.head_logvar = nn.Linear(hidden_dim, 1)    # log(aleatorik varyans)

    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):
    """Giriş bağımlı varyansı öğrenilmiş bir Gaussian için negatif 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 çıkarımı: dropout AÇIK tutun, T forward pass toplayın,
    tahminsel varyansı epistemik ve aleatorik parçalara ayırın.
    """
    model.train()  # eval() DEĞİL -- bu dropout'u aktif tutan şeydir
    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)              # pass üzerinden varyans
    aleatoric_var = log_vars.exp().mean(dim=0)  # pass üzerinden beklenti

    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),
    }

Eğitim, varyans başına bir anlam kazandıran heteroscedastic kayıp fonksiyonunu kullanır. Kendini düzenleyen yapıya dikkat edin: 0.5 * precision * (target - mu)**2 terimi küçük varyans ister, 0.5 * log_var terimi onu cezalandırır ve denge noktası koşullu gürültü seviyesidir.

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()

Yöntemi sessizce öldüren gotcha: mc_predict içinde model.eval() çağırmak. Bu dropout'u devre dışı bırakır, her pass aynı değeri döndürür, epistemic_var tamamen sıfıra çöker ve boyutlandırma kuralınız sessizce aleatorik varyans üzerinde düz Kelly'ye döner. Hata vermeden başarısız olur. Çıkarım yolunuzda epistemic_var > 0 assert edin.

Forward Pass Sayısını Seçmek

  • T=30T = 30: kararlı bir ortalama için mantıklı alt sınır
  • T=100T = 100: ortalama ve varyans için çalışabilir varsayılan
  • T=500+T = 500{+}: kuyruk niceliklerine ihtiyacınız yoksa azalan getiriler

Yöntem 3: Derin Ansambller

Beş bağımsız eğitilmiş sinir ağı, tahminlerini birleştirirken anlaşmazlıkları bir epistemik halo oluşturur

Lakshminarayanan et al. (2017), farklı rastgele başlatmalardan MM bağımsız ağı eğitir ve toplar. Biçimsel olarak Bayesian olmamasına rağmen, derin ansambller belirsizlik kalibrasyonu benchmarklarında daha prensipli yöntemleri consistently yener.

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

Üyeler arasındaki anlaşmazlık epistemik tahminindedir. Ansambller bu blogun başka yerlerinde aggregation cihazları olarak görünür — anomali tespiti, HMM rejim tespiti, conformal'ın EnbPI block bootstrap — ama hiçbir zaman üyeler arası yayılma yoluyla bir belirsizlik tahminedicisi olarak değil. Kullanım buradadır.

Ansamb Uygulaması

Çeşitlilik bağımsız eğitimden gelir, MM nesne inşa etmekten değil. Eğitilmemiş veya aynı eğitilmiş üyelerin ansambli ya gürültü ya da sıfır epistemik varyans döndürür:

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)          # her üye için farklı başlangıç
            self.models.append(
                MCDropoutNet(input_dim, hidden_dim, dropout_p=0.0)
            )

    def fit(self, train_loader, epochs: int = 200, lr: float = 1e-3):
        """Her üye bağımsız olarak eğitilir. Çeşitlilik buradan gelir
        -- farklı başlangıç, farklı karıştırma sırası. Bunu atlamak
        epistemic_var == 0 (aynı üyeler) veya saf gürültü (eğitilmemiş) verir."""
        for seed, model in enumerate(self.models):
            torch.manual_seed(1000 + seed)   # farklı karıştırma/dropout akışı
            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()                     # burada doğru: dropout sampling yok
            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)   # üyeler ARASI yayılma
        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()'in DeepEnsemble.predict içinde doğru ve mc_predict içinde yanlış olduğuna dikkat edin. Stokastisite kaynağı farklıdır: ansambller bağımsız eğitimden alır, MC Dropout canlı dropout maskelerinden alır.

Takaslar: MC Dropout vs Derin Ansambller

MC Dropout Derin Ansambller
Eğitim maliyeti 1x (tek model) MMx (MM model)
Çıkarım maliyeti TT forward pass MM forward pass
Bellek 1x parametre MMx parametre
Belirsizlik kalitesi Epistemiyi underestimate etme eğiliminde Genel olarak daha iyi kalibre edilmiş
Uygulama kolaylığı Önemsiz (bayrağı çevirin) Önemsiz (MM model eğitin)
Paralellik Ardışık passlar (aynı model) Utanmaz derecede paralel

Pragmatik bir hibrit: küçük bir ansamb (M=35M = 3{-}5) eğitin, burada her üye ayrıca MC Dropout kullanır, hem inter-model anlaşmazlığını hem de intra-model stokastisiteyi yakalar.

Ödül: Asimetrik Boyutlandırma

Aleatorik gürültü risk zarfını genişletirken epistemik belirsizlik pozisyon boyutlandırma açıklığını daraltır ve kaçınma bölgesi oluşturur

İşte gerçek katkı. Gaussian Kelly f=μ/σ2f^* = \mu / \sigma^2'dir; türetme, büyüme parabolü, drawdown olasılık tablosu ve fractional yerine tam Kelly çalıştırmanın dört nedeni — hepsi Stratejiler için Kelly Kriteri'nde ve burada tekrar edilmez. f=μ/σ2f^* = \mu / \sigma^2'yi quarter-Kellow fraction olarak verilen alın.

Değişiklik paydadır. Toplam tahminsel varyans yerine:

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

λ>1\lambda > 1 için argüman: aleatorik varyans piyasanın gürültüsüdür, fiyatlandırılmıştır ve onu taşımak bir stratejinin kazanma yoludur. Epistemik varyans sizin cehaletinizdir — buna bağlı prim yoktur ve daha da kötüsü, μ\mu tahmininizin yanlış olması ile korelizedir. σepi\sigma_{\text{epi}} büyük olduğunda, Kelly'nın paydası ile aynı anda güvenilmezdir, bu yüzden boyutlandırma hatası bileşir. Piyasa gürültüsüne göre süper-lineer cezalandırmak, bunun doğrudan ifadesidir.

def uncertainty_adjusted_position_size(
    pred_mean: float,
    epistemic_std: float,
    aleatoric_std: float,
    max_position: float = 1.0,
    lam: float = 2.0,                   # epistemik ceza; validation'da ayarlayın
    max_epi_ratio: float = 0.5,         # bu epi/alea oranının üstünde kaçının
    base_kelly_fraction: float = 0.25,
) -> float:
    """Epistemik varyans aleatorikten daha sert cezalandırılan Kelly 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))

Kapı bir notu hak eder. Bir güven eşikinin altında pozisyonları sıfırlamak burada yeni değil — conformal makalesi genel no-trade filtresini et=μ^/wte_t = |\hat{\mu}| / w_t ve min_edge eşiği olarak belirtir ve kodlar, including how to pick the threshold and the geometric reading of an interval straddling zero. Bu machinery için conformal prediction bkz. Yeni olan şey paydadır: σepi/σalea\sigma_{\text{epi}} / \sigma_{\text{alea}} üzerindeki kapım özellikle model kendi parametrelerinde piyasa gürültülü olduğundan daha kafayı karıştırdığında ateşler — toplam belirsizlik gating'inin tespit edemeyeceği bir durum, çünkü sakin ama yabancı bir rejim düşük toplam varyansa ve kötü bir epistemik oranına sahip olabilir.

Kalibrasyon: Bunu Teslim Edin

Bir belirsizlik tahmini sadece kalibre edilmişse yararlıdır: nominal %95 aralığı ~%95 zaman gerçeği içermelidir. Buraya kendi Gaussian-quantile可靠性 kontrolünüzü yapmayın — kalın kuyruklu getiri residuals üzerinde parametrik bir aralık, tam olarak conformal prediction var olma gereği duyan başarısızlık modudur ve arkasında sonlu örnek garantisi ile çalışan bir evaluate() shipping. TFT postu quantile heads için aynı noktayı yapar.

Post-hoc rescaling (σ~=ασ+β\tilde{\sigma} = \alpha \sigma + \beta bir validation set üzerinde fit) ucuz bir düzeltmedir ve Adaptive Conformal Inference'ın daha zayıf kuzenidir, ki bu statik bir rescale yerine uzun vadeli kapsama bound ile online miscoverage level αt\alpha_t sürdürür. ACI daha güçlü seçenektir; lineer rescale tercih etmenin tek nedeni, ACI'nin tek genişliğinin yapmadığı epistemik/aleatorik oranı korumasıdır.

Yayınlamadan Önce Ölçülmesi Gerekenler

Yukarıdaki yöntemler kurulmuştur. Ayrıştırmanın trading'de bir şey satın aldığı iddiası değildir ve bu blog argümana dayalı boyutlandırma kuralları yayınlamaz. Bar:

1. Dataset ve hedef. Enstrümanı, bar boyutunu, açık tarih aralığını, özellik setini ve tahmin hedefini adlandırın.

2. Ayrıştırma kendisi. Toplam tahminsel varyansın ne kadarının epistemik vs aleatorik olduğu ve bu oranının adlandırılmış sakin bir pencere ile adlandırılmış volatil bir pencere arasında nasıl hareket ettiği. Bu para tablosu ve henüz yok. Falsify değeri worth hipotezi: oran realized volatiliteden önce pike, çünkü yabancılık türbülansı önceden gelir.

3. Coverage vs conformal. MC Dropout aralıklarının ölçülen out-of-sample coverage'ı nominale karşı, aynı verilerde yayınlanmış makalenin split-conformal aralıklarına kıyasla. Bu head-to-head kendisi yeni bir sonuç ve iki post arasındaki doğal köprüdir.

4. λ\lambda bir şey satın alıyor mu? Validation üzerinde epistemik cezasını sweep ve PnL ve max drawdown'u λ=1\lambda = 1 baseline'a karşı raporlayın. Hiçbir şey satın almıyorsa, öyle deyin — The Honest Negative bu sonuç için şablondur ve yayınlanabilir bir sonuçtur.

5. Çıkarım maliyeti. Her TT'de hedef donanım üzerinde ölçülmüş.

Buradaki her değerlendirme walk-forward optimization disiplini altında çalışır — λ\lambda bir hiperparametredir ve full sample üzerinde ayarlanmış bir λ\lambda bir sonuç değildir.

Prodüksiyon İçin Pratik İpuçları

1. Prior'ı ısıtın. Varyasyonel çıkarım ile, varyasyonel ortalamayı rastgele yerine önceden eğitilmiş bir deterministik ağdan başlatın. Tipik olarak yakınsama süresini yarıya indirir.

2. Varyans çöküşünü izleyin. Öğrenilen varyanslar σj\sigma_j neredeyse sıfıra sürebilir, BNN'yi sessizce deterministik bir ağa revert eder. Eğitim sırasında ortalama σj\sigma_j izleyin; gerekirse KL annealing ekleyin.

3. Sabit bir validation set üzerinde değil, rolling basis üzerinde yeniden kalibre edin. Piyasalar dengesizdir ve bir kez fit edilmiş kalibrasyon decay olur. Ya walk-forward disiplini altında bir rolling window üzerinde retrain yapın ya da ACI model staleness'i online absorbe etsin — conformal postu retraining frequency trade-off'unu doğrudan kapsar.

4. Ansamb çeşitliliği önemlidir. Farklı seedler, farklı shuffles, opsiyonel olarak her üye için farklı hiperparametreler. Başlatma çeşitliliği ansaml kalitesinin primary driver'ıdır, bu yüzden yukarıdaki fit() döngüsü optional değildir.

5. Ayrıştırmayı loglayın, sadece total değil. Her iki bileşeni de realized outcomes ile birlikte saklayın. Bunun olmadan, incelemede önemli olan tek soruyu yanıtlayamazsınız: sizer pozisyonu kestiğinde, bu piyasa gürültülü olduğu için mi yoksa model kaybolduğu için mi — ve o doğru muydu?

6. Belirsizlik bir özellik olarak. Rolling epistemik istatistikleri kendileri drawdown'lar için predictive olabilir. Plausible, ölçülmemiş ve ayrı bir post worth.

Sınırlamalar ve Samimi Çekinceler

  • Yaklaşık posteriorlar hala yaklaşıktır. MC Dropout ve VI gerçek posterior'un sınırlı bir görünümünü verir. Hiçbir şeyden iyi, ground truth değil ve her ikisine de kapsama garantisi gelmez.
  • Kalibrasyon ihtiyaç duyduğunuzda bozulur. Gerçekten yeni bir rejimde model yine de miscalibrated olabilir — sadece deterministik olandan daha az miscalibrated olma eğilimindedir. Out-of-distribution input'tan gelen belirsizlik tahminleri kendileri out-of-distribution outputlardır.
  • Aleatorik varyans epistemik sinyali absorbe edebilir. Heteroscedastik baş yeterince esnekse, model belirsizliğini veri gürültüsü olarak açıklamayı öğrenir, σepi\sigma_{\text{epi}}'yi sıfıra çöker ve sessizce tüm ayrıştırmayı yener. Bu, bu yazıdaki en önemli başarısızlık modudur ve kendini duyurmaz. Rejimler arasında oranı izleyin; asla hareket etmeyen bir oran, kırık bir ayrıştırmadır, kararlı bir piyasa değil.
  • λ\lambda serbest bir parametredir. Tuning edilebilir bir düğmeyi boyutlandırma kuralına sokmak, overfit boyutlandırma kurallarının nasıl oluşturulduğudur. Walk-forward justification'a ihtiyacı vardır veya 1'de sabitlenmelidir.

Sonuç

Conformal prediction zaten bu bloga kapsama garantisi olan aralık genişliklerini ve Kelly zaten bir boyutlandırma kuralını verir. Ne de neden aralığın geniş olduğuna cevap vermez. Tahminsel varyansı epistemik ve aleatorik parçalara ayırmak buna cevap verir ve cevap total'in olmadığı şekilde eylem yapılabilir: piyasa gürültüsü telafi edilen risk, model cehaleti değildir ve boyutlandırma paydası bunu söylemelidir.

MC Dropout ayrıştırmayı neredeyse bedavaya yapar — çıkarımda tek bir satır (model.train()) her dropout ağını yaklaşık bir Bayesian'e dönüştürür. Derin ansambller MMx pahasındadır ve daha iyi kalibre edilir. İkisi de aynı asimetrik payda σalea2+λσepi2\sigma^2_{\text{alea}} + \lambda \sigma^2_{\text{epi}} besler.

λ>1\lambda > 1'in gerçekten ödeme yapıp yapmadığı, bu taslak henüz yanıtlamadığı ampirik bir sorudur. Yukarıda listelenen ölçümler yayınlamanın bedelidir.


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.
Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

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

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.