update self learning