Adaptive Learning Algorithms