11.12
列出BP神经网络前馈过程公式。(可手写拍照上传,写清楚学号姓名)
- 我的答案:
-
1. 对于输入层到隐含层: - 隐含层神经元的输入值\(net_j\)为:\(net_j=\sum_{i=1}^{n}w_{ij}x_i+\theta_j\),其中\(n\)是输入层神经元个数,\(w_{ij}\)是输入层第\(i\)个神经元与隐含层第\(j\)个神经元之间的连接权重,\(x_i\)是输入层第\(i\)个神经元的输入值,\(\theta_j\)是隐含层第\(j\)个神经元的阈值。 - 隐含层神经元的输出值\(y_j\)为:\(y_j = f(net_j)\),其中\(f(\cdot)\)通常为 sigmoid 函数\(f(x)=\frac{1}{1 + e^{-x}}\)。 2. 对于隐含层到输出层: - 输出层神经元的输入值\(net_k\)为:\(net_k=\sum_{j=1}^{m}w_{jk}y_j+\theta_k\),其中\(m\)是隐含层神经元个数,\(w_{jk}\)是隐含层第\(j\)个神经元与输出层第\(k\)个神经元之间的连接权重,\(y_j\)是隐含层第\(j\)个神经元的输出值,\(\theta_k\)是输出层第\(k\)个神经元的阈值。 - 输出层神经元的输出值\(o_k\)为:\(o_k = g(net_k)\),其中\(g(\cdot)\)也通常为 sigmoid 函数或线性函数等,具体根据问题需求确定。
2. (简答题)请写出BP神经网络的伪代码。(手写拍照上传,写清楚学号姓名)
- 我的答案:
-
初始化权重矩阵 W 和偏置向量 b
设置学习率 learning_rate
设置最大迭代次数 max_iterations
# 训练过程
for iteration in range(max_iterations):
# 前向传播
for 输入样本 x:
hidden_layer_input = x 与 W[输入层到隐藏层] 的矩阵乘法加上 b[隐藏层]
hidden_layer_output = 激活函数(hidden_layer_input)
output_layer_input = hidden_layer_output 与 W[隐藏层到输出层] 的矩阵乘法加上 b[输出层]
predicted_output = 激活函数(output_layer_input)
# 计算误差
error = 实际输出 - predicted_output
# 反向传播
# 输出层误差梯度
output_layer_gradient = error * 输出层激活函数的导数(output_layer_input)
# 更新隐藏层到输出层的权重和偏置
W[隐藏层到输出层] += learning_rate * hidden_layer_output.T.dot(output_layer_gradient)
b[输出层] += learning_rate * output_layer_gradient.sum(axis=0)
# 隐藏层误差梯度
hidden_layer_gradient = output_layer_gradient.dot(W[隐藏层到输出层].T) * 隐藏层激活函数的导数(hidden_layer_input)
# 更新输入层到隐藏层的权重和偏置
W[输入层到隐藏层] += learning_rate * x.T.dot(hidden_layer_gradient)
b[隐藏层] += learning_rate * hidden_layer_gradient.sum(axis=0)
# 预测过程
def predict(x):
hidden_layer_input = x 与 W[输入层到隐藏层] 的矩阵乘法加上 b[隐藏层]
hidden_layer_output = 激活函数(hidden_layer_input)
output_layer_input = hidden_layer_output 与 W[隐藏层到输出层] 的矩阵乘法加上 b[输出层]
return 激活函数(output_layer_input)
二. 填空题(共4题,66.8分)
3. (填空题)BP神经网络有几层隐层?
- 我的答案:
- (1) 三层
4. (填空题)BP神经网络的激活函数是()函数
- 我的答案:
- (1) sigmoid
5. (填空题)BP神经网络的优化目标是网络输出和样本实际标签的()。
- 我的答案:
- (1) 均方差误差最小化
6. (填空题)BP神经网络的优化过程使用梯度下降法,其中步长是给定的(),下降方向是()方向。
- 我的答案:
- (1) 学习率
- (2) 损失函数负梯度

浙公网安备 33010602011771号