diff --git a/project-report/project-report.pdf b/project-report/project-report.pdf index 3635651..f9e908b 100644 Binary files a/project-report/project-report.pdf and b/project-report/project-report.pdf differ diff --git a/project-report/src/images/deep-ann-diagram-2.png b/project-report/src/images/deep-ann-diagram-2.png new file mode 100644 index 0000000..fdf9a0a Binary files /dev/null and b/project-report/src/images/deep-ann-diagram-2.png differ diff --git a/project-report/src/latex/analysis.tex b/project-report/src/latex/analysis.tex index 9986b5e..55c2494 100644 --- a/project-report/src/latex/analysis.tex +++ b/project-report/src/latex/analysis.tex @@ -115,12 +115,20 @@ \subsubsection{How Artificial Neural Networks learn} \item Having a 'Vanishing Gradient', where the gradient value decreases to a very small value or zero, resulting in a lack of updating values during training. \end{itemize} -\vspace{5mm} +\pagebreak + \subsection{Theory Behind Deep Artificial Neural Networks} \vspace{5mm} \subsubsection{Network Architecture and Training} +\begin{figure}[h!] +\centering +\includegraphics[width=1\textwidth]{./project-report/src/images/deep-ann-diagram-2.png} +\caption{This shows an Artificial Neural Network with multiple hidden layers and is known as a Deep Neural Network.} +\label{fig:abstract-network} +\end{figure} + Figure \ref{fig:abstract-network} below shows a simplified view of an Artificial Neural Network with multiple hidden layers, known as a Deep Neural Network, where: \pagebreak diff --git a/project-report/src/latex/evaluation.tex b/project-report/src/latex/evaluation.tex index 31350f9..8b1959a 100644 --- a/project-report/src/latex/evaluation.tex +++ b/project-report/src/latex/evaluation.tex @@ -7,6 +7,29 @@ \clearpage \section{Evaluation} +\subsection{Third Party Feedback} + +I demonstrated the final version of my program to the same third party that I interviewed in the analysis, and their response is shown below: + +\vspace{5mm} + +"In my opinion, Max has definitely met the primary and secondary goals of this project. Firstly, and most importantly, he has researched and implemented, from first +principles, an Artificial Neural Network that is flexible and abstracted to the point that it can tackle a range of problems. Max started the analysis for this +project from a very theoretical and mathematical point of view before implementing code which has allowed him to extend its implementation to a range of datasets +from the XOR problem to image analysis. + +I was particularly impressed at the level of analysis he undertook into how Artificial Neural Networks work and the impact that different kinds of design decisions can have on +implementation. He took on board suggestions to explore different types of transfer functions such as the ReLu function to increase the speed of training and it was nice +to see comparative studies of this and other techniques. It was also great to see the ability to save and load trained models which has allowed him to train models +on a desktop PC equipped with a graphics card to be utilized on a lower power laptop. + +The analysis section exploring the impact on both learning rates and epoch count was very nice to see, as well as the identification of an optimal learning rate +suitable for the image dataset he was working with. + +In summary, it was fantastic to see a true maths-to-code example of implementing Artificial Neural Networks that didn't rely on the use of external AI libraries. I +am certain he has learned a great deal regarding the fundamental properties and limitations of Artificial Neural Networks. I was also impressed by the usage of +software engineering tools such as GitHub and Jupyter Notebook throughout the project." + \subsection{Project Objectives Evaluation} \subsubsection{Project Objectives} @@ -59,28 +82,43 @@ \subsubsection{Project Objective Evaluations} \hline \end{tabular} -\subsection{Third Party Feedback} - -I demonstrated the final version of my program to the same third party that I interviewed in the analysis, and their response is shown below: - -\vspace{5mm} - -"In my opinion, Max has definitely met the primary and secondary goals of this project. Firstly, and most importantly, he has researched and implemented, from first -principles, an Artificial Neural Network that is flexible and abstracted to the point that it can tackle a range of problems. Max started the analysis for this -project from a very theoretical and mathematical point of view before implementing code which has allowed him to extend its implementation to a range of datasets -from the XOR problem to image analysis. - -I was particularly impressed at the level of analysis he undertook into how Artificial Neural Networks work and the impact that different kinds of design decisions can have on -implementation. He took on board suggestions to explore different types of transfer functions such as the ReLu function to increase the speed of training and it was nice -to see comparative studies of this and other techniques. It was also great to see the ability to save and load trained models which has allowed him to train models -on a desktop PC equipped with a graphics card to be utilized on a lower power laptop. - -The analysis section exploring the impact on both learning rates and epoch count was very nice to see, as well as the identification of an optimal learning rate -suitable for the image dataset he was working with. - -In summary, it was fantastic to see a true maths-to-code example of implementing Artificial Neural Networks that didn't rely on the use of external AI libraries. I -am certain he has learned a great deal regarding the fundamental properties and limitations of Artificial Neural Networks. I was also impressed by the usage of -software engineering tools such as GitHub and Jupyter Notebook throughout the project." +\subsection{Requirements Evaluation} + +\begin{tabular}{|p{0.03\linewidth}|p{0.69\linewidth}|p{0.12\linewidth}|p{0.16\linewidth}|} + \hline + \textbf{ID} & \textbf{Description} & \textbf{Status} & \textbf{3rd Party Evaluation} \\ + \hline + 1 & Learn how Artificial Neural Networks work & Fully met & Fully met \\ + \hline + 2 & Develop Artificial Neural Networks from first principles & & \\ + \hline + 2.1 & Provide utilities for creating Artificial Neural Networks & Fully met & Fully met \\ + \hline + 2.2 & Allow for the saving and loading of trained models' weights and biases & Fully met & Fully met \\ + \hline + 2.3 & Allow use of Graphics Cards for faster training & Fully met & Fully met \\ + \hline + 3 & Implement the Artificial Neural Networks on image datasets & & \\ + \hline + 3.1 & Allow input of unique hyper-parameters & Fully met & Fully met \\ + \hline + 3.2 & Allow unique datasets and train dataset size to be loaded & Fully met & Fully met \\ + \hline + 4 & Use a database to store a model's features and the location of its weights and biases & Fully met & Fully met \\ + \hline + 5 & Develop a Graphical User Interface & & \\ + \hline + 5.1 & Provide controls for hyper-parameters of models & Fully met & Fully met \\ + \hline + 5.2 & Display details of models' training & Fully met & Fully met \\ + \hline + 5.3 & Display the results of each model's predictions & Fully met & Fully met \\ + \hline + 5.4 & Allow for the saving of trained models & Fully met & Fully met \\ + \hline + 5.5 & Allow for the loading of saved trained models & Fully met & Fully met \\ + \hline +\end{tabular} \subsection{Future Improvements} @@ -96,4 +134,4 @@ \subsection{Future Improvements} \item Utilising a standardized file format for storing trained Artificial Neural Networks, so that they can be integrated with other machine learning libraries. \end{itemize} -\end{document} \ No newline at end of file +\end{document}