这题要你手写一个 2-3-1 的前馈神经网络,并对单个样本做一次完整的:
网络结构:
实现一个两层全连接神经网络,网络结构为:
给定网络参数 W1, b1, W2, b2,单个输入样本 x = [x1, x2] 和标签 y(0 或 1),以及学习率 lr,对这个样本执行:
需要返回 loss 和更新后的参数。
设输入为 x∈R2:
隐藏层线性变换: z1=W1x+b1(维度 3)
ReLU 激活: h=ReLU(z1)=max(0,z1)
输出层线性变换: z2=W2⊤h+b2(标量)
Sigmoid 输出: y^=σ(z2)=1+e−z21
loss=−[ylogy^+(1−y)log(1−y^)]
你需要对以上计算过程进行反向传播,求出对所有参数的梯度,并使用学习率 lr 做一次梯度下降更新:
lr:学习率W1:形状为 2×3 的隐藏层权重矩阵b1:长度为 3 的隐藏层偏置向量W2:长度为 3 的输出层权重向量b2:输出层偏置标量x:长度为 2 的输入向量y:标签,y∈0,1loss:当前样本的二分类交叉熵损失W1'、b1'、W2'、b2':一次梯度更新后的参数输入:
lr = 0.1
W1 = [[0.1, -0.5, 0.3],[0.4, 0.5, -0.6]]
b1 = [0.0, 0.1, 0.0]
W2 = [0.2, -0.1, 0.4]
b2 = 0.0
x = [1.0, 2.0]
y = 1
输出:
loss = 0.63
W1' = [[0.11, -0.5, 0.3], [0.42, 0.49, -0.6]]
b1' = [0.01, 0.1, 0.0]
W2' = [0.24, -0.07, 0.4]
b2' = 0.05
输入和参数均为浮点数,使用双精度计算
维度约束:
W1 为 2×3b1 长度为 3W2 长度为 3b2 为标量x 为长度 2学习率范围: 0<lr≤1
输入向量范围: −1000≤x[i]≤1000
权重与偏置范围: −10≤W1[i][j]≤10
−10≤b1[j]≤10
−10≤W2[j]≤10
−10≤b2≤10
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.