Auto learning machine