智能系统NN Tutorial 解析

本文最后更新于:2023年11月12日 晚上

NN Tutorial

1 Q1

1.1 (a)

1.1.1 (i)

超参数就是不可被学习的,需要人为设定的。调整好的超参数可以让模型收敛更快,学习效果更好,是深度学习中至关重要的一环。

1.1.2 (ii)

常用于处理图像的神经网络是卷积神经网络(Convolutional Neural Network CNN)。

1.1.3 (iii)

这一个过程叫做迁移学习(Transfer learning),使用预训练模型能够在更短的时间内获得更好的效果。

1.1.4 (iv)

处理序列数据,或者时间序列数据使用的是循环神经网络(Recurrent Neural Network RNN)

1.2 (b)

由图可知,这是一个input shape =4×1= 4\times 1以及output shape =2×1= 2\times 1的自组织映射网络。

WW做列分块,有

W=[W1W2]W = \begin{bmatrix} W_1 & W_2 \end{bmatrix}

首先计算欧式距离确定哪个神经元是更优的,当输入为Xn(1)X_n(1)

{d1=[xn(1)W1]T[xn(1)W1]=0.22d2=[xn(1)W2]T[xn(1)W2]=0.26\begin{cases} d_1 = [x_n(1) - W_1]^T[x_n(1) - W_1] = 0.22 \\ d_2 = [x_n(1) - W_2]^T[x_n(1) - W_2] = 0.26 \end{cases}

显然d1d_1为更优的,则更新W1W_1

由权重更新的公式

W(k+1)=W(k)+η[XW(k)]W(k+1) = W(k) + \eta [X-W(k)]

得到

W1(k+1)=[0.50.60.80.3]+0.1([0.20.30.80.1][0.50.60.80.3])=[0.470.570.80.28]W_1(k+1) = \begin{bmatrix} 0.5 \\ 0.6\\ 0.8\\ 0.3 \end{bmatrix} + 0.1( \begin{bmatrix} 0.2 \\ 0.3\\ 0.8\\ 0.1 \end{bmatrix}- \begin{bmatrix} 0.5 \\ 0.6\\ 0.8\\ 0.3 \end{bmatrix})= \begin{bmatrix} 0.47 \\ 0.57\\ 0.8\\ 0.28 \end{bmatrix}

同样的,当输入为Xn(2)X_n(2)时,两个神经元的欧式距离为

{d1=[xn(1)W1(k+1)]T[xn(1)W1(k+1)]=0.41d2=[xn(1)W2]T[xn(1)W2]=0.66\begin{cases} d_1 = [x_n(1) - W_1(k+1)]^T[x_n(1) - W_1(k+1)] = 0.41 \\ d_2 = [x_n(1) - W_2]^T[x_n(1) - W_2] = 0.66 \end{cases}

显然,d1d_1仍然是更优的,采用同样的公式进行更新

W1(k+2)=[0.470.570.80.28]+0.1([0.60.90.90.8][0.470.570.80.28])=[0.4830.6030.810.332]W_1(k+2) = \begin{bmatrix} 0.47 \\ 0.57\\ 0.8\\ 0.28 \end{bmatrix} + 0.1( \begin{bmatrix} 0.6 \\ 0.9\\ 0.9\\ 0.8 \end{bmatrix}- \begin{bmatrix} 0.47 \\ 0.57\\ 0.8\\ 0.28 \end{bmatrix})= \begin{bmatrix} 0.483 \\ 0.603\\ 0.81\\ 0.332 \end{bmatrix}

1.3 ©

由题可得,定义全连接神经网络的结构为

{5个输入8个神经元4个神经元2个输出\begin{cases} 5个输入 \\ 8个神经元 \\ 4个神经元 \\ 2个输出 \end{cases}

以及进行全连接

每一层的输入输出映射关系为

Y=W×X+bY = W\times X+ \vec b

从输入到第一层,shape W=8×5shape\ W=8\times 5, dimb=8\dim \vec b = 8,
从第一层到第二层,shape W=4×8shape\ W=4\times 8, dimb=4\dim \vec b = 4,
从第二层到输出层,shape W=2×4shape\ W=2\times 4, dimb=2\dim \vec b = 2
则总可学习参数为

40+8+32+4+8+2=9440+8+32+4+8+2 = 94

2 Q2

2.1 (a)

2.1.1 (i)

注意此题第一小问计算需要用到第二小问给的条件(对,很离谱),注意到第二小问给了C1C_1C2C_2的计算方法

由图可知,规则RiR_i由前项规则AiA_iBiB_i决定,并且题目给出所有的逻辑运算均由ANDAND逻辑组成。

则从规则R1R_1开始查找接入的模糊集,它们分别是A1,B1A_1,B_1,且逻辑计算过后的结果由C2C_2输出,那么可以写出来第一条规则
R1R_1: If X1X_1 is A1A_1 ANDAND X2X_2 is B1B_1, Then C2=2X1+0.1X2+0.2C_2 = 2X_1+0.1X_2+0.2

同理,我们可以根据图中系统的结构和C1C_1, C2C_2的计算方法,给出
R2R_2: If X1X_1 is A1A_1 ANDAND X2X_2 is B2B_2, Then C2=2X1+0.1X2+0.2C_2 = 2X_1+0.1X_2+0.2
R3R_3: If X1X_1 is A1A_1 ANDAND X2X_2 is B3B_3, Then C1=0.2X12+3X2+2C_1 = 0.2X_1^2+3X_2+2
R4R_4: If X1X_1 is A2A_2 ANDAND X2X_2 is B2B_2, Then C2=2X1+0.1X2+0.2C_2 = 2X_1+0.1X_2+0.2
R5R_5: If X1X_1 is A3A_3 ANDAND X2X_2 is B3B_3, Then C2=2X1+0.1X2+0.2C_2 = 2X_1+0.1X_2+0.2
R6R_6: If X1X_1 is A3A_3 ANDAND X2X_2 is B1B_1, Then C1=0.2X12+3X2+2C_1 = 0.2X_1^2+3X_2+2

2.1.2 (ii)

由图Q2BQ2B给出的模糊集的Membership function,不难得到,

X1X_1对于Fuzzy set A1A_1的Membership value为uA1(X1)=0.5u_{A_1}(X_1) = 0.5,

对于A2A_2的Membership value 为uA2(X1)=0.25u_{A_2}(X_1) = 0.25

同理,可以得到

uB2(X2)=uB3(X2)=0.4u_{B_2}(X_2) = u_{B_3}(X_2) = 0.4

现在进行模糊推理,

由刚才得到的Membership value可以知道,X1X_1在不同程度上隶属于A1A_1A2A_2X2X_2在相同程度上隶属于B2B_2,B3B_3,则规则R2R_2,R3R_3,R4R_4被激活。

题目要求使用 Max-Min 推理,则AND逻辑取最小值

{R2输出=min{uA1(X1),UB2(X2)}=min{0.5,0.4}=0.4R3输出=min{0.5,0.4}=0.4R4输出=min{0.25,0.4}=0.25\begin{cases} R_2输出 = \min\{u_{A_1}(X_1),U_{B_2}(X_2)\} = \min\{0.5,0.4\} = 0.4 \\ R_3输出 = \min\{0.5,0.4\} = 0.4 \\ R_4输出 = \min\{0.25,0.4\} = 0.25 \\ \end{cases}

又后项的输出为

{C1=2×0.22+3×0.7+2=4.18C2=2×0.2+0.1×0.7+0.2=0.67\begin{cases} C_1 = 2\times 0.2^2+3\times 0.7+2 = 4.18 \\ C_2 = 2\times 0.2+0.1\times 0.7+0.2 = 0.67 \end{cases}

最后利用加权平均法进行去模糊化

Y=0.4×0.67+0.4×4.18+0.25×0.670.4+0.4+0.25=2.01Y = \frac{0.4\times 0.67+0.4\times 4.18+0.25\times 0.67}{0.4+0.4+0.25} = 2.01

2.2 (b)

题目或答案有问题,本质是考查Fuzzy set 基本运算

3 Q3

3.1 (a)

由观察法得到,Brown, Angela, Brian 三人的决策与Index和Price of copper之间是逻辑关系。做如下符号表示

Symbol value
UP 1
DOWN 0
HOLD 0
SELL 1

那么原表格可以用数字表示为

Index Price Brown Angela Brian
0 0 0 0 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 0

通过以上真值表,可以观察到

{Brown=Price OR IndexAngela=Price AND IndexBrian=Price XOR Index\begin{cases} Brown = Price\ OR \ Index \\ Angela = Price\ AND \ Index \\ Brian = Price\ XOR \ Index \end{cases}

首先,对于Brown的逻辑来说,他的数据可表示为

YBrown=[0111]XBrown=[00011011]Y_{Brown} = \begin{bmatrix} 0 \\ 1 \\ 1 \\ 1 \\ \end{bmatrix} X_{Brown} = \begin{bmatrix} 0 & 0 \\ 0 & 1 \\ 1 & 0\\ 1 & 1 \end{bmatrix}

令单层感知机

Y1=XBrown×[11]0.5Y_1 = X_{Brown} \times \begin{bmatrix} 1 \\ 1 \end{bmatrix}- 0.5

Y^1=ϵ(Y1)\hat Y_1 = \epsilon(Y_1)

where

ϵ(t)={0t<01t0\epsilon(t) = \begin{cases} 0 \quad t<0 \\ 1 \quad t\geq 0 \end{cases}

对于Angela的逻辑来说,她的数据可表示为

YAngela=[0111]XAngela=[00011011]Y_{Angela} = \begin{bmatrix} 0 \\ 1 \\ 1 \\ 1 \\ \end{bmatrix} X_{Angela} = \begin{bmatrix} 0 & 0 \\ 0 & 1 \\ 1 & 0\\ 1 & 1 \end{bmatrix}

令单层感知机

Y2=XAngela×[11]1.5Y_2 = X_{Angela} \times \begin{bmatrix} 1 \\ 1 \end{bmatrix}- 1.5

Y^2=ϵ(Y2)\hat Y_2 = \epsilon(Y_2)

则以Y1Y_1,Y2Y_2为核,ϵ(t)\epsilon(t)为激活函数的单层感知机可以拟合Brown 和 Angela的逻辑,但是不能拟合Brian的逻辑。

现证明XOR逻辑无法拟合
反证法:假设函数

y=w1x1+w2x2+by = w_1x_1+w_2x_2+b

可以拟合XOR逻辑,

x1x_1为0,此时的输入可能为[0,0][0,0][0,1][0,1],对应的输出为0,10,1,即随着x2x_2增大,函数值增大,意味着

yx2=w2>0\frac{\partial y}{\partial x_2} = w_2>0

x1x_1为1,此时的输入可能为[1,0][1,0],[1,1][1,1],对应的输出为1,01,0,即随着x2x_2增大,函数值减小,意味着

yx2=w2<0\frac{\partial y}{\partial x_2} = w_2 <0

此时矛盾,则函数不能拟合XOR逻辑。
Q.E.D.Q.E.D.

综上,Brown和Angela的逻辑可以被单层感知机拟合,但Brian的逻辑不行。

3.2 (b)

现用矩阵形式表示每一层的映射关系。
设节点3输出为Y3Y_3,节点4输出为Y4Y_4,则有

[Y3Y4]=ϕ{[w13w23w14w24]×[x1x2]}\begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix}= \phi\{ \begin{bmatrix} w_{13} & w_{23} \\ w_{14} & w_{24} \end{bmatrix}\times \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \}

设节点5,6的输出为Y5,Y6Y_5,Y_6,则有

[Y5Y6]=ϕ{[w35w45w36w46]×[Y3Y4]}\begin{bmatrix} Y_5 \\ Y_6 \end{bmatrix}= \phi\{ \begin{bmatrix} w_{35} & w_{45} \\ w_{36} & w_{46} \end{bmatrix}\times \begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix} \}

现对给出的输入数据进行前馈运算

P1=[0,0]P_1 = [0,0]时,

[Y3Y4]=ϕ{[2341]×[00]}=[11]\begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix}= \phi\{ \begin{bmatrix} -2 & 3 \\ 4 & -1 \end{bmatrix}\times \begin{bmatrix} 0 \\ 0 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

[Y5Y6]=ϕ{[1111]×[00]}=[11]\begin{bmatrix} Y_5 \\ Y_6 \end{bmatrix}= \phi\{ \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}\times \begin{bmatrix} 0 \\ 0 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

输出为[1,1][1,1].

P2=[1,0]P_2 = [1,0]时,

[Y3Y4]=ϕ{[2341]×[10]}=[01]\begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix}= \phi\{ \begin{bmatrix} -2 & 3 \\ 4 & -1 \end{bmatrix}\times \begin{bmatrix} 1 \\ 0 \end{bmatrix} \} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

[Y5Y6]=ϕ{[1111]×[01]}=[01]\begin{bmatrix} Y_5 \\ Y_6 \end{bmatrix}= \phi\{ \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}\times \begin{bmatrix} 0 \\ 1 \end{bmatrix} \} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

输出为[0,1][0,1]

P3=[0,1]P_3 = [0,1]时,

[Y3Y4]=ϕ{[2341]×[01]}=[10]\begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix}= \phi\{ \begin{bmatrix} -2 & 3 \\ 4 & -1 \end{bmatrix}\times \begin{bmatrix} 0 \\ 1 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}

[Y5Y6]=ϕ{[1111]×[10]}=[10]\begin{bmatrix} Y_5 \\ Y_6 \end{bmatrix}= \phi\{ \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}\times \begin{bmatrix} 1 \\ 0 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}

输出为[1,0][1,0]

P4=[1,1]P_4 = [1,1]时,

[Y3Y4]=ϕ{[2341]×[11]}=[11]\begin{bmatrix} Y_3 \\ Y_4 \end{bmatrix}= \phi\{ \begin{bmatrix} -2 & 3 \\ 4 & -1 \end{bmatrix}\times \begin{bmatrix} 1 \\ 1 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

[Y5Y6]=ϕ{[1111]×[11]}=[11]\begin{bmatrix} Y_5 \\ Y_6 \end{bmatrix}= \phi\{ \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}\times \begin{bmatrix} 1 \\ 1 \end{bmatrix} \} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

输出为[1,1][1,1]

3.3 ©

深度学习是一种机器学习算法,它使用一层层级联的,非线性处理单元来做特征提取和映射。每一层都把上一层的输出当作输入。它可以是监督学习,也可以是非监督学习。它使用梯度下降的形式,通过反向传播算法进行训练。

其中一个例子是卷积神经网络,它可以被用来做图像分类任务。

4 Q4

4.1 (a)

由题给的结构,可得

Y1(t+1)=f{X(t)×W12+Y(t)[0.50.2]}Y_1(t+1) = f\{X(t)\times W_{12} + Y(t)\circ \begin{bmatrix} 0.5 & 0.2 \end{bmatrix}\}

Y(t+1)=f{Y1(t+1)×[0.10.4]}Y(t+1) = f\{Y_1(t+1)\times \begin{bmatrix} 0.1 \\ 0.4 \end{bmatrix}\}

设系统初始状态松弛,那么在给定输入x(1)=[1.0,0.5,0.1]x(1) = [1.0,0.5,0.1]时,得到

Y1(1)=f{[1.00.51.0]×[0.40.10.60.62.01.0]+[00]}=[0.57440.6225]Y_1(1) = f\{ \begin{bmatrix} 1.0 & 0.5 & 1.0 \end{bmatrix}\times \begin{bmatrix} 0.4 & 0.1 \\ -0.6 & 0.6 \\ 2.0 & 1.0 \end{bmatrix}+ \begin{bmatrix} 0 & 0 \end{bmatrix} \}= \begin{bmatrix} 0.5744 & 0.6225 \end{bmatrix}

Y(1)=f{[0.57440.6255]×[0.10.4]}=0.6128Y(1) = f\{ \begin{bmatrix} 0.5744 & 0.6255 \end{bmatrix}\times \begin{bmatrix} 0.1 \\ 0.4 \end{bmatrix}\} = 0.6128

第二次迭代时,x(2)=[1.0,2.0,0.5]x(2) = [1.0,2.0,0.5],得到

Y1(2)=f{[1.02.00.5]×[0.40.10.60.62.01.0]+[0.57440.6255][0.50.2]}=[0.61940.8726]Y_1(2) = f\{ \begin{bmatrix} 1.0 & 2.0 & 0.5 \end{bmatrix}\times \begin{bmatrix} 0.4 & 0.1 \\ -0.6 & 0.6 \\ 2.0 & 1.0 \end{bmatrix}+ \begin{bmatrix} 0.5744 & 0.6255 \end{bmatrix}\circ \begin{bmatrix} 0.5 & 0.2 \end{bmatrix} \}= \begin{bmatrix} 0.6194 & 0.8726 \end{bmatrix}

Y(2)=f{[0.61940.8726]×[0.10.4]}=0.8220Y(2) = f\{ \begin{bmatrix} 0.6194 & 0.8726 \end{bmatrix}\times \begin{bmatrix} 0.1 \\ 0.4 \end{bmatrix}\} = 0.8220

注:本题答案错把输出的激活函数当成隐藏层的激活函数了,输出的激活函数是f(x)=2xf(x) = 2x

4.2 (b)

对于时间序列数据来说,输入神经网络的是时间采样数据x[t],x[t1],x[t2]...x[t],x[t-1],x[t-2],...,训练和普通的神经网络一样,使用反向传播算法,网络的预测是数据的后一个时刻。

4.3 ©

两者的区别在于是否使用有目标的数据,或者说有标签的数据,监督学习是要使用有标签的数据的,而无监督学习不使用,一般是聚类或者分类数据。

4.4 (d)

本题可通过把真值表画在直角坐标系下来说明数据是否线性可分,也可以用以下证明作为补充。
反证法:假设函数

y=w1x1+w2x2+by = w_1x_1+w_2x_2+b

可以拟合XOR逻辑,

x1x_1为0,此时的输入可能为[0,0][0,0][0,1][0,1],对应的输出为0,10,1,即随着x2x_2增大,函数值增大,意味着

yx2=w2>0\frac{\partial y}{\partial x_2} = w_2>0

x1x_1为1,此时的输入可能为[1,0][1,0],[1,1][1,1],对应的输出为1,01,0,即随着x2x_2增大,函数值减小,意味着

yx2=w2<0\frac{\partial y}{\partial x_2} = w_2 <0

此时矛盾,则函数不能拟合XOR逻辑。
Q.E.D.Q.E.D.

5 Q5

5.1 (a)

由题知输入是一个8维的数据,然后要映射到隐藏层的5维空间,那么

Y1 5×1=W5×8×X8×1+b1Y_{1\ 5\times 1} = W_{5\times 8}\times X_{8\times 1} +\vec b_1

得到输入映射到隐藏的权重矩阵大小是5×85\times 8

又隐藏层要映射到输出,输出为一个常量,则

y=W1×5×Y1 5×1+b2y = W_{1\times 5}\times Y_{1\ 5\times 1} +\vec b_2

所以从隐藏层映射到输出的权重矩阵大小为1×51\times 5.

5.2 (b)

对于此单层神经网络,有

y=f{W×X}=3×{[456]×[123]}=96\begin{aligned} y &= f\{W \times X\} \\ &= 3\times\{ \begin{bmatrix} 4 & 5 & 6 \end{bmatrix}\times \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}\}=96 \end{aligned}

5.3 ©

哪些步骤可以用来防止神经网络过拟合

  1. 可以使用验证数据集,在验证集误差增加的时候停止训练
  2. 使用预先设定好的训练轮数
  3. 使用预先设定好的误差阈值

5.4 (d)

本题答案或题目错误,答案使用的计算是隐藏层反馈,但题给的结构是到了输出再反馈。本质考查部分反馈神经网络的输入输出的计算,在前面有类似的题。

6 Q6

6.1 (a)

由题目中的结构列些传递关系

{v1=w11x1+w12x2+w10v2=w21x1+w22x2+w20Y=w1v1+w2v2+w0\begin{cases} v_1 = w_{11}x_1+w_{12}x_2+w_{10} \\ v_2 = w_{21}x_1+w_{22}x_2+w_{20}\\ Y = w_1v_1+w_2v_2+w_0 \end{cases}

矩阵为

V=f{[0.61.90.50.7]×X+[0.41.2]}V = f\{ \begin{bmatrix} -0.6 & 1.9 \\ 0.5 & -0.7 \end{bmatrix}\times X+ \begin{bmatrix} 0.4 \\ -1.2 \end{bmatrix}\}

Y=f{[3.50.5]×V+1}Y = f\{ \begin{bmatrix} -3.5 & 0.5 \end{bmatrix}\times V+1 \}

所以题给神经网络与答案计算所使用的神经网络不是同一个,此题错误。

6.2 (b)

隐藏层给予神经网络对非线性数据建模的能力。

6.3 ©

训练集是由输入与对应输出匹配起来的许多对数据。每一对数据代表着神经网络应该对一个特定的输入有怎样的响应。网络被训练来使其对训练集每一个输入都有正确的输出。使用训练集的算法叫做监督学习算法。

当网络对输入有错误的响应的时候,误差就被用来调整网络的权重,使得下一轮学习的时候误差更小,这一过程不断重复,利用训练集中的数据使得误差最终变的充分地小。

6.4 (d)

在开发这个系统之前,银行应该负责提供数据,即银行应该有充足数量的有标签的数据来训练模型。这些数据可能包括过去用户的信用度信息,比如信用评分,付款历史和其它相关的财务数据。

其中一个问题就是收集和整理数据是很耗费时间的,另外手动做数据标注也是要消耗很多劳力的。另外,可能存在收集和使用个人财务数据的隐私问题

另一个问题是数据的质量,为了让模型的性能更好,数据应该是具有代表性的,且噪声应该尽可能低。如果数据有偏差或者包含错误,模型就无法准确评估客户的信誉度。


智能系统NN Tutorial 解析
https://jesseprince.github.io/2023/01/02/bachelor/int_sys/int_sys_nn_tuto/
作者
林正
发布于
2023年1月2日
许可协议