He is stubborn. Nope, dogs are not stubborn, you just haven't figured your dog out yet. Find out what makes him want to work with and for you. And work withing the limits of your dogs capabilities. Are you asking a Basset Hound to race Flyball in 4.5 seconds?
He is doing it on purpose to make me mad. Nope, dogs don't want to get anyone mad.
He knows better. Nope, they sure don't, that is why you are there to teach him manners.
He feels guilty. Nope, dogs don't feel guilt. Really.
Dogs are none of the above. It's a trainers excuse for not knowing how to train dogs.