belief-prop + min-sum
This commit is contained in:
195
main.typ
195
main.typ
@ -937,6 +937,7 @@
|
||||
]
|
||||
|
||||
#myslide("Bit-Flipping : Analyse")[
|
||||
// TODO PARLER DU GIRTH 4 => MAUVAIS
|
||||
#set text(size: 17pt)
|
||||
|
||||
#definition(titre: "Avantages", accent: green.darken(10%))[
|
||||
@ -962,15 +963,199 @@
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Soft decoding")[
|
||||
belief propagation, log ou virgule fixe, explication resultat meilleur
|
||||
#myslide("Décodage Soft : Le LLR")[
|
||||
#set text(size: 17pt)
|
||||
|
||||
#definition(titre: "Signal", accent: blue.darken(10%))[
|
||||
On reçoit une valeur $y_i$ (ex: $+4.5$V ou $-0.2$V). Le LLR transforme cette mesure physique en une valeur statistique sans unité.
|
||||
]
|
||||
|
||||
#v(0.6em)
|
||||
|
||||
#definition(titre: "Log-Likelihood Ratio (LLR)", accent: black)[
|
||||
$
|
||||
L(v_i) = ln(display(frac(P(v_i = 0 | y_i), P(v_i = 1 | y_i))))
|
||||
$
|
||||
]
|
||||
|
||||
#v(0.6em)
|
||||
|
||||
#align(center)[
|
||||
#scale(125%)[#schema_llr_droite()]
|
||||
]
|
||||
|
||||
#v(1em)
|
||||
|
||||
// Blocs de légende centrés
|
||||
#align(center)[
|
||||
#grid(
|
||||
columns: (220pt, 220pt),
|
||||
gutter: 1cm,
|
||||
block(fill: blue.lighten(92%), stroke: 1pt + blue, radius: 6pt, inset: 12pt)[
|
||||
#align(center)[
|
||||
#text(fill: blue.darken(20%), weight: "bold")[Signe] \
|
||||
#text(size: 0.85em)[Définit la valeur du bit]
|
||||
]
|
||||
],
|
||||
block(fill: orange.lighten(90%), stroke: 1pt + orange, radius: 6pt, inset: 12pt)[
|
||||
#align(center)[
|
||||
#text(fill: orange.darken(20%), weight: "bold")[|Valeur|] \
|
||||
#text(size: 0.85em)[Confiance dans la décision]
|
||||
]
|
||||
],
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Implementation")[
|
||||
#myslide("Sum-Product : Belief Propagation")[
|
||||
#set text(size: 17pt)
|
||||
#v(-0.4em)
|
||||
|
||||
#definition(titre: "Décodage Optimal")[
|
||||
Échange itératif de croyances (LLR) entre les nœuds du graphe
|
||||
]
|
||||
|
||||
#definition(titre: "Information Extrinsèque")[
|
||||
Exclure l'avis du destinataire pour éviter l'auto-influence
|
||||
]
|
||||
#block(
|
||||
fill: orange.lighten(92%),
|
||||
stroke: (left: 4pt + orange),
|
||||
radius: 4pt,
|
||||
inset: 18pt,
|
||||
width: 100%,
|
||||
)[
|
||||
#set text(size: 1.2em)
|
||||
*Mise à jour CN* \
|
||||
#set text(size: 1.1em)
|
||||
$ tanh(m_(c arrow v) / 2) = product_(u != v) tanh(m_(u arrow c) / 2) $
|
||||
]
|
||||
|
||||
#block(
|
||||
fill: blue.lighten(92%),
|
||||
stroke: (left: 4pt + blue),
|
||||
radius: 4pt,
|
||||
inset: 18pt,
|
||||
width: 100%,
|
||||
)[
|
||||
#set text(size: 1.2em)
|
||||
*Mise à jour VN* \
|
||||
#set text(size: 1.1em)
|
||||
$ m_(v arrow c) = L_"canal" + sum_(c' != c) m_(c' arrow v) $
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Sum-Product")[
|
||||
#set text(size: 16pt)
|
||||
|
||||
#place(left, dx: 1.5cm, dy: 0cm)[
|
||||
#text(weight: "bold", size: 1.1em * 1.3)[Initialisation]
|
||||
]
|
||||
|
||||
#place(left, dx: 1.5cm, dy: 2cm)[
|
||||
#scale(130%)[
|
||||
#grid(
|
||||
columns: 1,
|
||||
gutter: 0.2cm,
|
||||
align: horizon,
|
||||
schema_detailed_init(),
|
||||
text(size: 0.9em)[$m_(v_j arrow c_i) = L_"canal"$],
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
#place(right, dx: -4.5cm, dy: 0cm)[
|
||||
#text(weight: "bold", fill: orange, size: 1.1em * 1.3)[Échange CN]
|
||||
]
|
||||
|
||||
#place(right, dx: -1cm, dy: 2.7cm)[
|
||||
#scale(130%)[
|
||||
#schema_detailed_cn()
|
||||
]
|
||||
]
|
||||
|
||||
#place(left, dx: 1.5cm, dy: 9cm)[
|
||||
#text(weight: "bold", fill: blue, size: 1.1em * 1.3)[Échange VN]
|
||||
]
|
||||
|
||||
#place(left, dx: 1.5cm, dy: 11cm)[
|
||||
#scale(130%)[
|
||||
#schema_detailed_vn()
|
||||
]
|
||||
]
|
||||
|
||||
#place(right, dx: -3.5cm, dy: 9cm)[
|
||||
#text(weight: "bold", fill: green, size: 1.1em * 1.3)[Décision Finale]
|
||||
]
|
||||
|
||||
#place(right, dx: -1cm, dy: 11cm)[
|
||||
#scale(145%)[
|
||||
#schema_detailed_decision()
|
||||
]
|
||||
]
|
||||
|
||||
#place(center + horizon, dx: -0.9cm, dy: 8.2cm)[
|
||||
#scale(115%)[
|
||||
#cetz.canvas(length: 1cm, {
|
||||
import cetz.draw: *
|
||||
|
||||
let col_iter = gray.darken(50%)
|
||||
|
||||
arc(
|
||||
(0, 0),
|
||||
radius: 1.8,
|
||||
start: 150deg,
|
||||
delta: -300deg,
|
||||
stroke: (paint: col_iter, thickness: 2pt, cap: "round"),
|
||||
mark: (end: "stealth", fill: col_iter, size: 0.3),
|
||||
)
|
||||
|
||||
content((1.6, -1), [
|
||||
#set text(fill: col_iter, weight: "bold", size: 0.8em)
|
||||
#set align(center)
|
||||
Itérations\
|
||||
$i = 1, dots, I_(max)$
|
||||
])
|
||||
})
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Implementation rust")[
|
||||
|
||||
]
|
||||
|
||||
#myslide("Test")[
|
||||
#myslide("Min-Sum")[
|
||||
#set text(size: 15pt)
|
||||
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
gutter: 0.5cm,
|
||||
definition(titre: "Avantage Matériel", accent: black)[
|
||||
- *Comparateurs* pour le minimum
|
||||
- *XOR* pour le produit des signes
|
||||
#v(0.21cm)
|
||||
],
|
||||
definition(titre: "Mise à jour du CN", accent: orange)[
|
||||
#set text(size: 19pt)
|
||||
$
|
||||
m_(c arrow v_i) = product_(j != i) "sgn"(m_(v_j arrow c)) times min_(j != i) |m_(v_j arrow c)|
|
||||
$
|
||||
],
|
||||
)
|
||||
|
||||
#v(4.5em)
|
||||
#align(center)[#scale(130%)[#schema_min_sum_complet()]]
|
||||
|
||||
#v(0.5em)
|
||||
#align(center)[
|
||||
#text(size: 1.1em, fill: gray.darken(40%), style: "italic")[
|
||||
Pour les VN : $m_(v arrow c) = L_"canal" + sum_(c' != c) m_(c' arrow v)$
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Test réel")[
|
||||
Irl hackrf, test de diff de debit avec des paquets
|
||||
]
|
||||
|
||||
@ -999,4 +1184,6 @@
|
||||
|
||||
]
|
||||
|
||||
#myslide("Maths deriere Belief Propagation")[
|
||||
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user