联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-08-23 10:31

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 =

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 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

inputs (3D data plot).

(1 marks)


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp