COMP 627 Neural Networks and Applications


COMP 627 – Assignment 1 
 
Note: Refer to 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 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. This is 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 is the 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) 
 
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)) 
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. 
 
   
2+   
2
 
MSE = 

 
(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 R
2
 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 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值