Deep Learning

profileqwerty9999
HomeWork2.pdf

CS7900 ANNs and Deep Learning

Homework #2

Out: 5 October 2021

Due: 19 October 2021

Faculty: Dr. Clark

Back Propagation Neural Network

For the multi-layer neural network that you will be implementing in the following problems, you may use

either the hyperbolic tangent or the sigmoid for the activation function. Obviously you will be implementing

the back propagation method to train the network. Your code should include an arbitrary method that allows

you to code it for any number of input dimensions, hidden layers, neurons and output neurons, (i.e. you need

it to be able to allow you to change a variable and it changes the number of layers, or the number of neurons

at a given layer, or the number of dimensions, or the number of output layers…in other words this cannot be

hard coded for a specific data set).

1. (25pts) Develop a multi-layer neural network to solve the regression problem: f(x) = 1/x, (for only the positive values of x). Be sure to create a testing and training set. I am NOT providing you with data. The

number of hidden layers and neurons is your discretion, however, you must provide an explanation as to why

the number of layers and nodes you used was a good choice. You will need to create multiple different

structures that you train and plot this error for the different models to show why you chose the final model

that you did for this problem. Report your network configuration, and comment on your observations

regarding the performance of your network as you try to determine the number of hidden layers and hidden

nodes of your final network, once you determine the correct model:

a. (10pts) Track your training and testing history. This means that you check your training performance and your testing performance at multiples of some fixed number of iterations (and over many Epochs

also) [thus you will provide a graph of this information], implement the online learning method. Be

sure to label plots appropriately. (Remember to scale the data in the range that provides the best

results for your activation function … normalization is a must)

b. (5pts) What did you observe regarding the value of the learning parameter and how the network performed given: (do one of each)

i. (2.5pts) a fixed value, ii. (2.5pts) and a time decreasing value

c. (2.5pts) Choose a couple of points beyond your training set (i.e., if your max training input is x=10, try testing your network with, say, x=10.5, x=12, and x=30). What do you observe regarding the

networks ability to generalize for data that is beyond its training set (note, you may have to increase

the value of x to a large number to get a good idea to answer this).

d. (2.5pts) Briefly comment on the extrapolation capability compared to the interpolation capability of the network.

e. (5pts) Plot the final results showing the capability of your network to determine the function f(x) = 1/x versus the function f(x) = 1/x.

2. (25pts) Develop a multi-layer neural network to classify the IRIS data set. Use K-Fold Cross Validation for this problem. The code you use for this problem will be an extension of the code you created for problem 1.

a. (12pts) Implement the NN and report your network configuration: number of hidden layers, number of nodes per hidden layer, learning rate/learning schedule, encoding of the output, etc.

b. (5pts) Plot the error metric versus the number of training steps (similar to problem 1). c. (8pts) Comment on how well your network learned the data. Things to think about: did the network

classify the data well (or not), and why (or why not); how well did it classify each class independently

(you might consider contingency tables for this); and what observation do you have regarding number

of training samples: was the normalization technique I used adequate?