← Zurück zu den Artikeln
July 31, 2026
5 min read

Epistemisch vs Aleatorisch: Was ein Rücklaufmodell nicht weiß

Epistemisch vs Aleatorisch: Was ein Rücklaufmodell nicht weiß
#bayesian
#uncertainty
#neural-network
#risk
#position-sizing

Jede Positionsgrößen-Regel in diesem Blog reduziert Unsicherheit auf einen einzigen Skalar. Kelly teilt durch Varianz. Konformale Vorhersage teilt durch Intervallbreite. Volatilitäts-Targeting teilt durch eine GARCH-Prognose. Alle drei sind korrekt, und alle drei verwerfen einen Unterschied, der für den Handel wichtig ist: den Unterschied zwischen einem rauschenden Markt und einem unwissenden Modell.

Das sind nicht dieselben Risiken. Marktgeräusche sind bepreist — wofür Sie entschädigt werden. Modellunwissen ist nicht bepreist, nicht entschädigt, und genau der Zustand, in dem Ihre Edge-Schätzung am wenigsten vertrauenswürdig ist. Eine Positionsgrößen-Regel, die beide gleich bestraft, lässt etwas auf dem Tisch.

Dieser Beitrag handelt davon, diese Aufteilung messbar zu machen. Konkret:

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

Setzen Sie das in den Kelly-Nenner anstelle der Gesamtvarianz. Der Rest des Artikels handelt davon, wie man die beiden Komponenten schätzt (MC Dropout, Deep Ensembles) und wie die Aufteilung bei echten Daten aussieht.

Die These: Zwei Unsicherheiten erfordern zwei Reaktionen

Epistemisch Aleatorisch
Quelle Begrenzte Daten / Modell Angeborene Geräusche in Daten
Reduzierbar? Ja (mehr Daten helfen) Nein
Handelsaktion Position reduzieren oder verzichten Stops weiter, Hebel reduzieren
Signal "Ich habe dieses Regime nicht gesehen" "Dieser Markt ist gerade rauschend"

Die Asymmetrie in der Zeile "Handelsaktion" ist das gesamte Argument. Hohe aleatorische Varianz ist ein bekanntes Unbekanntes: Sie können dafür dimensionieren, es absichern und erwarten, eine Risikoprämie zu erhalten. Hohe epistemische Varianz ist ein unbekanntes Unbekanntes: Das Modell extrapoliert, seine Mittelwertschätzung μ\mu ist ebenso verdächtig wie seine Varianzschätzung, und es ist keine Prämie verbunden, mit Ihren eigenen Parametern falsch zu liegen.

Ein Modell, das beides vermischt, handelt entweder zu viel in unbekannten Regimen (ignoriert epistemische Unsicherheit) oder zu wenig in vertrauten aber rauschenden (bestraft aleatorische Unsicherheit zu stark). Standard-Kelly, angewendet auf σtotal2\sigma^2_{\text{total}}, tut beides, je nachdem, welche Komponente dominiert.

Die Zerlegung

Epistemische Unsicherheit stammt aus Unsicherheit über die Modellparameter θ\theta. Anstatt eines einzigen θ\theta^* (wie bei der Maximum Likelihood) halten wir eine Verteilung p(θD)p(\theta \mid \mathcal{D}) auf und integrieren:

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

Die durch Integration über θ\theta induzierte Streuung ist epistemisch. Sie schrumpft, wenn D\mathcal{D} wächst, um den Eingabebereich abzudecken.

Aleatorische Unsicherheit ist das konditionale Rauschen des datenerzeugenden Prozesses. In einem neuronalen Netz wird es durch einen zweiten Ausgabekopf modelliert, der eine eingabeabhängige Varianz aussendet:

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

Dieser heteroskedastische Kopf schätzt dasselbe Objekt, das GARCH klassisch schätzt — zustandsabhängige konditionale Varianz, die nachts hoch und in Stoßzeiten niedrig ist. Wenn Sie die Empiriken dieses Objekts bei Krypto wollen, deckt GARCH(1,1) für Krypto-Volatilität es ordnungsgemäß ab, einschließlich warum die Live-Konditionalprognose (nicht die bedingungslose Stichprobenvarianz) in den Kelly-Nenner gehört. Der NN-Kopf ist nur ein anderer Schätzer derselben Größe, gemeinsam mit dem Mittelwert angepasst.

Was GARCH Ihnen nicht geben kann, ist der andere Term. Dafür ist der Rest dieses Beitrags.

Wo dies relativ zu bereits Veröffentlichtem steht

Zwei vorherige Beiträge decken benachbarte Gebiete ab und sollten zuerst gelesen werden, da dieser sie absichtlich nicht wiederholt:

  • Konformale Vorhersage für risikobewusste Positionsgrößen gibt Ihnen Intervalle mit einer Endstichproben-Deckungsgarantie, keine Verteilungsannahme, plus Inverse-Breiten-Dimensionierung und einen Edge-Ratio-No-Trade-Filter. Es ist das stärkere Werkzeug, wenn Sie nur ein korrekt dimensioniertes Intervall wollen.
  • Temporal Fusion Transformers senden Quantile direkt und warnen bereits, dass Pinball-Loss-Quantile nicht automatisch out-of-sample kalibriert sind.

Der Trade-off ist sauber. Konformal gibt eine Garantie, aber eine Zahl — die Intervallbreite ist nicht zerlegbar, kann also nicht sagen, warum sie breiter wurde. Bayes-Methoden geben eine Zerlegung, aber keine Garantie — MC-Dropout-Intervalle sind nur so gut wie die approximative posterior. Dieser Beitrag geht um den Kauf der Zerlegung; Sie sollten wahrscheinlich konformal darüber für die Deckung behalten.

Methode 1: Variationale Inferenz (Bayes by Backprop)

Eine dichte Bayes-Gewicht-posterior wird in eine handhabbare approximative Verteilung komprimiert, bevor eine prädiktive Rücklaufverteilung erzeugt wird

Ein Bayes'sches neuronales Netz platziert ein prior p(θ)p(\theta) über Gewichte und sucht die posterior p(θD)p(Dθ)p(θ)p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta) p(\theta). Der Normalisierer erfordert die Integration über jede Gewichtskonfiguration, was für alles mit mehr als einer Handvoll Parameter untragbar ist.

Variationale Inferenz ersetzt die untragbare posterior durch eine handhabbare Familie qϕ(θ)q_\phi(\theta) — typischerweise ein faktorisiertes Gaussian qϕ(θ)=jN(θj;μj,σj2)q_\phi(\theta) = \prod_j \mathcal{N}(\theta_j; \mu_j, \sigma_j^2) — und minimiert

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

Da dies die unbekannte posterior beinhaltet, maximieren wir stattdessen die 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)

Der erste Term drückt qϕq_\phi zur Datenerklärung; der zweite hält es nah am prior. Bayes by Backprop (Blundell et al., 2015) macht dies differenzierbar mit dem Reparameterisierungstrick: stichproben ϵN(0,I)\epsilon \sim \mathcal{N}(0, I), setzen θ=μ+σϵ\theta = \mu + \sigma \odot \epsilon.

In der Praxis verdoppelt VI die Parameteranzahl, erhöht die Gradientenvarianz (jeder Vorwärtsdurchlauf verwendet andere Gewichte), und die Mean-Field-Annahme ignoriert Gewichtskorrelationen, was dazu neigt, epistemische Unsicherheit zu unterschätzen. Für einen Handels-Stack, wo Sie bereits ein trainiertes deterministisches Modell haben, sind die zwei billigeren Methoden unten normalerweise der bessere Einstiegspunkt.

Methode 2: MC Dropout

Wiederholte dropout-aktivierte Vorwärtsdurchläufe fächern sich in verschiedene Vorhersagen auf, deren Uneinigkeit die epistemische Unsicherheit bildet

Gal und Ghahramani (2016) zeigten, dass ein mit dropout trainiertes Netz, mit dropout noch aktiv zur Testzeit bewertet, ein approximatives variationsinferenzverfahren in einem tiefen Gauß-Prozess ist. Dropout induziert bereits eine Verteilung über Teilnetze; es während Inferenz aktiv zu lassen und TT Vorwärtsdurchläufe zu laufen, stammt aus dieser impliziten posterior.

Das gibt es nirgendwo sonst in diesem Blog. Veröffentlichter Code hier verwendet dropout nur als Trainingszeit-Regularisierer (Spread-Modellierung, TFT bei dropout=0.1–0.3). Es während Inferenz aktiv zu lassen, ist eine einzeilige Änderung mit einer völlig anderen Bedeutung.

Prädiktive Statistiken

Gegeben TT stochastische Vorwärtsdurchläufe, die {y^t}t=1T\{\hat{y}_t\}_{t=1}^{T} und durchlaufspezifische Varianzen σ^t2(x)\hat{\sigma}_t^2(x) produzieren:

Prädiktiver Mittelwert:

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

Epistemisch (Uneinigkeit zwischen Durchläufen):

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

Aleatorisch (Mittelwert des vorhergesagten Rauschens):

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

Die Zerlegung ist genau das Gesetz der totalen Varianz: Varianz des konditionalen Mittelwerts plus Mittelwert der konditionalen Varianz. Totale prädiktive Varianz ist ihre Summe.

PyTorch-Implementierung

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

class MCDropoutNet(nn.Module):
    """
    Rücklaufvorhersagenetzwerk mit MC Dropout für Unsicherheitsschätzung.
    Gibt sowohl vorhergesagten Mittelwert als auch Log-Varianz (aleatorisch) aus.
    """
    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)        # vorhergesagter Rücklauf
        self.head_logvar = nn.Linear(hidden_dim, 1)    # log(aleatorische Varianz)

    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 für ein Gaussian mit gelernter, eingabeabhängiger Varianz."""
    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-Inferenz: dropout aktiv lassen, T Vorwärtsdurchläufe sammeln,
    prädiktive Varianz in epistemische und aleatorische Teile zerlegen.
    """
    model.train()  # NICHT eval() — das hält dropout aktiv
    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 über Durchläufe
    aleatoric_var = log_vars.exp().mean(dim=0)  # E über Durchläufe

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

Training verwendet die heteroskedastische Verlustfunktion, was den Varianzkopf bedeutungsvoll macht. Beachten Sie die selbstregulierende Struktur: der 0.5 * precision * (target - mu)**2-Term will kleine Varianz, der 0.5 * log_var-Term bestraft sie, und der Balancepunkt ist das konditionale Rauschniveau.

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

Der Stolperstein, der die Methode lautlos tötet: Aufruf von model.eval() innerhalb mc_predict. Deaktiviert dropout, jeder Durchlauf gibt den identischen Wert zurück, epistemic_var fällt auf genau null, und Ihre Dimensionsregel kehrt lautlos zu normalem Kelly auf aleatorischer Varianz zurück. Es scheitert ohne Fehler. Bestätigen Sie, dass epistemic_var > 0 in Ihrem Inferenzpfad.

Wahl der Anzahl der Vorwärtsdurchläufe

  • T=30T = 30: vernünftige Untergrenze für einen stabilen Mittelwert
  • T=100T = 100: praktische Standardeinstellung für Mittelwert und Varianz
  • T=500+T = 500{+}: abnehmende Rendite, es sei denn, Sie brauchen Quantile am Schwanz

Methode 3: Deep Ensembles

Fünf unabhängig trainierte neuronale Netze kombinieren ihre Vorhersagen, während ihre Uneinigkeit einen epistemischen Halo bildet

Lakshminarayanan et al. (2017) trainieren MM unabhängige Netze aus verschiedenen zufälligen Initialisierungen und aggregieren. Obwohl nicht formell Bayes'sch, schlagen Deep Ensembles konsistent principledere Methoden bei Unsicherheitskalibrierungs-Benchmarks.

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

Die Uneinigkeit zwischen Mitgliedern ist die epistemische Schätzung. Ensembles erscheinen anderswo in diesem Blog als Aggregationsgeräte — Anomalieerkennung, HMM-Regime-Erkennung, konformals EnbPI-Block-Bootstrap — aber nie als Unsicherheitsschätzer via inter-member Streuung. Das ist die Verwendung hier.

Ensemble-Implementierung

Vielfalt kommt vom unabhängigen Training, nicht vom Konstruieren von MM Objekten. Ein Ensemble von untrainierten oder identisch trainierten Mitgliedern gibt entweder Rauschen oder null epistemische Varianz zurück:

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)          # verschiedene Init pro Mitglied
            self.models.append(
                MCDropoutNet(input_dim, hidden_dim, dropout_p=0.0)
            )

    def fit(self, train_loader, epochs: int = 200, lr: float = 1e-3):
        """Jedes Mitglied wird unabhängig trainiert. Hier kommt die Vielfalt her
        -- verschiedene Init, verschiedene Shuffle-Reihenfolge. Dies zu überspringen
        ergibt epistemic_var == 0 (identische Mitglieder) oder reines Rauschen (untrainiert)."""
        for seed, model in enumerate(self.models):
            torch.manual_seed(1000 + seed)   # verschiedener Shuffle/Dropout-Strom
            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()                     # korrekt hier: kein 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)   # Streuung ÜBER Mitglieder
        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(),
        }

Beachten Sie, dass model.eval() in DeepEnsemble.predict korrekt und in mc_predict falsch ist. Die Stochastizitätsquelle unterscheidet sich: Ensembles beziehen sie vom unabhängigen Training, MC Dropout von live Dropout-Masken.

Trade-offs: MC Dropout vs Deep Ensembles

MC Dropout Deep Ensembles
Trainingskosten 1x (einzelnes Modell) MMx (MM Modelle)
Inferenzkosten TT Vorwärtsdurchläufe MM Vorwärtsdurchläufe
Speicher 1x Parameter MMx Parameter
Unsicherheitsqualität Neigt zur Unterschätzung epistemisch Besser kalibriert insgesamt
Implementierungseinfachheit Trivial (Flag umdrehen) Trivial (trainiere MM Modelle)
Parallelismus Sequentielle Durchläufe (gleiches Modell) Embarrassingly parallel

Ein pragmatischer Hybrid: trainieren Sie ein kleines Ensemble (M=35M = 3{-}5), wobei jedes Mitglied auch MC Dropout verwendet, um sowohl Inter-Modell-Unvereinigkeit als auch Intra-Modell-Stochastizität zu erfassen.

der Lohn: Asymmetrische Dimensionierung

Aleatorisches Rauschen weitet die Risiko-Hülle, während epistemische Unsicherheit die Dimensionsgröße-Öffnung verengt und eine Verzicht-Zone erstellt

Hier ist der eigentliche Beitrag. Gauß'sches Kelly ist f=μ/σ2f^* = \mu / \sigma^2; die Ableitung, die Wachstumsparabel, die Drawdown-Wahrscheinlichkeitstabelle und die vier Gründe für fraktioniertes statt volles Kelly sind alle in Das Kelly-Kriterium für Strategien und werden nicht wiederholt. Nehmen Sie f=μ/σ2f^* = \mu / \sigma^2 bei einem Viertel-Kelly-Anteil als gegeben.

Die Änderung ist der Nenner. Statt der totalen prädiktiven Varianz:

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

Das Argument für λ>1\lambda > 1: aleatorische Varianz ist das Rauschen des Marktes, sie ist bepreist, und sie zu tragen ist, wie eine Strategie verdient. Epistemische Varianz ist Ihre Unwissenheit — sie trägt keine Prämie, und schlimmer noch, sie ist korreliert mit Ihrer μ\mu-Schätzung falsch zu sein. Wenn σepi\sigma_{\text{epi}} groß ist, ist der Zähler von Kelly genauso unzuverlässig wie der Nenner, also vervielfacht sich der Dimensionsfehler. Sie überlinear gegenüber Marktrauschen zu bestrafen, ist der direkte Ausdruck dessen.

def uncertainty_adjusted_position_size(
    pred_mean: float,
    epistemic_std: float,
    aleatoric_std: float,
    max_position: float = 1.0,
    lam: float = 2.0,                   # epistemische Strafe; auf Validierung abstimmen
    max_epi_ratio: float = 0.5,         # verzichten über diesem epi/alea-Verhältnis
    base_kelly_fraction: float = 0.25,
) -> float:
    """Kelly-Dimensionierung, wobei epistemische Varianz stärker bestraft wird als aleatorische."""
    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))

Das Tor verdient eine Notiz. Nullsetzen von Positionen unter einem Vertrauensschwellenwert ist hier nicht neu — der konformale Artikel spezifiziert und codiert das allgemeine No-Trade-Filter als et=μ^/wte_t = |\hat{\mu}| / w_t mit einem min_edge-Schwellenwert, einschließlich wie man den Schwellenwert wählt und die geometrische Lesung eines Intervalls, das null streift. Siehe konformale Vorhersage für diese Maschinerie. Was neu ist, ist der Nenner: Toring auf σepi/σalea\sigma_{\text{epi}} / \sigma_{\text{alea}} feuert spezifisch, wenn das Modell mehr über seine eigenen Parameter verwirrt ist als der Markt rauschend — ein Zustand, den total-Unsicherheits-Toring nicht erkennen kann, denn ein ruhiges aber unvertrautes Regime kann niedrige totale Varianz und ein schreckliches epistemisches Verhältnis haben.

Kalibrierung: Das abgeben

Eine Unsicherheitsschätzung ist nur nützlich, wenn kalibriert: Ein nominelles 95%-Intervall sollte die Wahrheit ~95% der Zeit enthalten. Rollen Sie hier nicht Ihre eigene Gauß-Quantil-Zuverlässigkeitsprüfung — ein parametrisches Intervall auf fett-schwänzigen Rücklaufresten ist genau der Versagensmodus, den konformale Vorhersage zu vermeiden existiert, und sie versendet ein funktionierendes evaluate(), das Ziel gegen empirische Deckung mit einer Endstichproben-Garantie dahinter meldet. Der TFT-Beitrag macht denselben Punkt für Quantil-Köpfe.

Post-hoc-Reskalierung (σ~=ασ+β\tilde{\sigma} = \alpha \sigma + \beta auf einem Validierungssatz angepasst) ist die billige Korrektur, und sie ist der schwächere Vetter des Adaptiven Konformalen Inferenz, der ein Online-Fehlanpassungsniveau αt\alpha_t mit einer Langlauf-Deckungsschranke statt einer statischen Reskalierung aufrechterhält. ACI ist die stärkere Option; der einzige Grund, lineare Reskalierung zu bevorzugen, ist, dass sie das epistemische/aleatorische Verhältnis bewahrt, was ACIs einzelne Breite nicht tut.

Was gemessen werden muss, bevor dies veröffentlicht wird

Die obigen Methoden sind etabliert. Die Behauptung, dass die Aufteilung im Handel etwas kauft, ist nicht, und dieser Blog veröffentlicht keine Dimensionsregeln auf Argument allein. Die Latte:

1. Datensatz und Ziel. Nennen Sie das Instrument, Balkengröße, expliziten Datumsbereich, Feature-Satz und Vorhersageziel.

2. Die Aufteilung selbst. Welcher Anteil der totalen prädiktiven Varianz ist epistemisch vs aleatorisch, und wie sich dieses Verhältnis zwischen einem benannten ruhigen Fenster und einem benannten volatilen bewegt. Das ist das Geld-Diagramm, das noch nicht existiert. Die Hypothese, die es wert ist, falsifiziert zu werden: Das Verhältnis spitzt vor der realisierten Volatilität, da Unvertrautheit Turbulenz vorangeht.

3. Deckung vs konformal. Messene Out-of-Sample-Deckung von MC-Dropout-Intervallen gegen nominell, verglichen mit split-konformalen Intervallen aus dem veröffentlichten Artikel auf denselben Daten. Dieses direkte Duell ist selbst ein neues Ergebnis und die natürliche Brücke zwischen den beiden Beiträgen.

4. Kauft λ\lambda etwas? Streichen Sie die epistemische Strafe auf Validierung und melden Sie PnL und maximalen Drawdown gegen die λ=1\lambda = 1-Baseline. Wenn es nichts kauft, sagen Sie so — Das ehrliche Negative ist die Vorlage für dieses Ergebnis und ist ein veröffentlichbares Ergebnis.

5. Inferenzkosten. Gemessen, auf der Zielhardware, bei jedem TT.

Jede Bewertung hier läuft unter Walk-Forward-Optimierung Disziplin — λ\lambda ist ein Hyperparameter, und ein λ\lambda, der auf der vollen Stichprobe abgestimmt ist, ist kein Ergebnis.

Praktische Tipps für die Produktion

1. Warm-up das prior. Mit variationsinferenz initialisieren Sie den variationsmittel aus einem vortrainierten deterministischen Netzwerk statt zufällig. Halbiert typischerweise die Konvergenzzeit.

2. Achten Sie auf Varianz-Kollaps. Gelernte Varianzen σj\sigma_j können auf fast null abdriften, lautlos das BNN zu einem deterministischen Netzwerk zurückkehren. Überwachen Sie den Mittelwert σj\sigma_j während des Trainings; fügen Sie KL-Annealing bei Bedarf hinzu.

3. Reklaibrieren Sie auf rollender Basis, nicht auf einem festen Validierungssatz. Märkte sind nicht stationär und eine einmal angepasste Kalibrierung verfällt. Entweder auf einem rollenden Fenster unter Walk-Forward Disziplin neu trainieren oder ACI Modstaleness online absorbieren lassen — der konformale Beitrag deckt den Retrain-Frequenz-Trade-off direkt ab.

4. Ensemble-Vielfalt matters. Verschiedene seeds, verschiedenes shuffling, optional verschiedene Hyperparameter pro Mitglied. Initialisierungs-Vielfalt ist der primäre Treiber für Ensemble-Qualität, weshalb die fit()-Schleife oben nicht optional ist.

5. Loggen Sie die Zerlegung, nicht nur das totale. Speichern Sie beide Komponenten neben realisierten Ergebnissen. Ohne das können Sie die einzige Frage nicht beantworten, die in der Überprüfung wichtig ist: als die Dimensionsgröße die Belastung schnitt, war es, weil der Markt rauschend war oder weil das Modell verloren war — und hatte es recht?

6. Unsicherheit als Feature. Rollende epistemische Statistiken können selbst prädiktiv für Drawdowns sein. Plausibel, ungemessen, und einen separaten Beitrag wert.

Einschränkungen und ehrliche Vorbehalte

  • Approximative posteriors sind immer noch approximativ. MC Dropout und VI geben eine begrenzte Sicht der wahren posterior. Besser als nichts, nicht Grundwahrheit, und keine Deckungsgarantie ist an beide gebunden.
  • Kalibrierung verschlechtert sich genau dann, wenn Sie sie brauchen. In einem wirklich neuen Regime kann das Modell immer noch miskalibriert sein — es neigt dazu, weniger miskalibriert zu sein als ein deterministisches. Unsicherheitsschätzungen aus einer Out-of-Distribution-Eingabe sind selbst Out-of-Distribution-Ausgaben.
  • Aleatorische Varianz kann epistemisches Signal absorbieren. Wenn der heteroskedastische Kopf flexibel genug ist, lernt er, Modellunsicherheit als Datenrauschen wegzuerklären, stürzt σepi\sigma_{\text{epi}} gegen null und besiegt lautlos die gesamte Zerlegung. Dies ist der wichtigste Versagensmodus in diesem Beitrag und er kündigt sich nicht an. Überwachen Sie das Verhältnis über Regime; ein Verhältnis, das sich nie bewegt, ist eine kaputte Zerlegung, kein stabiler Markt.
  • λ\lambda ist ein freier Parameter. Die Einführung eines abstimmbaren Knopfes in eine Dimensionsregel ist, wie überangeppte Dimensionsregeln gebaut werden. Es braucht eine Walk-Forward-Berechtigung oder muss bei 1 fixiert werden.

Fazit

Konformale Vorhersage gibt diesem Blog bereits Intervallbreiten mit einer Deckungsgarantie, und Kelly gibt ihm bereits eine Dimensionsregel. Was keines gibt, ist eine Antwort auf warum das Intervall breit ist. Die Aufteilung der prädiktiven Varianz in epistemische und aleatorische Teile beantwortet das, und die Antwort ist handlungsfähig, während das totale es nicht ist: Marktrauschen ist kompensiertes Risiko, Modellunwissen ist es nicht, und der Dimensions-Nenner sollte das sagen.

MC Dropout macht die Aufteilung fast kostenlos — eine Zeile (model.train() bei Inferenz) verwandelt jedes dropout-Netz in ein approximatives Bayes'sches. Deep Ensembles kosten MMx und kalibrieren besser. Beide speisen denselben asymmetrischen Nenner σalea2+λσepi2\sigma^2_{\text{alea}} + \lambda \sigma^2_{\text{epi}}.

Ob λ>1\lambda > 1 tatsächlich zahlt, ist eine empirische Frage, die dieser Entwurf noch nicht beantwortet. Die oben aufgeführten Messungen sind der Preis für die Veröffentlichung.


Referenzen:

  • 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

Dem Markt einen Schritt voraus

Abonniere unseren Newsletter für exklusive KI-Trading-Einblicke, Marktanalysen und Plattform-Updates.

Wir respektieren deine Privatsphäre. Jederzeit abbestellbar.