Learning and Generating Diverse Residential Load Patterns Using GAN with Weakly-Supervised Training and Weight Selection