为什么当我多次训练网络模型时,会得到不同的训练模型和不同的结果?

时间:2019-10-23 08:36:25

标签: matlab neural-network

为什么当我为相同的选项和相同的数据库训练网络模型时,我得到的训练模型和结果却不同,结果的分类却不同。

  

1)我有一个循环来训练n次神经网络模型

     

2)我设置了相同的训练选项

     

3)我有相同的数据库要训练和测试

     

4)我使用相同的预训练模型(例如google net)

最后,每次(n = 1,2,3),我都有不同的分类结果。差异甚至等于10个百分点


数据库-人脸图像(总是随机读取同一数据库) 模型-我使用了从Matlab进行预训练并仅在github上的面部图像上进行过预训练的模型。

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
  <div class="row">
    <div class="col-6 order-1">Section 1</div>
    <div class="col-6 order-3"> Section 2 Content. Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea animi, vero et ratione asperiores cumque aspernatur. Laudantium dolorum odit culpa maxime officiis aperiam necessitatibus enim eveniet, reprehenderit deserunt molestias in. </div>
    <div class="col-6 order-2"> Section 3</div>
    <div class="col-6 order-4"> Section 4</div>
  </div>
</div>

如果未标识某些选项,则表示是默认选项。

1 个答案:

答案 0 :(得分:0)

您提到的参数并未完全定义您的脚本。 此外,还涉及随机种子。使用预训练模型时,应重新初始化最后几层。使用完整的预训练参数通常会导致收敛到不良的局部最小值。

也许您已经这样做了,那么随机性就来自那里。另外我假设你分批训练。如果您不指定随机种子,则每次运行的批次都是不同的,因为每个批次包含的实例是根据随机种子选择的。

将训练实例以不同顺序呈现给NN会导致不同的结果。