要解决的问题是非线性函数的非线性回归。我的实际问题是对函数“在许多二次形式上找到最大值”进行建模:max(w.H.T * Q * w)但是为了开始并了解更多关于神经网络的信息,我使用 Pytorch 创建了一个用于非线性回归任务的玩具示例。问题是网络永远不会以令人满意的方式学习函数,即使我的模型很大,有多个层(见下文)。还是不够大或太大?如何改进甚至简化网络以获得更小的训练误差?
我尝试了不同的网络架构,但结果总是不尽如人意。通常,误差在 0 左右的输入区间内非常小,但网络无法为区间边界的区域获得良好的权重(见下图)。在一定数量的 epoch 之后,损失没有改善。我可以生成更多的训练数据,但我还没有完全理解,如何改进训练(调整参数,如批量大小、数据量、层数、标准化输入(输出?)数据、神经元数量、时代等)
我的神经网络有 8 层,神经元数量如下1, 80, 70, 60, 40, 40, 20, 1:
目前,我不太关心过度拟合,我的目标是了解为什么需要选择某个网络架构/某些超参数。当然,同时避免过度拟合将是一个好处。
我对将神经网络用于回归任务或作为函数逼近器特别感兴趣。原则上,根据通用逼近定理,我的问题应该能够通过单层神经网络逼近到任意精度,这不是正确的吗?


