If you can read “\(x + 2 = 5\), so \(x = 3\)”, you already know enough to start. This page adds exactly one new idea at a time until the final, novel formula at the bottom is something you can read out loud and actually mean.
How to read this page
Every formula in the thesis is built from a handful of small ideas stacked on top of each other. We introduce those ideas in order. Nothing below assumes more than school algebra; every new piece of notation gets defined the moment it appears.
Each step has four parts: the new idea in words, the symbol written in real mathematical notation, a worked micro‑example with actual numbers, and a plain‑English reading so you never decode a formula alone. A running “what we can read so far” bar tracks your progress.
The destination
The goal of the whole project: teach a computer to turn Malagasy speech into written text, even though almost no labelled Malagasy audio exists. The final formula is the rule the system follows so it can teach itself from unlabelled audio without fooling itself.
Step 0
A letter is just a box that holds a value
In algebra, \(x\) is a placeholder for something we don’t know yet. That is the only trick, and it never goes away — it only gets dressed up. In this project the placeholders hold richer things than plain numbers:
Symbol
What is in the box
\(x\)
the audio — the sound recording (a chunk of speech)
\(y\)
the text — the transcription of what was said
\(d\)
the dialect (Merina, Betsimisaraka, Sakalava, …)
\(r\)
the register (read aloud, broadcast, conversation, ceremony)
\(c\)
the code‑switching tag (Malagasy, French, or mixed)
\(\theta\)
(“theta”) all the knobs of the model — the numbers learning will adjust
Whenever you see one of these letters, say its plain name in your head: \(x\) → “the audio”, \(y\) → “the text”. Greek letters are not special — they are just letters used so we don’t run out: \(\theta\) (theta), \(\alpha\) (alpha), \(\beta\) (beta), \(\tau\) (tau), \(\epsilon\) (epsilon), \(\eta\) (eta), \(\lambda\) (lambda), \(\phi\) (phi), \(\mu\) (mu) all appear below, and each is introduced where it is first used.
So far we can read: \(x, y, d, r, c, \theta\) — six labelled boxes.
Step 1
A function is a machine: put something in, get something out
You already met functions as \(f(x)\) — “\(f\) of \(x\)” — a machine that takes \(x\) and returns a value. Read the parentheses as “applied to”. Everything later of the form \(g(\text{stuff})\) means exactly this: a machine applied to whatever sits in the parentheses.
$$f(x) = 2x + 1$$
Worked example Put in \(x = 3\): \(f(3) = 2\cdot 3 + 1 = 7\). Put in \(x = 10\): \(f(10) = 21\). A function is a promise: the same input always gives the same output.
A function can take several inputs at once, separated by commas: \(g(a, b)\) is “\(g\) applied to \(a\) and \(b\) together.” Later we will see \(\operatorname{conf}_{\mathrm{cal}}(y, x)\), which is simply a machine fed two boxes — a text and an audio — returning one number.
So far we can read: boxes, and \(f(\cdot)\) = a machine applied to whatever sits in the parentheses.
Step 2
Probability: a number between 0 and 1 for “how likely”
We write \(p(\cdot)\) for “the probability of”. It is just a function whose output is always in the range \([0, 1]\): \(0\) means impossible, \(1\) means certain, \(0.5\) means coin‑flip.
$$0 \le p(y) \le 1 \qquad\text{where } p(y) \text{ means “how likely is the text } y\text{?”}$$
Two short extensions you must recognise, both ordinary algebra:
Joint — \(p(x, y)\): “how likely is it that this audio and this text happen together?” The comma means “and”.
Conditional — \(p(y \mid x)\): “given that we already have the audio \(x\), how likely is the text \(y\)?” The bar \(\mid\) means “given” / “assuming we already know”.
These are tied together by one rule you may remember — the definition of conditional probability:
$$p(y \mid x) = \frac{p(x, y)}{p(x)}$$
Worked example Of all recordings, suppose \(2\%\) are a particular sentence and a clear recording: \(p(x,y) = 0.02\). Suppose \(10\%\) of recordings are that clear: \(p(x) = 0.10\). Then given a clear recording, the chance it is that sentence is \(p(y\mid x) = 0.02 / 0.10 = 0.20\), i.e. \(20\%\).
Read it out loud \(p(y \mid x)\) = “the chance the text is \(y\), given the recording \(x\).” This single object — chance of the text given the sound — is what every ASR system is ultimately trying to compute.
So far we can read: \(p(y)\) a chance, \(p(x,y)\) chance of both, \(p(y\mid x)\) chance of \(y\) given \(x\).
Step 3
Multiplying chances = a chain of “and”s — the generative model
When several things all have to happen, you multiply their chances. Two coins both landing heads: \(0.5 \times 0.5 = 0.25\). More precisely, a joint probability can always be unrolled into a chain of conditionals (the “chain rule”):
$$p(a, b) = p(a)\, p(b \mid a)$$
The thesis imagines how a recording is “born”, one factor at a time, and multiplies them. This is the first real formula from the paper — the generative model:
$$p(x, y, d, r, c) = p(d)\,p(r)\,p(c \mid r, d)\,p(y \mid d, r, c)\,p(x \mid y, d, r)$$
Reading it left to right (comma = “and”, bar = “given”)
“The chance of this whole situation = pick a dialect \(p(d)\) × pick a register \(p(r)\) × decide the language mix given dialect & register \(p(c\mid r,d)\) × produce the text given all that \(p(y\mid d,r,c)\) × finally produce the sound given the text, dialect and register \(p(x\mid y,d,r)\).”
The shape of this product encodes real modelling choices: dialect \(d\) and register \(r\) are written as independent factors \(p(d)\,p(r)\) because a Merina speaker can be recorded either reading aloud or chatting; but the language mix \(c\) is conditioned on both, \(p(c \mid r, d)\), because code‑switching is socially structured.
Plain comparison: it is like subtitling that simultaneously guesses what was said, in which accent, in which setting (radio? chat?), and whether the sentence mixes French and Malagasy. Each guess feeds the next, and we multiply how likely each guess is.
So far we can read: a product of chances describing how audio+text is generated. One full paper formula down.
Step 4
Logarithms: turn hard multiplication into easy addition
Multiplying many tiny probabilities gives absurdly small numbers that computers round to zero. The fix is the logarithm, written \(\log\). Its one magic property is all you need:
$$\log(A \times B) = \log A + \log B \qquad\text{and}\qquad \log\!\frac{A}{B} = \log A - \log B$$
Worked example Three probabilities \(0.5 \times 0.5 \times 0.5 = 0.125\). In logs (base 10): \(\log 0.5 \approx -0.30\), so the sum is \(-0.30 - 0.30 - 0.30 = -0.90\), and indeed \(\log 0.125 \approx -0.90\). A messy product became a clean sum.
Why we bother “log of a product = sum of the logs.” So every multiplication from Step 3 becomes a tidy addition. That is the only reason \(\log\) appears everywhere below — it is a convenience, not a new concept.
One side note: probabilities are below \(1\), so their logs are negative. “Bigger” (closer to \(0\)) still means “more likely”. Don’t let the minus signs scare you: \(-0.9\) is more likely than \(-5.0\).
So far we can read: \(\log\) turns \(\times\) into \(+\), so “most likely” becomes “biggest sum”.
Step 5
Decoding: add up the evidence and keep the best text
Now combine Steps 2–4. To transcribe, the system scores each candidate text by adding three kinds of log‑evidence. This is the project’s decoding rule:
“does it fit the cousin languages (Indonesian, Malay, Tagalog…)?”
\(\alpha, \beta\)
plain dials (just numbers \(\ge 0\)) setting how much to trust the last two clues
\(\propto\)
“proportional to” — equal up to a constant we don’t care about when ranking
Worked example Two candidate texts \(y_1, y_2\). Say the sound favours \(y_1\) (\(-2.0\) vs \(-2.3\)), but \(y_2\) is far better Malagasy (\(\alpha\log P_{\text{LM}}\): \(-0.2\) vs \(-1.5\)). With \(\alpha = 1, \beta = 0\): score\((y_1) = -3.5\), score\((y_2) = -2.5\). So \(y_2\) wins — the language clue overruled a slightly better sound match.
In words “A text’s score = how well it matches the sound + (a little) how Malagasy it sounds + (a little) how Austronesian its shape is.” The \(\alpha\) and \(\beta\) dials balance the three voices. Comparison: learning Italian faster by leaning on Spanish and Portuguese.
So far we can read: a weighted sum of log‑evidence that ranks candidate transcriptions.
Step 6
argmax and argmin: “which choice wins?”
Two pieces of notation that look intimidating but mean something everyday.
\(\operatorname{argmax}\) — “the input that makes this biggest.” Not the biggest value, but which choice produces it. (“Who scored the most points?” → the person, not the score.)
\(\operatorname{argmin}\) — the same, but the input that makes it smallest.
Worked example If score\((y_1) = -3.5\), score\((y_2) = -2.5\), score\((y_3) = -4.1\), then \(\max\) of the scores is \(-2.5\), but \(\operatorname{argmax}\) is \(y_2\) — the text, not the number. The little \(y\) under the operator says “we are choosing among the \(y\)’s.” The hat in \(\hat y\) means “our chosen estimate”.
In words “Out of all possible texts \(y\), hand me the one with the highest score.” That is decoding: \(\operatorname{argmax}\) over the rule from Step 5.
So far we can read: \(\operatorname{argmax}\) = the choice that wins; \(\operatorname{argmin}\) = the choice that loses‑least.
Step 7
Sums and the average machine \(\mathbb{E}\) (expected value)
First, the summation sign \(\sum\) is just “add these up.” \(\sum_{i} a_i = a_1 + a_2 + a_3 + \dots\) Nothing more.
The symbol \(\mathbb{E}\) (a fancy E) means average — the typical outcome if you weight every possibility by how likely it is. In plain algebra it is exactly a weighted sum of value \(\times\) chance:
Worked example A die pays \(s = 1\) on a six and \(s = 0\) otherwise, with fair odds \(q = \tfrac{1}{6}\) each face. Then \(\mathbb{E}_q[s] = \tfrac{1}{6}\cdot 1 + \tfrac{5}{6}\cdot 0 = \tfrac{1}{6} \approx 0.17\) — the long‑run average payout.
In words “If you tried this many times following the odds \(q\), what would you get on average?” The little \(q\) under \(\mathbb{E}\) just says which set of odds to average with.
So far we can read: \(\sum\) = add up; \(\mathbb{E}_{q}[\cdot]\) = the average of something under the odds \(q\).
Step 8
KL: a number for “how different are two opinions?”
Often we have two sets of odds — the model’s guess \(q\) and some target \(p\) — and want to know how far apart they are. The KL divergence \(\mathrm{KL}(q \,\|\, p)\) is that gap as a single number. It is built from the pieces you already have (a sum, a log, an average):
The key facts: it is never negative, and it equals exactly \(0\) only when \(q\) and \(p\) are identical. Bigger means more disagreement. (The double bar \(\|\) is just punctuation separating the two distributions.)
Worked example If \(q = p\) everywhere, each term is \(q(y)\log 1 = 0\), so \(\mathrm{KL} = 0\) — no disagreement. The more \(q\) puts weight where \(p\) does not, the larger the positive total grows.
In words “How surprised would you be if you trusted \(q\) but reality followed \(p\)?” You don’t need to memorise the formula — only that it is a distance between two probability opinions, never negative, zero when they match.
So far we can read: \(\mathrm{KL}(q\,\|\,p)\) = how far guess \(q\) is from target \(p\) (\(0\) = perfect match).
Step 9a
A safety net under the goal: the ELBO
We would love to maximise \(\log p(x, y)\) directly — “make the data the model actually saw as likely as possible.” But the hidden variables \(d, r, c\) make that sum impossible to compute exactly. The standard trick is to maximise a guaranteed lower floor beneath it instead, called the evidence lower bound (ELBO):
$$\log p(x, y) \;\ge\; \mathcal{L}_{\mathrm{ELBO}}(\theta, \phi) \;=\; \underbrace{\mathbb{E}_q\big[ \log p_\theta(x, y, d, r, c) \big]}_{\text{fit the data well}} \;-\; \underbrace{\mathrm{KL}\big( q_\phi \,\|\, p \big)}_{\text{stay honest}}$$
\(\ge\)
“is at least” — the ELBO sits below the thing we want, so pushing it up drags the real goal up too
\(\theta\)
the knobs of the generative model (Step 3)
\(\phi\)
(“phi”) the knobs of the guesser \(q\) — the network that proposes the hidden answers
In words “Raise a floor you can compute, made of two pieces: a reward for fitting the data (first term) minus a penalty for the guesser drifting away from what’s plausible (the KL term). Push the floor up and the true goal rises with it.”
So far we can read: the ELBO = (fit the data) − (KL honesty penalty), a floor we maximise instead of the impossible exact goal.
Step 9b
EM: guess the hidden parts, then improve — repeat
Here is the engine that climbs that floor. We have audio but, for most of it, no human transcription — and we never directly see the dialect, register or language‑mix. Those are hidden. The EM algorithm handles “learn from data with missing pieces” by alternating two moves until things settle:
E‑step (Estimate): with the current knobs \(\theta\), guess the hidden pieces. Using Step 8’s tool: pick the guess‑odds \(q\) that are closest (smallest KL) to what the model currently believes about \(x\).
M‑step (Maximise): treat those guesses as if they were true labels, and adjust the knobs \(\theta\) to fit them as well as possible (argmax of the average log‑likelihood from Step 7).
the best current guess of the hidden pieces (the star \({}^*\) = “the winning one”)
\(p_\theta(\cdot \mid x)\)
what the model, with knobs \(\theta\), currently believes about the hidden pieces given \(x\)
\(\leftarrow\)
“becomes” — replace the old knobs with this new value
In words E‑step: “with today’s knobs, make the best guess of the missing answers.” M‑step: “turn the knobs so those guesses become as likely as possible.” Loop. Comparison: a student grading their own homework to improve — each round a little better. Every loop is guaranteed not to lower the ELBO of Step 9a.
So far we can read the whole EM loop: guess hidden answers (E), then retune knobs \(\theta\) to fit them (M), repeat.
Step 10
The danger that makes this hard: self‑delusion
A student who grades their own homework can drift into confidently marking wrong answers right, then studying from them — getting surer and worse at the same time. In machine learning this is called collapse, and it is exactly what kills naive self‑training: the model’s confidence inflates while its accuracy degrades. The novel contribution of PROVA‑MG is to bolt four guard‑rails onto the E‑step so the loop cannot fool itself.
The whole idea in one line
Keep EM’s self‑teaching power, but only let it learn from guesses that are (C1) honestly confident, (C2) not a wild swing from last round, (C3) backed by other models, and (C4) shaped like a real Austronesian word.
Step 11
The four guard‑rails, each a small inequality
Each guard‑rail is just an algebra inequality (\(\ge\) “at least”, \(\le\) “no more than”). Together they define a set of allowed guesses, written \(C\). Read each one slowly — you already know every symbol.
C1 — honest confidence. Keep a transcript only if its calibrated confidence clears a threshold \(\tau\) (“tau”, a chosen number like \(0.8\)).
$$\operatorname{supp}(q^*) \subset \big\{\, y : \operatorname{conf}_{\mathrm{cal}}(y, x) \ge \tau \,\big\}$$
\(\operatorname{supp}(q^*)\)
the “support” — the texts our guess actually puts any weight on
\(\subset\)
“is contained within”
\(\{\, y : \dots \}\)
“the set of all \(y\) such that …”
\(\operatorname{conf}_{\mathrm{cal}}\)
confidence that has been reality‑checked (calibrated), not raw bravado
In words “Every text we keep must have calibrated confidence at least \(\tau\).” We ignore the student who says “99% sure” but is wrong half the time.
C2 — no whiplash. From one round \(n\) to the next \(n+1\), the guesses may only drift a little — the average KL gap (Step 8) stays under a small \(\epsilon\) (“epsilon”, a tiny number).
In words “On average across all audio \(x\), this round’s opinion must stay close to last round’s.” A doctor revises a diagnosis gradually, not overnight. The superscripts \({}^{(n)}\) and \({}^{(n+1)}\) just label “this round” and “next round.”
C3 — second opinions. The kept answer must also appear in the short‑lists (“n‑best”) of the independent teacher models — Whisper (\(W\)), MMS (\(M\)), Wav2Vec2‑BERT (\(B\)).
In words “Our chosen text must show up on at least one independent expert’s short‑list.” Keep only what other models also propose — they have different blind spots, so agreement is informative.
C4 — it must look like a real word. On average, the typological score (“does this fit Austronesian sound‑patterns?”) must stay above a floor \(-\eta\) (“eta”).
In words “The kept transcripts must, on average, be phonetically plausible for the language family.” A French speaker feels “travu” could be French while “tlbvk” could not — even never having seen either. We throw out the “tlbvk” cases. (Not about whether a word exists elsewhere — Malagasy has plenty of its own words — but whether its shape is possible.)
Bundle all four into one name: \(C = \{\, q : q \text{ satisfies C1 and C2 and C3 and C4} \,\}\) — “the set of guesses that pass every guard‑rail.”
So far we can read: four plain inequalities C1–C4, and the allowed‑guess set \(C\) = all four at once.
Step 12 — The summit
The final, novel formula — read it like a sentence
Everything you have learned now snaps together. Take the EM loop from Step 9b, and in the E‑step add three little symbols under the \(\operatorname{argmin}\): \(q \in C\) — “choose only among guesses that obey the four guard‑rails.” That single restriction is the contribution.
Now read the whole thing in plain EnglishE‑step: “Among only the guesses that are honestly confident, not a wild swing, backed by other models, and shaped like a real word (\(q \in C\)), pick the one (\(\operatorname{argmin}\)) closest (smallest \(\mathrm{KL}\)) to what the model currently believes about the audio.”
M‑step: “Then turn the model’s knobs \(\theta\) (\(\operatorname{argmax}\)) so those trusted guesses become as likely (highest average log‑chance) as possible — plus a tidiness term \(\lambda R(\theta)\) that stops the knobs from going to extremes.”
Then loop. Because of \(q \in C\), every round can only learn from trustworthy guesses, so it gets better without the self‑delusion of Step 10.
Last new symbols
Plain meaning
\(q \in C\)
the novel part: “\(q\) must be inside the allowed‑guess set \(C\)” — obey all four guard‑rails
\(\lambda\, R(\theta)\)
a gentle “don’t overdo it” penalty: \(R\) scores how extreme the knobs are, \(\lambda\) (lambda) sets how strict that penalty is
What makes it novel
Plain EM has been known for decades. The contribution is the two characters \(\in C\): forcing the self‑teaching loop to draw only from guesses that pass four independent sanity checks — calibrated confidence (C1), bounded drift (C2), cross‑model agreement (C3), and typological plausibility (C4). That turns a loop that usually collapses into one that is provably stable for low‑resource Malagasy.
You can now read the final formula end to end:
boxes \((x,y,d,r,c,\theta)\) → functions \(f(\cdot)\) → chances \(p(\cdot)\) → products of chances → \(\log\) turns \(\times\) into \(+\) → weighted‑sum decoding → \(\operatorname{argmax}/\operatorname{argmin}\) pick the winner → \(\sum\) and \(\mathbb{E}\) average → \(\mathrm{KL}\) measures disagreement → ELBO floor → EM guesses-then-improves → four guard‑rails \(C\) → constrained variational EM.
Bonus — where the calibrated confidence comes from
One more formula you can now read: calibration
Guard‑rail C1 relied on a calibrated confidence. Where does that honesty come from? A small extra model \(g_\phi\) is trained so its reported confidence matches the real hit‑rate. Its training objective is, once more, only pieces you know — a sum of logs plus a tidiness penalty:
the small supervised set where we do have correct transcripts to check against
\(\mathbb{1}[\hat y(x) = y]\)
an “indicator”: \(1\) if the guess was right, \(0\) if wrong
\(\mu \, \| g_\phi \|^2\)
(“mu”) the same kind of tidiness penalty as \(\lambda R(\theta)\), keeping the calibrator smooth
In words “Tune the confidence‑model \(\phi\) so that, on the cases where we know the answer, its stated confidence lines up with how often it’s actually right — and keep it simple.” This is what makes C1’s threshold \(\tau\) meaningful.
One‑line summary
Three teacher models + cousin‑language hints + honest confidence, combined by an EM loop that may only learn from guesses passing four guard‑rails \(C\) — which is what makes its self‑training provably non‑collapsing.