# 讲解 DTS101TC Introduction to Neural Networks调试Python程序

DTS101TC Introduction to Neural Networks

Coursework

Due: Sunday Apr.21th, 2024 @ 17:00

Weight: 100%

Overview

This coursework is the sole assessment for DTS101TC and aims to evaluate your compre- hension of the module. It consists of three sections: 'Short Answer Question', 'Image Classification Programming', and 'Real-world Application Question'. Each question must be answered as per the instructions provided in the assignment paper. The programming task necessitates the use of Python with PyTorch within a Jupyter Notebook environment, with all output cells saved alongside the code.

Learning Outcomes

A.   Develop an understanding of neural networks their architectures, applications and limitations.

B.   Demonstrate the ability to implement neural networks with a programming language

C.   Demonstrate the ability to provide critical analysis on real-world problems and design suitable solutions based on neural networks.

Policy

Please save your assignment in a PDF document, and package your code as a ZIP file. If there are any errors in the program, include debugging information. Submit both the answer sheet and the ZIP code file via Learning Mall Core to the appropriate drop box. Electronic submission is the only method accepted; no hard copies will be accepted.

You must download your file and check that it is viewable after submission. Documents may become corrupted during the uploading process (e.g. due to slow internet  connections). However, students themselves are responsible for submitting a functional and correct file for assessments.

Avoid Plagiarism

.     Do NOT submit work from others.

.     Do NOT share code/work with others.

.     Do NOT copy and paste directly from sources without proper attribution.

.     Do NOT use paid services to complete assignments for you.

Q1.  Short Answer Questions                                                 [40 marks]

The questions test general knowledge and understanding of central concepts in the course. The answers should be short. Any  calculations need to be presented.

1.  (a.)  Explain the concept of linear separability.                                                                            [2 marks]

(b.)  Consider the following data points from two categories:                                                    [3 marks]

X1  : (1, 1)    (2, 2)    (2, 0);

X2  : (0, 0)    (1, 0)    (0, 1).

Are they linearly separable? Make a sketch and explain your answer.

2.  Derive the gradient descent update rule for a target function represented as

od  = w0 + w1 x1 + ... + wnxn

Deﬁne the squared error function ﬁrst, considering a provided set of training examples D, where each training example d 2 D is associated with the target output td.                   [5 marks]

3.  (a.)  Draw a carefully labeled diagram of a 3-layer perceptron with 2 input nodes, 3 hidden nodes, 1 output node and bias nodes.          [5 marks]

(b.)  Assuming that the activation functions are simple threshold, f(y) = sign(y), write down the input- output functional form. of the overall network in terms of the input-to-hidden weights, wab , and the hidden-to-output weights, ˜(w)bc.                [5 marks]

(c.)  How many distinct weights need to be trained in this network?                                        [2 marks]

(d.)  Show that it is not possible to train this network with backpropagation. Explain what modiﬁcation is necessary to allow backpropagation to work.          [3 marks]

(e.)  After you modiﬁed the activation function, using the chain rule, calculate expressions for the fol- lowing derivatives

(i.) aJ/ay / (ii.) aJ/a˜(w)bc

where J is the squared error, and t is the target.                                   [5 marks]

4.  (a.)  Sketch a simple recurrent network, with input x, output y , and recurrent state h. Give the update equations for a simple RNN unit in terms of x, y , and h.  Assume it usestanh activation.  [5 marks]

(b.)  Name one example that can be more naturally modeled with RNNs than with feedforward neural networks?  For a dataset X  := (xt,yt )1(k), show how information is propagated by drawing a feed-forward neural network that corresponds to the RNN from the ﬁgure you sketch for k = 3.  Recall that a feedforward neural network does not contain nodes with a persistent state.          [5 marks]

Q2. Image Classication Programming                              [40 marks]

For this question, you will build your own image dataset and implement a neural network by Pytorch.   The question is split in a number of steps. Every step gives you some marks. Answer the questions for  each step and include the screenshot of code  outputs  in your answer sheet.

-  Language  and Platform     Python (version 3.5 or above) with Pytorch (newest version). You may use any libraries available on Python platform, such as numpy, scipy, matplotlib, etc.  You need to run the code in the jupyter notebook.

-  Code Submission     All of your dataset, code  (Python ﬁles and ipynb ﬁles) should be a package in a single ZIP ﬁle,  with  a PDF of your IPython notebook with  output cells.  INCLUDE your dataset in the zip ﬁle.

1. Dataset Build                                                                                                                            [10 marks]

Create an image dataset for classiﬁcation with 120 images ( ‘.jpg’  format), featuring at least two cate- gories. Resize or crop the images to a uniform. size of 128 ⇥ 128 pixels. brieﬂy describe the dataset you constructed.

Load your dataset, randomly split the set into training set (80 images), validation set (20 images) and test set (20 images).

For the training set, use python commands to display the number of data entries, the number of classes, the number of data entries for each classes, the shape of the image size. Randomly plot 10 images in the training set with their corresponding labels.

3. Convolutional Network Model Build                                                                                    [5 marks]

// pytorch .network

class Network(nn.Module):

def __init___(self, num_classes=?):

super(Network, self).__init___()

self.conv1 = nn.Conv2d(in_channels=3, out_channels=5, kernel_size=3, padding=1)

self.pool = nn.MaxPool2d(2, 2)

self.conv2 = nn.Conv2d(in_channels=5, out_channels=10, kernel_size=3, padding=1)

self.fc1 = nn.Linear(10 * 5 * 5, 100)

self.fc2 = nn.Linear(100, num_classes)

def forward(self, x):

x = self.pool(F.relu(self.conv1(x)))

x = self.pool(F.relu(self.conv2(x)))

x = x.view(-1, 10 * 5 * 5)

x = self.fc1(x)

x = self.fc2(x)

return x

Implement Network, and complete the form below according to the provided Network. Utilize the symbol ‘-’to represent sections that do not require completion. What is the di↵erence between this model and AlexNet?

 Layer # Filters Kernel Size Stride Padding Size of Feature Map Activation Function Input Conv1 ReLU MaxPool Conv2 ReLU FC1 - - - ReLU FC2 - - -

4. Training                                                                                                                                       [10 marks]

Train the above Network at least 50 epochs. Explain what the lost function is, which optimizer do you use, and other training parameters, e.g., learning rate, epoch number etc. Plot the training history, e.g., produce two graphs (one for training and validation losses, one for training and validation accuracy) that each contains 2 curves. Have the model converged?

5.  Test                                                                                                                                                 [5 marks]

Test the trained model on the test set.  Show the accuracy and confusion matrix using python commands.

Q3. Real-world Application Questions                               [20 marks]

Give  ONE speciﬁc  real-world problem  that  can  be  solved  by  neural networks.   Answer  the  questions  below (answer to  each  question should not  exceed 200 words) .

1.  Detail the issues raised by this real-world problem, and explain how neural networks maybe used to address these issues.                           [5 marks]

2.  Choose an established neural network to tackle the problem.  Specify the chosen network and indicate the paper in which this model was published. Why you choose it? Explain.                           [5 marks]

3.  How to collect your training data?  Do you need labeled data to train the network?  If your answer is yes, specify what kind of label you need. If your answer is no, indicate how you train the network with unlabeled data.                     [5 marks]

4.  Deﬁne the metric(s) to assess the network. Justify why the metric(s) was/were chosen.        [5 marks]