为什么我的神经网络函数近似对种子敏感?

Why is my neural network function approximation sensitive to seed?

提问人:Jasper Rou 提问时间:10/26/2023 更新时间:10/26/2023 访问量:28

问:

我想使用以下代码近似神经网络对看涨期权的终端收益:

import torch
import DGM_torch as DNM
torch.manual_seed(12)

# Terminal pay-off call option
def Phi(S):
    return torch.max(torch.tensor(0.0), S - 1.0)

DNM_model = DNM.DGMNet(layer_width=50, input_dim=1) # Set up network 
nSim = 600                                          # Number of samples
S_high = 2.0

# Train  network
optimizer = torch.optim.Adam(DNM_model.parameters(), 1e-3) # Define the optimizer with an initial learning rate
for j in range(100):    
    S = torch.rand([nSim,1]) * S_high
    optimizer.zero_grad()
    loss = torch.mean((DNM_model(S) - Phi(S))**2)
    loss.backward()
    optimizer.step()

其中 DNM_model 是具有三层的长短期记忆模型。不知何故,将种子设置为 12 有效,但将其设置为 11 网络总是返回 0,但为什么呢?我认为网络学习这样的函数并不是很困难,而网络返回零会给人很大的损失。

python pytorch 神经网络 随机种子

评论


答: 暂无答案