显示epocs和批次大小的过度拟合

问题描述

我正在看ml5.js中的这个示例。我正在尝试以此构建一个小的脚本,在其中我可以向用户展示更改batchSizes或历元数的影响。但是,在这种情况下,即使我更改了值,分类还是正确的,并且始终提供0.9999的高置信度。有什么方法可以修改方法,从而使我能够清楚地演示使用较小/较大的历元和批量大小的影响吗?

任何示例都会有所帮助。

let nn;

const options = {
  inputs: 1,outputs: 2,task: 'classification',debug: true
}

function setup(){
  createCanvas(400,400);
  nn = ml5.neuralNetwork(options);


  console.log(nn)
  createTrainingData();
  nn.normalizeData();

  const trainingOptions={
    batchSize: 24,epochs: 32,}
  
  nn.train(trainingOptions,finishedTraining); // if you want to change the training options
  // nn.train(finishedTraining); // use the default training options
}

function finishedTraining(){

  nn.classify([300],function(err,result){
    console.log("RESULT",result);
  })
}


function createTrainingData(){
    for(let i = 0; i < 400; i++){
      if(i%2 === 0){
        const x = random(0,width/2);
        nn.addData( [x],['left'])
      } else {
        const x = random(width/2,width);
        nn.addData( [x],['right'])
      }
    }
}

p5编辑器链接

https://editor.p5js.org/ml5/sketches/NeuralNetwork_Simple_Classification

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)