COMP 627 COMP 627 Neural Networks and Applications

1

COMP 627 – Assignment 1

Note: Referto Eq. 2.11 in the textbook for weight update. Both weights, w1 and b, need to be adjusted.

According to Eq. 2.11, for input x1, error E = t-y and learning rate β:

w1_new=w1_old+ β E x1;

bnew= bold+ β E

COMP 627 Neural Networks and Applications

Assignment 1

Perceptron and Linear neuron: Manual training and real-life case

studies

Part 1: Perceptron

[08 marks]

Download Fish_data.csv file from LEARN page. Use this dataset to answer the two questions (i) and (ii)

below on Perceptron. The dataset consists of 3 columns. The first two columns are inputs (ring

diameter of scales of fish grown in sea water and fresh water, respectively). The third column is the

output which states whether the category of the fish is Canadian or Alaskan (the value is 0 for Canadian

and 1 for Alaskan). Perceptron model classifies fish into Canadian or Alaskan depending on these two

measures of ring diameter of scales.

(i)

Extract the first AND last row of data and label these rows 1 and 2. Use an initial weight

vector of [w1= 102, w2= -28, b= 5.0] and learning rate β of 0.5 for training a perceptron

model manually as below:

Adjust the weights in example-by-example mode of learning using the two input vectors.

Present the input data in the order of rows 1 and 2 to the perceptron. After presentation

of each input vector and corresponding weight adjustment, show the resulting

classification boundary on the two data points as in Fig. 2.15 in the book. For each round

of weight adjustment, there will be a new classification boundary line. You can do the

plots on Excel, by hand, python or any other plotting software. Repeat this for 2 epochs

(i.e., pass the two input vectors twice through the perceptron).

(4 marks)

(ii)

Write python code to create a perceptron model to use the whole dataset in fish.csv to

classify fish into Canadian代 写COMP 627 COMP 627 Neural Networks and Applications  or Alaskan depending on the two input measures of ring

diameter of scales. Use 200 epochs for accurate models.

Modify your python code to show the final classification boundary on the data.

Write the equation of this boundary line.

Compare with the classification boundary in the book.

(4 marks)2

COMP 627 – Assignment 1

Note: For adjusting weights, follow the batch learning example for linear neuron on page 57 of the

textbook that follows Eq. 2.36. After each epoch, adjust the weights as follows:

w1_new=w1_old + β (E1 x1 + E2 x2)/2

bnew= bold + β (E1 + E2)/2

where E1 and E2 are the errors for the two inputs.

Part 2: Single Linear Neuron

[12 marks]

Download heat_influx_north_south.csv file from LEARN page. Use this dataset to develop a single

linear neuron model to answer the questions(i) to (v) below. Thisis the dataset that we learned about

in the text book and lectures where a linear neuron model had been trained to predict heat influx in

to a house from the north and south elevations of the house. Note that the dataset has been

normalised (between 0 and 1) to increase the accuracy of the models. When data (inputs and outputs)

have very different ranges, normalisation helps balance this issue.

(i)

Use two rows of data (rows 1 and 2 (0.319, 0.929) and (0.302, 0.49)), respectively, to train

a linear neuron manually to predict heat influx into a home based on the north elevation

(angle of exposure to the sun) of the home (value in ‘North’ column is the input for the

single neuron where output isthe value in ‘HeatFlux’ column). Use an initial weight vector

of [b (bias) = 2.1, w1= -0.2] and learning rate of 0.5. Bias input =1. You need to adjust

both weights, b and w1.

(3 marks)

  1. a) Train the linear neuron manually in batch mode. Repeat this for 2 epochs.

Note:

Try to separate the dataset into two datasets based on the value in ‘Canadian_0_Alaskan_1’ column.

Example code is given below.

#create dataframe X1 with input columns of the rows with the value 0 in 'Canadian_0_Alaskan_1' column

X1 = df.loc[df["Canadian_0_Alaskan_1"] == 0].iloc[:, 0:2]

Plot the data of two datasets with different markers‘o’ and ‘x’.

Plot the decision boundary line using the equation used in Laboratory Tutorial 2 – Part 2 (Please note

that there is a correction in the equation and the updated assignment is available on LEARN).

Final plot should be like this.3

COMP 627 – Assignment 1

1 2

Note: To retrieve the mean squared error, you can use the following code

from sklearn.metrics import mean_squared_error

print(mean_squared_error(Y, predicted_y))

  1. b) After the training with the 2 epochs is over, use your final weights to test how the

neuron is now performing by passing the same two data points again into the neuron

and computing error for each input (E1 and E2). Compute Mean Square Error (MSE)

for the 2 inputs using the formula below.

𝐸

MSE = 2+ 𝐸 2

2

(ii)

Write a python program to train a single linear neuron model using all data to predict heat

influx from north elevation (value in ‘North’ column is the input for the single neuron

where output is the value in ‘HeatFlux’ column) using all data. Train the model with 3000

epochs for high accuracy.

Extract the weights of the model and write the equation for the neuron function (linear

equation showing input-output relationship as in Eq. 2.44) and plot the neuron function

on data as in Figure 2.34 in the textbook.

Modify the code to retrieve the mean square error (MSE) and R2 score for the trained

neuron model.

(3 marks)

(iii)

Write a python program to train a linear neuron on the whole data set to predict heat

influx from north and south elevations (using the two inputs from the two columns

‘South’ and ‘North’). Train the model with 3000 epochs for high accuracy.

Extract the weights of the model and write the equation for the network function.

Modify your program to find the Mean Square Error (MSE) and R 2 score of the model.

Compare the error difference between the previous one-input case (in part (ii)) and the

current two-input case.

(4 marks)

(iv)

Modify the program to plot the data and the network function on the same plot (Refer to

the Laboratory Tutorial 4). Plot the network function on the data (3D plot of predicted

heat influx as a function plotted against north and south elevations.(1 marks)

Note: Neural Network develops a function (plane/surface) that goes through the data as closely as

possible. Here, we want to see how close this surface is to the data. Since we have 2 inputs, we need a

3-D plot to see this. We plot the network function against the two inputs.

Your final output should look like this:4

COMP 627 – Assignment 1

Note: In the plot in part (iv) above, the network function was shown as a surface plotted against the 2

inputs. However, you can also calculate the NN predicted heat influx for those exact input values for north

and south elevations in the dataset (as opposed to showing the function) and then plot the predicted heat

influx and target heat influx on the same 3D plot against the 2 inputs.

Your final output should look like this:

(v)

Plot the network predicted heat influx values and target heat influx values against the two

inputs (3D data plot).

(1 marks)

posted @   l40t2j  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示