辅导 ENG4200、Python/Java程序设计讲解
Coursework 2: Neural networks
ENG4200 Introduction to Artificial Intelligence and Machine Learning 4
1. Key Information
• Worth 30% of overall grade
• Submission 1 (/2): Report submission
• Deadline uploaded on Moodle
• Submission 2 (/2): Code submission to CodeGrade
• Deadline uploaded on Moodle (the same as for report)
2. Training data
The training dataset has been generated by maximum flow analysis between nodes 12 and 2. The
feature dataset has 19 fields, which of each represents the maximum flow capacity of each of the
19 edges, taking the values of 0, 1, and 2. The output dataset has 20 fields, where the first 19
fields refer to the actual flow taking place on each of the 19 edges, and the last one refers to the
maximum flow possible between nodes 12 and 2.
Figure 1 The network used to generate training dataset. This information is just to help you understand the training
dataset; you must not generate additional training dataset to train your neural network.
3. What you will do
You have to create and train a neural network with the following requirement/note:
• Only the provided training dataset should be used, i.e. furthur traning dataset must NOT be
created by performing maximum flow analysis over the network in Figure 1.
• The accuracy on a hidden test dataset will be evaluated by a customised function as
follows, where the accuracy on the maximum flow field is weighted by 50%, and other 19
fields share the rest 50% (you may design your loss function accordingly):
You should prepare two submissions, code submission and report submission. In blue colour are
assessment criteria.
• Code submission should include two files (example code uploaded on Moodle):
o A .py file with two functions
▪ demo_train demonstrates the training process for a few epochs. It has three
inputs: (1) the file name of taining feature data (.csv), (2) the file name of
training output data (.csv), and (3) the number of epochs. It needs to do two
things: (1) it needs to print out a graph with two curves of training and
validation accuracy, respectively; and (2) save the model as .keras file.
▪ predict_in_df makes predictions on a provided feature data. It has two
inputs: (1) the file name of a trained NN model (.keras) and (2) the file name
of the feature data (.csv). It needs to return the predictions by the NN model
as a dataframe that has the same format as ‘train_Y’.
o A .keras file of your trained model
▪ This will be used to test the hidden test dataset on CodeGrade.
o You can test your files on CodeGrade. There is no limit in the number of
submissions on CodeGrade until the deadline.
o Assessment criteria
▪ 5% for the code running properly addressing all requirements.
▪ 10% for a third of the highest accuracy, 7% (out of 10%) for a third of the
second highest accuracy, and 5% (out of 10%) for the rest.
• Report submission should be at maximum 2 pages on the following three questions and
one optional question:
o Parametric studies of hyperparameters (e.g. structure, activators, optimiser, learning
rate, etc.): how did you test different values, what insights have you obtained, and
how did you decide the final setting of your model?
o How did you address overfitting and imbalanced datasets?
o How did you decide your loss function?
o [Optional] Any other aspects you’d like to highlight (e.g. using advanced methods
such as graphical neural network and/or transformer)?
o [Formatting] Neither cover page nor content list is required. Use a plain word
document with your name and student ID in the first line.
o Assessment criteria
▪ 5% for each of the questions, evaluated by technical quality AND
writing/presentation
▪ Any brave attempts of methods (e.g. Graphical Neural Network, Transformer,
or Physics-Informed Neural Network using physical relationships e.g. that
the flows going in and out of a node should be balanced) that go beyond
what we learned in classroom will earn not only the top marks for report, but
also (unless the accuracy is terribly off) will earn a full 10% mark for
accuracy in the code submission part. If you have made such attempts, don’t
forget to highlight your efforts on the report.