# Assignment #3 - Image Sentiment Classification ### 重要事項宣佈 * 投影片連結 <a href="https://docs.google.com/presentation/d/1QFK4-inv2QJ9UhuiUtespP4nC5ZqfBjd_jP2O41fpTc/edit?ts=58e452ff#slide=id.p" target="_blank"><i class="fa fa-slideshare"></i></a> * Kaggle 連結 <a href="https://inclass.kaggle.com/c/ml2017-hw3" target="_blank"><i class="fa fa-trophy"></i></a> * Deadline: 2017/05/04 11:59 P.M. (GMT+8) * TA會於4/20釋出範例程式碼,亦為超過 Kaggle simple baseline 的加分截止期限 * 在做 P4及P5時,請大家先看過這個關於 <a href="https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html" target="_blank">visualization 的 tutorial</a> <hr> In this assignment, you will practice using Deep Learning libraries to experience the power of Neural Net. The requirements of this assignment are as follows: ## <a href="./p1.html" target="_blank">P1: Build Convolution Neural Network (1%)</a> *[Accuracy]* Build CNN model, and tune it to the best formance as possible as you can. Record your model structure and training procedure. ## <a href="./p2.html" target="_blank">P2: Build Deep Neural Network (1%)</a> *[Accuracy]* Using the same number of parameters as above CNN, build a DNN model to do this task. Record your model structure and training procedure. Explain what you observed. ## <a href="./p3.html" target="_blank">P3: Analyze the Model by Confusion Matrix (1%)</a> *[Analysis]* Observe the prediction of your validation data( 10% ~ 20% of training data is OK ). Plot the prediction into confusion matrix and describe what you observed. ## <a href="./p4.html" target="_blank">P4: Analyze the Model by Plotting the Saliency Map (1%)</a> *[Analysis]* Plot the saliency map of original image to see which part is important when classifying ## <a href="./p5.html" target="_blank">P5: Analyze the Model by Visualizing Filters (1%)</a> *[Analysis]* Use Gradient Ascent method mentioned in class to find the image that activates the selected filter the most and plot them. ## <a href="./bonus.html" target="_blank">Bonus: Semi-supervised Learning (1%)</a> You can split part of training data and remove their label. Then try semi-supervised learning techniques (self-training, clustering...) taught in class, and record its performance.