We develop polynomial-time online algorithms for learning disjunctions
while trading off between the number of mistakes and the number of
“I don't know” answers. In this model, we are given an online
adversarial sequence of inputs for an unknown function of the form
f(x1, x2, …, xn) = ∨i ∈ Sxi, and for each such input,
we must guess “true”, “false”, or “I don't know”,
after which we find out the correct output for that input.
On the algorithm side, we show how to make at most ε n mistakes while
answering “I don't know” at most (1/ε)2O(1/ε)n times,
which is linear for any constant ε > 0
and polynomial for some ε = c / lg lg n.
Furthermore, we show how to make O(n log log n / log n)
mistakes while answering “I don't know” O(n2 log log n) times.
On the lower bound side, we show that any algorithm making o(n / log n)
mistakes must answer “I don't know” a superpolynomial number of times.
By contrast, no previous lower bounds were known,
and the best previous algorithms (by Sayedi et al. who introduced the model)
either make at most n/3 mistakes while answering “I don't know”
O(n) times with linear running time per answer,
or make O(n / log n) mistakes while answering “I don't know” O(n2) times with exponential running time per answer.
Our lower bound establishes optimality of the latter mistake bound,
assuming a polynomial number of “I don't know”s.
The running time of our algorithms (per answer) are
(1/ε)2O(1/ε)n and Õ(n3), respectively,
whereas the first previous algorithm mentioned above makes
many mistakes, and the second one
requires Θ(2n) time per answer.
The only previous polynomial-time algorithm with reasonable number of mistakes achieves a mistake bound
of ε n and an “I don't know” bound of O(n1/ε) which is super polynomial for any non-constant ε.