Формулы обновления — компакт
Эта глава — краткий справочник. Подробное «откуда берётся» — в главе 5, интерактивный пример — в главе 7.
Posterior — формула Байеса
Заголовок раздела «Posterior — формула Байеса»После каждой попытки сначала вычисляем posterior — обновлённую оценку, принимая в расчёт наблюдение (правильно / неправильно):
Learning step
Заголовок раздела «Learning step»Затем добавляем шанс «доучиться» в этой попытке:
С ученик всегда хоть немного учится, даже на ошибке.
P(solve) — для предсказания
Заголовок раздела «P(solve) — для предсказания»Когда нужно решить, какую задачу дать дальше, нам нужно знать сейчас — с какой вероятностью ученик решит конкретную задачу:
Это «знает И не оплошает» плюс «не знает, но угадает».
Реализация в коде
Заголовок раздела «Реализация в коде»Эти три формулы — целиком сердце адаптивного движка. В коде они умещаются в 15 строк:
export function pSolve(pL: number, params: BktParams = DEFAULT_BKT): number { return pL * (1 - params.pSlip) + (1 - pL) * params.pGuess;}
export function bktUpdate( pL: number, observedCorrect: boolean, params: BktParams = DEFAULT_BKT): number { const { pSlip, pGuess, pTransit } = params; const posterior = observedCorrect ? (pL * (1 - pSlip)) / (pL * (1 - pSlip) + (1 - pL) * pGuess) : (pL * pSlip) / (pL * pSlip + (1 - pL) * (1 - pGuess)); return posterior + (1 - posterior) * pTransit;}Краткая шпаргалка по формулам
Заголовок раздела «Краткая шпаргалка по формулам»| Что | Формула | За что отвечает |
|---|---|---|
| Update (correct) | «правильный ответ → больше уверенности» | |
| Update (wrong) | «ошибка → меньше уверенности (но не паника)» | |
| Learning | «можно научиться по ходу» | |
| Predict | «какая вероятность решить?» |
Все четыре — детерминированные. Никакой стохастики, никаких черных ящиков, никаких нейронов. Просто арифметика 8-го класса.