σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours Hidden Markov Models›Module 2 · Les algorithmes de base›Sujet 2.1·~1 hAvancé

L'algorithme forward

Position dans le parcoursModule 2 sur 3 · Sujet 1 sur 4
2.1 L'algorithme forward
—Score du lab— / 100XP total—Série—

Quelle est la probabilité de ce que nous avons vu ?

Supposons que nous ayons vu les mouvements Petit, Grand, Grand. Quelle est la probabilité de cette suite sous notre modèle ? On pourrait lister tous les chemins cachés (Calme-Calme-Calme, Calme-Calme-Orageux, etc.), calculer la probabilité de chacun et les additionner. Avec KKK états et TTT jours, cela fait KTK^{T}KT chemins, beaucoup trop. L'algorithme forward fait la même somme en T⋅K2T\cdot K^{2}T⋅K2 étapes en réutilisant le travail. Il garde un nombre αt(j)\alpha_t(j)αt​(j) : la probabilité des ttt premières observations et d'être dans l'état jjj le jour ttt.

α1(j)=πjBj(o1),αt(j)=[∑iαt−1(i)Aij]Bj(ot),P(o1,…,oT)=∑jαT(j)\alpha_1(j)=\pi_jB_j(o_1),\qquad \alpha_t(j)=\Big[\sum_i\alpha_{t-1}(i)A_{ij}\Big]B_j(o_t),\qquad P(o_1,\dots,o_T)=\sum_j\alpha_T(j)α1​(j)=πj​Bj​(o1​),αt​(j)=[i∑​αt−1​(i)Aij​]Bj​(ot​),P(o1​,…,oT​)=j∑​αT​(j)(1)

Lisez la récurrence avec des mots : pour être dans l'état jjj aujourd'hui, on venait d'un état iii hier (somme sur iii avec la probabilité de transition), puis l'état d'aujourd'hui a produit l'observation d'aujourd'hui. Diviser αt\alpha_tαt​ par son total donne les probabilités filtrées, votre croyance sur l'état d'aujourd'hui sachant les données jusqu'à aujourd'hui. Un problème pratique : multiplier beaucoup de petits nombres donne des nombres qui tendent vers zéro. On divise donc à chaque pas par le total ctc_tct​ et on le garde. Le log de la probabilité des données est alors simplement la somme des ln⁡ct\ln c_tlnct​.

Petit, Grand, GrandJour 1 : α1=(0,6⋅0,9, 0,4⋅0,3)=(0,54, 0,12)\alpha_1=(0{,}6\cdot0{,}9,\ 0{,}4\cdot0{,}3)=(0{,}54,\ 0{,}12)α1​=(0,6⋅0,9, 0,4⋅0,3)=(0,54, 0,12), total c1=0,66c_1=0{,}66c1​=0,66. Jour 2 (un grand mouvement) : Calme reçoit (0,54⋅0,9+0,12⋅0,2)⋅0,1=0,051(0{,}54\cdot0{,}9+0{,}12\cdot0{,}2)\cdot0{,}1=0{,}051(0,54⋅0,9+0,12⋅0,2)⋅0,1=0,051 et Orageux (0,54⋅0,1+0,12⋅0,8)⋅0,7=0,105(0{,}54\cdot0{,}1+0{,}12\cdot0{,}8)\cdot0{,}7=0{,}105(0,54⋅0,1+0,12⋅0,8)⋅0,7=0,105, total 0,1560{,}1560,156, donc la probabilité filtrée d'Orageux est 0,105/0,156=0,6730{,}105/0{,}156=0{,}6730,105/0,156=0,673. Le jour 3 donne α3=(0,00669, 0,06237)\alpha_3=(0{,}00669,\ 0{,}06237)α3​=(0,00669, 0,06237). La probabilité de toute la suite est 0,00669+0,06237=0,06910{,}00669+0{,}06237=0{,}06910,00669+0,06237=0,0691 et son log vaut −2,673-2{,}673−2,673.
  • Algorithme forward : somme sur tous les chemins cachés en T⋅K2T\cdot K^{2}T⋅K2 étapes au lieu de KTK^{T}KT.
  • Probabilités filtrées : normalisez αt\alpha_tαt​ pour obtenir votre croyance sur l'état du jour à partir des données jusqu'à aujourd'hui.
  • Mise à l'échelle : divisez par ctc_tct​ à chaque pas et additionnez les ln⁡ct\ln c_tlnct​ pour éviter le soupassement.

Lab : ce qui est noté

  • La première valeur forward15 pts
  • Le total du premier jour10 pts
  • Filtré après deux jours15 pts
  • La probabilité de la suite15 pts
  • La log-vraisemblance10 pts
  • Ce que l'algorithme forward économise10 pts
  • Associer le vocabulaire10 pts
  • Pourquoi les valeurs sont remises à l'échelle15 pts
0/ 8 traités
Exercices
1Réponse numérique15 ptsSans réponse

Le jour 1 montre un petit mouvement. Que vaut α1(C)=πC BC(p)\alpha_1(C)=\pi_C\,B_C(p)α1​(C)=πC​BC​(p) avec πC=0,6\pi_C=0{,}6πC​=0,6 et BC(p)=0,9B_C(p)=0{,}9BC​(p)=0,9 ?

a=a =a=accepté : ± 0.005
2Réponse numérique10 ptsSans réponse

Avec α1=(0,54, 0,12)\alpha_1=(0{,}54,\ 0{,}12)α1​=(0,54, 0,12), que vaut le total c1c_1c1​, la probabilité de la première observation ?

c=c =c=accepté : ± 0.005
3Réponse numérique15 ptsSans réponse

Après les observations Petit et Grand, α2=(0,051, 0,105)\alpha_2=(0{,}051,\ 0{,}105)α2​=(0,051, 0,105). Quelle est la probabilité filtrée de l'état orageux, 0,105/(0,051+0,105)0{,}105/(0{,}051+0{,}105)0,105/(0,051+0,105) ? Donnez trois décimales.

p=p =p=accepté : ± 0.003
4Réponse numérique15 ptsSans réponse

Le jour 3, α3=(0,00669, 0,06237)\alpha_3=(0{,}00669,\ 0{,}06237)α3​=(0,00669, 0,06237). Quelle est la probabilité de toute la suite Petit, Grand, Grand, la somme de α3\alpha_3α3​ ? Donnez quatre décimales.

p=p =p=accepté : ± 0.0003
5Réponse numérique10 ptsSans réponse

Quel est le logarithme népérien de la probabilité 0,06910{,}06910,0691 de la suite ? Donnez deux décimales.

l=l =l=accepté : ± 0.02
6Choix10 ptsSans réponse

Que nous permet d'éviter l'algorithme forward ?

7Associer10 ptsSans réponse

Associez chaque terme à son sens.

Choisissez le partenaire de chaque élément de gauche.

αt(j)\alpha_t(j)αt​(j)
Probabilité filtrée
ctc_tct​
∑jαT(j)\sum_j\alpha_T(j)∑j​αT​(j)
8Expliquer avec des mots15 ptsSans réponse

En une ou deux phrases, expliquez pourquoi une vraie implémentation de l'algorithme forward divise par ctc_tct​ à chaque pas.

Mode mathsSaisie au clavier ou en LaTeXExercice 1 sur 8 · Ctrl ⏎ pour vérifier

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub