高能物理问题的最佳人工神经网络架构

机器算法验证 机器学习 神经网络 卷积神经网络 人工智能
2022-04-09 05:27:28

首先,免责声明:我不确定这是否是这个问题的正确 Stack Exchange,但我不知道机器学习特定的 SE。

我正在研究表征高能物理学中的粒子射流。我正在尝试使用图像识别技术,特别是卷积神经网络将喷气机分为两类。

这些类可以通过以下特征进行区分:

  • 检测器层之间的命中数突然“跳跃”
  • 命中集中半径
  • 沉积在每一层的能量

我正在使用 123x123x4 图像。每个通道中的每个像素代表沉积在探测器层中的能量水平。我担心在深度学习方法中甚至可能无法做到这一点,因为每张图像中通常只有 150-300 个像素。

我想使用 ConvNet 对两种不同类型的喷气机进行分类。但是,我不确定要使用什么架构。

还有其他变量在分类中可能很重要,我也希望能够包括这些变量(可能在输出之前的密集层中)。

我尝试了以下架构,并使用 Ada、Admax 和 Adadelta 进行了训练,但没有收敛:

              ___________      _________      _________      _________     ________    ______
              | Conv    |     | Max    |     | Conv    |     | Max    |    |       |   |     |
    Image --> | Layer 1 | --> | Pool 1 | --> | Layer 2 | --> | Pool 2 | -->|       |   |     |
              |_________|     |________|     |_________|     |________|    | Dense |   | Out |
                                                                           | Layer |-->|_____|
   Other      ------------------------------------------------------------>|       |
   Data                                                                    |       |
                                                                           |_______|

对我应该尝试的架构有什么建议吗?

2个回答

你的架构看起来不错。我的意思是,它直接来自 MNIST lenet。这是一个很好的可靠网络。然后,您可以根据您的损失曲线,通过增加容量(即层数、每层通道等)来随着时间的推移对其进行进化。

您还可以考虑添加 dropout 以进行正则化。

至于收敛......几乎不可能不收敛,除非你使用的学习率太高。所以,将你的学习率除以 10,直到它开始收敛。你可以选择一些很小的子集,例如 32 个图像,然后使用越来越小的学习率对这些图像进行训练,直到这 32 个图像的误差降到零(应该这样,因为你很容易过度拟合它们) .

然后,一旦 32 张图像的损失降至零,即您选择了足够小的学习率,修复了任何错误等,那么您可以添加越来越多的数据,然后开始增加网络的容量,即添加层等等。而且你可能想要添加 dropout,它非常适合鼓励泛化来测试数据。

编辑:哦,你正在使用 Adadelta 等,它应该为你处理学习率。嗯...我主要使用 SGD,而 SGD 在某种程度上是深度网络的标准(尽管最近逐渐失宠)。您可能会考虑尝试使用较小的学习率的 SGD,然后看看会发生什么。

托马斯·拉塞尔

首先,这是一个非常有趣的问题要解决。

我认为你不应该合并从 CNN 和其他变量中提取的特征。您可以尝试端到端训练 CNN 以预测班级分数,并使用其他变量来训练神经网络以预测班级分数,然后通过一些方法合并两个预测(例如取均值)以进行最终预测。但是这种策略的性能还取决于你如何规范化输入和设计你的网络?