Learning remote controller