SLIDE 1 A safe & computable approximation to Kolmogorov complexity
Peter Bloem, Francisco Mota, Steven de Rooij, Luìs Antunes & Pieter Adriaans
SLIDE 2
preliminaries: Kolmogorov complexity
U(ıp) = Ti(p) K(x) = minp { p : U(p) = x }
SLIDE 3
preliminaries: Kolmogorov complexity
U(ıp) = Ti(p) K(x) = minp { p : U(p) = x }
ӫ U is a formalisation of the notion of a description ӫ K is invariant to the choice of U (up to a constant)
SLIDE 4
preliminaries: Kolmogorov complexity
U(ıp) = Ti(p) K(x) = minp { p : U(p) = x }
ӫ U is a formalisation of the notion of a description ӫ K is invariant to the choice of U (up to a constant)
SLIDE 5
preliminaries: Kolmogorov complexity
U(ıp) = Ti(p) K(x) = minp { p : U(p) = x }
ӫ U is a formalisation of the notion of a description ӫ K is invariant to the choice of U (up to a constant)
SLIDE 6
motivation “Kolmogorov is not computable, it’s only of theoretical use” No, approximations are usually correct
SLIDE 7 preliminaries: Probabilities & codes ӫ L(x): (prefjx) code length function ӫ p(x): probability (semi) measure
SLIDE 8
step 1: computable probabilities From TMs to probabilities: T(p) = x pT(x) = Σp:T(p) = x 2-|p| m(x) = pU(x) equivalent to the lower semicomputable semimeasures
SLIDE 9
step 2: model classes A model class C is an effectively enumerable subset of all Turing machines. UC(ıp) = Ti(p) KC(x) = minp { p : UC(p) = x } mC(x) = Σp:UC(p) = x 2-|p|
SLIDE 10
step 3: safe approximation ӫ L(x): approximating code-length function ӫ L(x) is safe against p when p(L(x) - K(x) ≥ k) ≤ cb-k for some c and b > 1
SLIDE 11
Is KC safe against p∈C?
SLIDE 12
no.
SLIDE 13 x x x x x x x x not x
SLIDE 14 x x x x x x x x not x
KC(x)
SLIDE 15
Is -log mC safe against p∈C?
SLIDE 16
yes.
SLIDE 17
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 18
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 19
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 20
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 21
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 22
- log mC is safe against mC
mC − log mC(x) − K(x) k
mC(x) 2−k2−K(x) =
- x:mC(x)2−k2−K(x) mC(x)
- 2−k2−K(x)
= 2−k 2−K(x) 2−k
SLIDE 23
- log mC is safe against members of C
mC(·) =
cqpq(·) cqpq(·) cqpq
− log mC(x) − K(x) k
SLIDE 24
- log mC is safe against members of C
mC(·) =
cqpq(·) cqpq(·) cqpq
− log mC(x) − K(x) k
SLIDE 25
- log mC is safe against members of C
mC(·) =
cqpq(·) cqpq(·) cqpq
− log mC(x) − K(x) k
SLIDE 26
- log mC is safe against members of C
mC(·) =
cqpq(·) cqpq(·) cqpq
− log mC(x) − K(x) k
SLIDE 27
can we compute mC? ӫ We can if it’s upper and lower semicomputable ӫ lower: dovetail all programs for UC ӫ upper: dovetail until (1-s)/sx ≤ 2c − 1 ӫ If C is complete, this algorithm is com- putable
SLIDE 28 KC(x) κC(x) =
κC(x) =
K(x)
dominates unsafe bounds 2-safe dominates bounds bounds dominates dominates
SLIDE 29
What does this buy us? ӫ bridge between the practical and the platonic ӫ Bayesian ↔ MDL ↔ Algorithmic ӫ corollary: Kt ӫ Additional results: ID, NID
SLIDE 30
Questions?