diff options
Diffstat (limited to 'report')
-rw-r--r-- | report/fig/added_generated_data.png | bin | 0 -> 21511 bytes | |||
-rw-r--r-- | report/fig/fake_only.png | bin | 0 -> 14446 bytes | |||
-rw-r--r-- | report/fig/fine_tuning.png | bin | 0 -> 17374 bytes | |||
-rw-r--r-- | report/fig/initialization.png | bin | 0 -> 18564 bytes | |||
-rw-r--r-- | report/fig/retrain_fail.png | bin | 0 -> 12925 bytes | |||
-rw-r--r-- | report/fig/train_few_real.png | bin | 0 -> 16790 bytes | |||
-rw-r--r-- | report/fig/training_mixed.png | bin | 0 -> 15373 bytes | |||
-rw-r--r-- | report/paper.md | 75 |
8 files changed, 56 insertions, 19 deletions
diff --git a/report/fig/added_generated_data.png b/report/fig/added_generated_data.png Binary files differnew file mode 100644 index 0000000..37c3e1e --- /dev/null +++ b/report/fig/added_generated_data.png diff --git a/report/fig/fake_only.png b/report/fig/fake_only.png Binary files differnew file mode 100644 index 0000000..27ceba1 --- /dev/null +++ b/report/fig/fake_only.png diff --git a/report/fig/fine_tuning.png b/report/fig/fine_tuning.png Binary files differnew file mode 100644 index 0000000..98caa69 --- /dev/null +++ b/report/fig/fine_tuning.png diff --git a/report/fig/initialization.png b/report/fig/initialization.png Binary files differnew file mode 100644 index 0000000..79b2f07 --- /dev/null +++ b/report/fig/initialization.png diff --git a/report/fig/retrain_fail.png b/report/fig/retrain_fail.png Binary files differnew file mode 100644 index 0000000..2a71fd4 --- /dev/null +++ b/report/fig/retrain_fail.png diff --git a/report/fig/train_few_real.png b/report/fig/train_few_real.png Binary files differnew file mode 100644 index 0000000..5a1f940 --- /dev/null +++ b/report/fig/train_few_real.png diff --git a/report/fig/training_mixed.png b/report/fig/training_mixed.png Binary files differnew file mode 100644 index 0000000..868cbf1 --- /dev/null +++ b/report/fig/training_mixed.png diff --git a/report/paper.md b/report/paper.md index 984debf..81be991 100644 --- a/report/paper.md +++ b/report/paper.md @@ -176,40 +176,62 @@ of the real training and synthetic images, e.g. 10%, 20%, 50%, and 100%, of each \begin{figure} \begin{center} -\includegraphics[width=24em]{fig/mix.png} -\caption{Mix training} +\includegraphics[width=12em]{fig/mix_zoom.png} +\includegraphics[width=12em]{fig/added_generated_data.png} +\caption{Mix data, left unchanged samples number, right added samples} \label{fig:mix1} \end{center} \end{figure} +## Adapted Training Strategy + +For this section we will use 550 samples from MNIST (55 samples per class). Training the classifier +yelds major challanges, since the amount of samples aailable for training is relatively small. + +Training for 100 epochs, similarly to the previous section, is clearly not enough. The MNIST test set accuracy reached in this case +is only 62%, while training for 300 epochs we can reach up to 88%. The learning curve in figure \ref{fig:few_real} suggests +we cannot achieve much better whith this very small amount of data, since the validation accuracy flattens, while the training accuracy +almost reaches 100%. + \begin{figure} \begin{center} -\includegraphics[width=24em]{fig/mix_zoom.png} -\caption{Mix training zoom} -\label{fig:mix2} +\includegraphics[width=24em]{fig/train_few_real.png} +\caption{Training with few real samples} +\label{fig:few_real} \end{center} \end{figure} +We conduct one experiment, feeding the test set to a L2-Net trained exclusively on data generated from our CGAN. It is noticeable that training +for the first 5 epochs gives good results (figure \ref{fig:fake_only}) when compared to the learning curve obtained while training the network ith only the few real samples. This +indicates that we can use the generated data to train the first steps of the network (initial weights) and apply the real sample for 300 epochs to obtain +a finer tuning. As observed in figure \ref{fig:few_init} the first steps of retraining will show oscillation, since the fine tuning will try and adapt to the newly fed data. The maximum accuracy reached before the validation curve plateaus is 88.6%, indicating that this strategy proved to be somewhat successfull at +improving testing accuracy. + \begin{figure} \begin{center} -\includegraphics[width=24em]{fig/mix_scores.png} -\caption{Mix training scores} -\label{fig:mix3} +\includegraphics[width=24em]{fig/initialization.png} +\caption{Retraining with initialization from generated samples} +\label{fig:few_init} \end{center} \end{figure} -## Adapted Training Strategy -*Using even a small number of real samples per class would already give a high recognition rate, -which is difficult to improve. Use few real samples per class, and, plenty generated images in a -good quality and see if the testing accuracy can be improved or not, over the model trained using -the few real samples only. -Did you have to change the strategy in training the classification network in order to improve the -testing accuracy? For example, use synthetic data to initialise the network parameters followed -by fine tuning the parameters with real data set. Or using realistic synthetic data based on the -confidence score from the classification network pre-trained on real data. If yes, please then -specify your training strategy in details. -Analyse and discuss the outcome of the experimental result.* +We try to improve the results obtained earlier by retraining L2-Net with mixed data: few real samples and plenty of generated samples (160.000) +(learning curve show in figure \ref{fig:training_mixed}. The peak accuracy reached is 91%. We then try to remove the generated +samples to apply fine tuning, using only the real samples. After 300 more epochs (figure \ref{fig:training_mixed}) the test accuracy is +boosted to 92%, making this technique the most successfull attempt of improvement while using a limited amount of data from MNIST dataset. + +\begin{figure} +\begin{center} +\includegraphics[width=12em]{fig/training_mixed.png} +\includegraphics[width=12em]{fig/fine_tuning.png} +\caption{Retraining; Mixed initialization left, fine tuning right} +\label{fig:training_mixed} +\end{center} +\end{figure} + +Failures classification examples are displayed in figure \ref{fig:retrain_fail}. The results showed indicate that the network we trained is actually performing quite well, +as most of the testing images that got misclassified (mainly nines and fours) show ambiguities. # Bonus @@ -369,3 +391,18 @@ architecture and loss function? \end{center} \end{figure} +\begin{figure} +\begin{center} +\includegraphics[width=24em]{fig/fake_only.png} +\caption{Retraining with generated samples only} +\label{fig:fake_only} +\end{center} +\end{figure} + +\begin{figure} +\begin{center} +\includegraphics[width=12em]{fig/retrain_fail.png} +\caption{Retraining failures} +\label{fig:retrain_fail} +\end{center} +\end{figure} |