project-proposal-examples

Good: EZNN - The Easy Neural Network

Abstract

With the rise of Artificial Intelligence (AI), Machine Learning (ML) and Deep Learning (DL) more and more companies and enterprises are investing in Image Recognition, Pattern Recognition and Chat Generation. However, the key problem at the moment is that this typically requires a team of developers to create and train an appropriate model which for small businesses is unaffordable.

This is where the EZNN comes in (Easy Neural Network). The idea is that via a GUI interface a neural network can be built, trained and deployed all completely online within the cloud for customer use. While this saves money, time and resources for the customer, it also saves the hassle of putting together a development team and the logistics of organising servers or GPUs for training.

Author

Name: Good Standard
Student number: nnnnnnnn

Functionality

Overview

EZNN is a simplistic approach to building deep learning models. The general premise is that via a web page nerual networks can be trained and tested with a “no code/low code” approach. This allows small to medium companies train, develop and implement deep learning without significant overhead.

For functionality users will step through a series of sequential steps to build a model through a GUI on an online web application. The general workflow is as follows

image

Where at the beginning the user will:

  1. Log into the website and will be presented with a range of prebuilt models that they can choose from. Each model will have a brief description of its use and requirements alongside strengths and weaknesses.
  2. From here, the user must then select the data source they wish the model to be trained upon. This can be the users own set of data via an upload, a public repository or even a key word selection criteria for which data can be web scraped for. E.g, the user may type cats and dogs which will cause the application to webscrape images of cats/dogs.
  3. Once the data set has been selected there will be the optional stage to tweak parameters such as specific optimisers, hyperparameters, loss rates, number of epochs etc
  4. From here the training cycle will begin where the model will be trained until over-fitting occurs. The user will then have the option to either download the model or keep the model hosted by EZNN for online use.

An example of this entire process is the user Adam who wants a Classification network to determine if an image has Cats or Dogs. He however does not want to fiddle with values nor download images. image

Models

The following models aimed to be implemented for the full product alongside a database to store training datasets and the finished models

Scope

The scope for the minimal viable product is primarily the ability to

Quality Attributes

The key quality attributes most important for this project is Modularity, Scalability and Extensibility. These were chosen for numerous reasons as detailed below and ordered in importance (most important to least). Security is worth noting, while not a focus of the project it is important and will be considered in the architectural design and implementation phases.

Modularity:

Modularity is the most important attribute in this project because of the numerous combinations of components that must succinctly flow in order from each other defined by an external user. An example of this is loading data, users will want well defined methods that work regardless of the selected model however it is impractical to build custom load methods for each individual/future model. This means that the data loading methods must be modular and have a common input/output pattern.

Scalability

Scalability is also an extremely important attribute. As deep learning is computationally heavy, both horizontal and vertical scaling important. Vertical scaling will be necessary to decrease model training time while horizontal scalability will be important to handle multiple users at once. Without horizontal scaling users will get backed up waiting for a single model to be completed and without vertical scaling users will be waiting days to weeks depending on the model being trained.

Extensibility

Extensibility is the final important attribute to this project. Due to the ever changing landscape of Neural Networks, additional models will have to be added, current models swapped out for new and improved models and even entirely new categories of model could be added. Due to this extensibility of the software is important for future implementations.

Evaluation

Besides a basic implementation of the MVP the core attributes must also be achieved. These will be determined by the following criteria

Modularity

Modularity will be evaluated by the level of generalisation of each component and the amount of decoupling present. Each module will need to be well defined, distinct and only achieve a single purpose. Data Loading Modules must be interchangeable and work with any Neural Network and vice versa.

Scalability

As computation times vary from system to system and are especially dependent on GPU, it can be hard to quantify scalability. Due to this, it is proposed a benchmarked is recorded for training a basic model (such as VGG) and that this benchmarked time be met within a 10-20% margin with two or more concurrent users.

Extensibility

Extensibility, is relatively objective and for the purpose of this project extensibility can be measured by how easy/hard it is to extend and expand upon models. This implies that a class based system with a focus on inheritance and high cohesion is needed.

Comments

Good Proposal. MVP is feasible, but needs to be more concrete. Good evaluation plan, but it should have a more actionable plan with regards to modularity and extensibility.