From bbffa52ed893bfca3edc016a05f5b293b171ccea Mon Sep 17 00:00:00 2001 From: nunzip Date: Mon, 4 Mar 2019 11:38:26 +0000 Subject: Report --- report/.gitignore | 2 + report/.travis.yml | 7 + report/LICENSE | 21 +++ report/bibliography.bib | 55 ++++++ report/bibliography.csl | 339 ++++++++++++++++++++++++++++++++++++ report/build/cw1_vz215_np1915.pdf | Bin 0 -> 233980 bytes report/fig/error_depth_kmean100.pdf | Bin 0 -> 14275 bytes report/makefile | 19 ++ report/metadata.yaml | 12 ++ report/paper.md | 100 +++++++++++ report/template.latex | 300 +++++++++++++++++++++++++++++++ 11 files changed, 855 insertions(+) create mode 100644 report/.gitignore create mode 100644 report/.travis.yml create mode 100644 report/LICENSE create mode 100644 report/bibliography.bib create mode 100644 report/bibliography.csl create mode 100644 report/build/cw1_vz215_np1915.pdf create mode 100644 report/fig/error_depth_kmean100.pdf create mode 100644 report/makefile create mode 100644 report/metadata.yaml create mode 100644 report/paper.md create mode 100644 report/template.latex diff --git a/report/.gitignore b/report/.gitignore new file mode 100644 index 0000000..5236e1e --- /dev/null +++ b/report/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/report/.travis.yml b/report/.travis.yml new file mode 100644 index 0000000..49d89e9 --- /dev/null +++ b/report/.travis.yml @@ -0,0 +1,7 @@ +sudo: enabled +dist: trusty +install: + - sudo apt-get -qq update + - sudo apt-get install -y pandoc pandoc-citeproc texlive-full +script: + - make diff --git a/report/LICENSE b/report/LICENSE new file mode 100644 index 0000000..6c59dbd --- /dev/null +++ b/report/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Santos Gallegos + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/report/bibliography.bib b/report/bibliography.bib new file mode 100644 index 0000000..8230369 --- /dev/null +++ b/report/bibliography.bib @@ -0,0 +1,55 @@ +@inproceedings{km-complexity, + author = {Inaba, Mary and Katoh, Naoki and Imai, Hiroshi}, + title = {Applications of Weighted Voronoi Diagrams and Randomization to Variance-based K-clustering: (Extended Abstract)}, + booktitle = {Proceedings of the Tenth Annual Symposium on Computational Geometry}, + series = {SCG '94}, + year = {1994}, + isbn = {0-89791-648-4}, + location = {Stony Brook, New York, USA}, + pages = {332--339}, + numpages = {8}, + url = {http://doi.acm.org/10.1145/177424.178042}, + doi = {10.1145/177424.178042}, + acmid = {178042}, + publisher = {ACM}, + address = {New York, NY, USA}, +} + +@article{rerank-paper, + author = {Zhun Zhong and + Liang Zheng and + Donglin Cao and + Shaozi Li}, + title = {Re-ranking Person Re-identification with k-reciprocal Encoding}, + journal = {CoRR}, + volume = {abs/1701.08398}, + year = {2017}, + url = {http://arxiv.org/abs/1701.08398}, + archivePrefix = {arXiv}, + eprint = {1701.08398}, + timestamp = {Mon, 13 Aug 2018 16:47:43 +0200}, + biburl = {https://dblp.org/rec/bib/journals/corr/ZhongZCL17}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + +@book{kmean, +added-at = {2016-05-28T21:24:35.000+0200}, +address = {New York}, +author = {Duda, Richard O. and Hart, Peter E. and Stork, David G.}, +biburl = {https://www.bibsonomy.org/bibtex/25ef4fe4778daaf4b4e56c0d66161e048/flint63}, +edition = 2, +file = {eBook:2000-04/DudaHartStork01.pdf:PDF;Wiley Product page:http\://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471056693.html:URL;Amazon Search inside:http\://www.amazon.de/gp/reader/0471056693/:URL}, +groups = {public}, +interhash = {5af620770e95f6b9ccffca6b3638a8ae}, +intrahash = {5ef4fe4778daaf4b4e56c0d66161e048}, +isbn = {978-0-471-05669-0}, +keywords = {01801 105 book shelf ai data pattern recognition analysis}, +publisher = {Wiley}, +timestamp = {2018-04-17T11:20:04.000+0200}, +title = {Pattern Classification}, +username = {flint63}, + year = 2001 +} + + + diff --git a/report/bibliography.csl b/report/bibliography.csl new file mode 100644 index 0000000..9d967b0 --- /dev/null +++ b/report/bibliography.csl @@ -0,0 +1,339 @@ + + \ No newline at end of file diff --git a/report/build/cw1_vz215_np1915.pdf b/report/build/cw1_vz215_np1915.pdf new file mode 100644 index 0000000..3a6e8a5 Binary files /dev/null and b/report/build/cw1_vz215_np1915.pdf differ diff --git a/report/fig/error_depth_kmean100.pdf b/report/fig/error_depth_kmean100.pdf new file mode 100644 index 0000000..85fffdc Binary files /dev/null and b/report/fig/error_depth_kmean100.pdf differ diff --git a/report/makefile b/report/makefile new file mode 100644 index 0000000..636d2f8 --- /dev/null +++ b/report/makefile @@ -0,0 +1,19 @@ +FILES = paper.md \ + metadata.yaml + +OUTPUT = build + +FLAGS = --bibliography=bibliography.bib \ + --csl=bibliography.csl \ + -s \ + -f markdown + +FLAGS_PDF = --template=template.latex + +pdf: + mkdir -p $(OUTPUT) + pandoc -o $(OUTPUT)/cw1_vz215_np1915.pdf $(FLAGS) $(FLAGS_PDF) $(FILES) + +clean: + rm build/* + diff --git a/report/metadata.yaml b/report/metadata.yaml new file mode 100644 index 0000000..d23f929 --- /dev/null +++ b/report/metadata.yaml @@ -0,0 +1,12 @@ +--- +title: 'EE4-62 Selected Topics in Computer Vision (2018-2019) CW2' +author: + - name: Vasil Zlatanov (01120518), Nunzio Pucci (01113180) + email: vz215@ic.ac.uk, np1915@ic.ac.uk +numbersections: yes +lang: en +babel-lang: english +fontsize: 10pt + +... + diff --git a/report/paper.md b/report/paper.md new file mode 100644 index 0000000..77d3db7 --- /dev/null +++ b/report/paper.md @@ -0,0 +1,100 @@ +# DCGAN + +## DCGAN Architecture description + +## Tests on MNIST + +Try some **different architectures, hyper-parameters**, and, if necessary, the aspects of **virtual batch +normalization**, balancing G and D. +Please discuss, with results, what challenge and how they are specifically addressing, including +the quality of generated images and, also, the **mode collapse**. + +\begin{figure} +\begin{center} +\includegraphics[width=24em]{fig/error_depth_kmean100.pdf} +\caption{K-means Classification error varying tree depth (left) and forest size (right)} +\label{fig:km-tree-param} +\end{center} +\end{figure} + +# CGAN + +## CGAN Architecture description + +## Tests on MNIST + +Try **different architectures, hyper-parameters**, and, if necessary, the aspects of **one-sided label +smoothing**, **virtual batch normalization**, balancing G and D. +Please perform qualitative analyses on the generated images, and discuss, with results, what +challenge and how they are specifically addressing. Is there the **mode collapse issue?** + +# Inception Score + +## Classifier Architecture Used + +## Results + +Measure the inception scores i.e. we use the class labels to +generate images in CGAN and compare them with the predicted labels of the generated images. + +Also report the recognition accuracies on the +MNIST real testing set (10K), in comparison to the inception scores. + +**Please measure and discuss the inception scores for the different hyper-parameters/tricks and/or +architectures in Q2.** + +# Re-training the handwritten digit classifier + +## Results + +Retrain with different portions and test BOTH fake and real queries. Please **vary** the portions +of the real training and synthetic images, e.g. 10%, 20%, 50%, and 100%, of each. + +## 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.* + +# Bonus + +This is an open question. Do you have any other ideas to improve GANs or +have more insightful and comparative evaluations of GANs? Ideas are not limited. For instance, + +\begin{itemize} + +\item How do you compare GAN with PCA? We leant PCA as another generative model in the +Pattern Recognition module (EE468/EE9SO29/EE9CS729). Strengths/weaknesses? + +\item Take the pre-trained classification network using 100% real training examples and use it +to extract the penultimate layer’s activations (embeddings) of 100 randomly sampled real +test examples and 100 randomly sampled synthetic examples from all the digits i.e. 0-9. +Use an embedding method e.g. t-sne [1] or PCA, to project them to a 2D subspace and +plot them. Explain what kind of patterns do you observe between the digits on real and +synthetic data. Also plot the distribution of confidence scores on these real and synthetic +sub-sampled examples by the classification network trained on 100% real data on two +separate graphs. Explain the trends in the graphs. + +\item Can we add a classification loss (using the pre-trained classifier) to CGAN, and see if this +improve? The classification loss would help the generated images maintain the class +labels, i.e. improving the inception score. What would be the respective network +architecture and loss function? + +\end{itemize} + +# References + +
+ +\newpage + +# Appendix + + diff --git a/report/template.latex b/report/template.latex new file mode 100644 index 0000000..afc8358 --- /dev/null +++ b/report/template.latex @@ -0,0 +1,300 @@ +\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{IEEEtran} +$if(beamerarticle)$ +\usepackage{beamerarticle} % needs to be loaded first +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{textcomp} +\usepackage{eurosym} +$endif$ +$if(fontfamily)$ +\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} +$else$ +\usepackage{lmodern} +$endif$ +\usepackage{float} +$if(linestretch)$ +\usepackage{setspace} +\setstretch{$linestretch$} +$endif$ +\usepackage{float} +\usepackage{amssymb,amsmath} +\usepackage{ifxetex,ifluatex} +\usepackage{fixltx2e} % provides \textsubscript +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} + \usepackage[utf8]{inputenc} +$if(euro)$ + \usepackage{eurosym} +$endif$ +\else % if luatex or xelatex + \ifxetex + \usepackage{mathspec} + \else + \usepackage{fontspec} + \fi + \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} +$for(fontfamilies)$ + \newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$} +$endfor$ +$if(euro)$ + \newcommand{\euro}{€} +$endif$ +$if(mainfont)$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} +$endif$ +$if(sansfont)$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} +$endif$ +$if(monofont)$ + \setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$} +$endif$ +$if(mathfont)$ + \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} +$endif$ +$if(CJKmainfont)$ + \usepackage{xeCJK} + \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} +$endif$ +\fi +% use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +% use microtype if available +\IfFileExists{microtype.sty}{% +\usepackage{microtype} +\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +$if(geometry)$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +\usepackage[unicode=true]{hyperref} +$if(colorlinks)$ +\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref +$endif$ +\hypersetup{ +$if(title-meta)$ + pdftitle={$title-meta$}, +$endif$ +$if(author-meta)$ + pdfauthor={$author-meta$}, +$endif$ +$if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, +$endif$ +$if(colorlinks)$ + colorlinks=true, + linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$, + citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$, + urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$, +$else$ + pdfborder={0 0 0}, +$endif$ + breaklinks=true} +\urlstyle{same} % don't use monospace font for urls +$if(lang)$ +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} +$if(babel-newcommands)$ + $babel-newcommands$ +$endif$ +\else + \usepackage{polyglossia} + \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$} +$for(polyglossia-otherlangs)$ + \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$} +$endfor$ +\fi +$endif$ +$if(natbib)$ +\usepackage{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} +$for(bibliography)$ +\addbibresource{$bibliography$} +$endfor$ +$endif$ +$if(listings)$ +\usepackage{listings} +$endif$ +$if(lhs)$ +\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} +$endif$ +$if(highlighting-macros)$ +$highlighting-macros$ +$endif$ +$if(verbatim-in-note)$ +\usepackage{fancyvrb} +\VerbatimFootnotes % allows verbatim text in footnotes +$endif$ +$if(tables)$ +\usepackage{longtable,booktabs} +% Fix footnotes in tables (requires footnote package) +\IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{long table}}{} +$endif$ +\usepackage{graphicx} +$if(graphics)$ +\usepackage{graphicx,grffile} +\makeatletter +\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} +\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} +\makeatother +% Scale images if necessary, so that they will not overflow the page +% margins by default, and it is still possible to overwrite the defaults +% using explicit options in \includegraphics[width, height, ...]{} +\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +$endif$ +$if(links-as-notes)$ +% Make links footnotes instead of hotlinks: +\renewcommand{\href}[2]{#2\footnote{\url{#1}}} +$endif$ +$if(strikeout)$ +\usepackage[normalem]{ulem} +% avoid problems with \sout in headers with hyperref: +\pdfstringdefDisableCommands{\renewcommand{\sout}{}} +$endif$ +$if(indent)$ +$else$ +\IfFileExists{parskip.sty}{% +\usepackage{parskip} +}{% else +\setlength{\parindent}{0pt} +\setlength{\parskip}{6pt plus 2pt minus 1pt} +} +$endif$ +\setlength{\emergencystretch}{3em} % prevent overfull lines +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} +$if(numbersections)$ +\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} +$else$ +\setcounter{secnumdepth}{0} +$endif$ +$if(subparagraph)$ +$else$ +% Redefines (sub)paragraphs to behave more like sections +\ifx\paragraph\undefined\else +\let\oldparagraph\paragraph +\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else +\let\oldsubparagraph\subparagraph +\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +$endif$ +$if(dir)$ +\ifxetex + % load bidi as late as possible as it modifies e.g. graphicx + $if(latex-dir-rtl)$ + \usepackage[RTLdocument]{bidi} + $else$ + \usepackage{bidi} + $endif$ +\fi +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \TeXXeTstate=1 + \newcommand{\RL}[1]{\beginR #1\endR} + \newcommand{\LR}[1]{\beginL #1\endL} + \newenvironment{RTL}{\beginR}{\endR} + \newenvironment{LTR}{\beginL}{\endL} +\fi +$endif$ + +% set default figure placement to htbp +\makeatletter +\def\fps@figure{htbp} +\makeatother + +$for(header-includes)$ +$header-includes$ +$endfor$ + +$if(title)$ +\title{$title$$if(thanks)$\thanks{$thanks$}$endif$} +$endif$ +$if(subtitle)$ +\providecommand{\subtitle}[1]{} +\subtitle{$subtitle$} +$endif$ + +$if(author)$ +\author{ + $for(author)$ + \IEEEauthorblockN{$author.name$} + \IEEEauthorblockA{% + $author.affiliation$ \\ + $author.email$ \\ + $author.location$} + $sep$ \and + $endfor$ +} +$endif$ + +$if(institute)$ +\providecommand{\institute}[1]{} +\institute{$for(institute)$$institute$$sep$ \and $endfor$} +$endif$ +\date{$date$} + +\begin{document} +$if(title)$ +\maketitle +$endif$ +$if(abstract)$ +\begin{abstract} +$abstract$ +\end{abstract} +$endif$ + +$if(keywords)$ +\begin{IEEEkeywords} +$for(keywords)$ + $keywords$$sep$; +$endfor$ +\end{IEEEkeywords} +$endif$ + +$for(include-before)$ +$include-before$ + +$endfor$ +$if(toc)$ +{ +$if(colorlinks)$ +\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$} +$endif$ +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ +$if(lot)$ +\listoftables +$endif$ +$if(lof)$ +\listoffigures +$endif$ +$body$ + +$if(natbib)$ +$if(bibliography)$ +$if(biblio-title)$ +$if(book-class)$ +\renewcommand\bibname{$biblio-title$} +$else$ +\renewcommand\refname{$biblio-title$} +$endif$ +$endif$ +\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} + +$endif$ +$endif$ +$if(biblatex)$ +\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ + +$endif$ +$for(include-after)$ +$include-after$ + +$endfor$ +\end{document} + -- cgit v1.2.3