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.
Name: Good Standard
Student number: nnnnnnnn
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
Where at the beginning the user will:
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.
The following models aimed to be implemented for the full product alongside a database to store training datasets and the finished models
The scope for the minimal viable product is primarily the ability to
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 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 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 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.
Besides a basic implementation of the MVP the core attributes must also be achieved. These will be determined by the following criteria
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.
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, 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.
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.