AINT252
COMPUTATION
THEORY AND
ARTIFICIAL
INTELLIGENCE
20 CREDIT MODULE / 50% COURSEWORK SUBMISSION / 50% EXAM
MODULE LEADER: DAVID WALKER MODULE AIMS
This module provides students with an overview of a range of different paradigms for computing and computing theory, and an introduction into the theoretical principles of methods in artificial intelligence.
ASSESSED LEARNING OUTCOMES (ALO):
1. Describe and analyse a range of computing paradigms and artificial intelligence methods and their applications.
2. Compare computing and artificial intelligence paradigms and evaluate their appropriateness to a particular computing paradigm for particular application domains.
3. Choose and apply appropriate computational theory and artificial intelligence methods to a chosen sample domain.
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
1
OVERVIEW
AINT252 – Computation Theory and Artificial Intelligence is a second semester module that will teach you about the theory behind a range of artificial intelligence and computational techniques. You will discover machine learning, evolutionary computation and knowledge representation, as well as gaining an appreciation for the social and ethical impact of AI and learning about some of its application areas. You will also explore computational tools such as finite state automata and cellular automata, as well as formal languages.
The module is assessed in two ways. You will complete a piece of coursework, detailed in this handbook, in which you will demonstrate your ability to apply machine learning and evolutionary computation techniques learned during the module. This is due after Easter. You will also sit an examination in the summer exam session. Each part of the assessment contributes 50% of the total module mark.
MODULE DELIVERY
A lecture series with supporting workshop activities with topics including: an introduction to artificial intelligence (including a discussion of ethical and societal considerations), machine learning, evolutionary computation and knowledge representation. The latter part of the module will explore formal languages (regular expressions and finite state automata) and cellular automata.
Each lecture will be followed by a corresponding practical workshop in which students will apply the techniques they have learned in the lectures. Students are expected to self-select a workshop to attend, and should only attend one workshop per week.
Lectures: Workshops:
Duration:
Tuesday, 2pm-4pm
Portland Square, Stonehouse lecture theatre
Tuesday, 4pm-6pm Smeaton 100
Thursday, 2pm-4pm Smeaton 100
Thursday, 4pm-6pm Smeaton 100
12 weeks
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
2
Delivery staff:
Staff Member
Contact Details
Role details
David Walker
PSQ A322,
david.walker@plymouth.ac.uk
Module Leader
Lecturer, workshop series, general module queries.
Mathew Walter
mathew.walter@plymouth.ac.uk
Workshop series.
Important Dates and Deliverables:
Element
Description
Deadline
C1
Coursework released
Week 28
Monday 3rd February 2020
C1
Submission of coursework via the DLE.
Week 40
Monday 27th April 2020, 10am.
C1
Coursework feedback and marks returned.
Week 42
Friday 15th May 2020
E1
In-class test marks returned.
May 2020
TBC – see examination timetable.
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
3
COURSEWORK 50%
This assignment contributes 50% of the overall module mark for AINT252 and is an individual assignment. Both the
report and code must be submitted to the DLE by the specified submission dates.
The coursework has two parts – one is a machine learning exercise and the second is about evolutionary computation. You must complete and submit both parts. Each part is worth 50% of the coursework mark. A Jupyter notebook has been placed on the DLE for you to use. You should download it, and either use it locally or in the Azure cloud environment we have used during the lab sessions.
PART 1 – MACHINE LEARNING
You have been provided with a dataset relating to types of glass. The dataset contains data relating to seven different types of glass, with 214 observations. The data has 10 inputs, which describe the chemical composition of each observation. Your task is to implement a program that enables classification of the type of glass for each observation according to the 10 inputs. You must complete the following tasks.
Task 1.1 – Data preparation (10% of total mark)
The first phase of the work requires you to load the data you have been provided with into your Python program. Before the data can be used to train and test the classifier you must first prepare it – this means that the inputs must be normalised. There is no missing data in the dataset.
Task 1.2 – Classification (20% of total mark)
Having prepared the data you must now build a classifier that can classify new points. Use the following classification implementations within the scikit-learn package to construct classifiers for the dataset:
• Random Forest (sklearn.ensemble.RandomForestClassifier)
• Neural Network (sklearn.neural_network.MLPClassifier)
• Support Vector Machine (sklearn.svm.SVC)
You must demonstrate that each classifier is capable of providing a predicted class for a given input.
Phase 1.3 – Assessment of classification (20% of total mark)
The classifiers you have used in the previous section must be assessed. To do this, you are required to assess the true positive – false positive rate. You must implement code that returns each value for your classifiers. It is not sufficient to report a single TP-FP rate. You must use cross validation to report training results and test results and report these values using a boxplots.
You must also produce scatter plots of the data using PCA (use scikit-learn for this as in the labs). One should be coloured according to the true class of each observation, and there should also be one for each classifier showing the predicted class of each observation under each classifier.
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
4
PART 2 – EVOLUTIONARY COMPUTATION
The second part of this assignment requires you to construct a multi-objective evolutionary algorithm (MOEA) that can generate Pareto front approximations for two multi-objective problems. The problems are DTLZ1 and DTLZ2, and the code to evaluate objective functions has been provided for you on the DLE. These problems are continuous and you should test a version that has 2 objectives and 3 objectives.
The decision variables are constrained – this means that only values between 0 and 1 are permitted. The number of decision variables are as follows:
• DTLZ1 (2-objectives): 6 decision variables.
• DTLZ1 (3-objectives): 7 decision variables.
• DTLZ2 (2-objectives): 11 decision variables.
• DTLZ2 (3-objectives): 12 decision variables.
Task 2.1 – Generation of random solutions (10%)
When evaluating a MOEA it is standard to compare against random. Generate 500 random solutions to the problem and plot them using Matplotlib
Task 2.2 – Algorithm implementation (25%)
You should implement a (1+1)—evolution strategy (ES) as described in the lectures. Your algorithm must have the following features:
• An archive in which to store the current approximation of the Pareto front.
• A mutation operator that performs an additive Gaussian mutation.
Task 2.4 – Visualisation of results (15%)
Modify your plots produced in Task 2.1 to include the archive of non-dominated solutions produced by running the algorithm. You must show the non-dominated solutions against the randomly generated solutions, so they must be plotted in differently – potentially with different colours and/or symbols.
COURSEWORK DELIVERABLES
A Jupyter notebook has been provided on the DLE for you to use for this coursework. You should implement your code in it, and submit it to the DLE ahead of the deadline specified in the module calendar earlier in this handbook. Please indicate which task each section of the notebook refers to using a Markdown cell.
Please consider submitting your files from a computer on the University campus as submitting files of this size over an unreliable connection can be problematic. Please check your submitted files are correct by downloading them again and checking that they work. You will receive a confirmation receipt by email when your work has been properly submitted – if you do not receive this email then your work has not been submitted.
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
5
PLAGIARISM AND ACADEMIC OFFENCES
You are expected to write your own code. Discussing ideas with other people is acceptable, but getting help to write your code is not acceptable. Failure to demonstrate a good understanding of your own code during the demonstration may lead to a significantly reduced mark on this assignment, or, in the worst case, action taken against you under the University’s regulations on examination and assessment offences. Your attention is drawn to these regulations, available at https://www1.plymouth.ac.uk/essentialinfo/regulations/Pages/Plagiarism.aspx.
If you submit code files or libraries that you have not written yourself you must make this clear in your submission. Submitting code that you have not written yourself without declaring it clearly in the report may lead to action taken against you under the University’s regulations on examination and assessment offences.
ASSESSMENT AND MARKING
Each task will be assessed according to the following mark scheme:
• Quality of completed task (60%): To what extent does the code fully implement the requirements specified? Are there elements of the task that have been omitted? Does it run with errors? How well are the results presented? Are visualisations of data clear and properly constructed?
• Efficiency of implementation (40%): Have you provided an efficient implementation? Is the code well structured?
MODULE INFORMATION
Please refer to all the lecture content & further study resources on the DLE.
AINT252 COMPUTATION THEORY AND ARTIFICIAL INTELLIGENCE SECaM
6