General guideline for completing the assignment:

Feel free to stack-overflow, Google, and research any questions/issues you have. You are also welcome to use any programming language. The only thing we ask is that this work is done independently by you without the help of your family/friends. If the assignment requires coding, please write necessary docs to instruct people to run your codes.

Question 3: Generative Model (1.5 hours)

  1. We want to build a model that takes an image of some landscape as input and produces an aesthetically more pleasing output image with better exposure, saturation, lighting, colors, etc. As data we have a few hundred examples of landscape images before and after being edited by a professional retoucher. We also have a collection of several thousand landscape images after they were edited (without knowing the originals) and we can use other public datasets such as Adobe5K that might contain some usable examples.
    1. What architecture could be used for this task?
    2. What is a suitable loss function? Are there potential regularizations that could be added?
    3. Please outline roughly how you would pre-process and combine the data.
    4. What is the rough structure of your training process? Do you foresee any potential issues or difficulties? How much time do you expect the training to run on a machine with a single modern GPU (no detailed estimate required)?
    5. How would you quantify the success of the trained model?
  2. Some first feedback of the users of our new model shows that some of them feel their personal taste is not represented well. For each user we have access to between 1 and a few hundred examples of pictures they liked after being edited, and some basic information such as age, gender, and the region they are in. Briefly elaborate how you would go about personalizing the ML model to produce better results given which user it is predicting for. Compare which options could be considered and which one sounds most promising to you.