A method of training an inverse design system using a controllable Generative Adversarial Network (cGAN), wherein the inverse design system is driven by a computer system, receives a target characteristic, and generates a structure pattern for a nano-optical device, the method comprising:
- training a discriminator and a classifier of the cGAN using simulation data associated with the nano-optical device;
- generating a fake image of the structure pattern using a generator of the cGAN by combining the target characteristic and random noise;
- calculating a discrimination error used to determine whether the fake image is real or fake by providing the fake image to the discriminator;
- determining a characteristic classification error for the fake image by providing the fake image to the classifier;
- and
- competitively training the generator, the discriminator, and the classifier with reference to the discrimination error and the characteristic classification error.