【问题标题】:What does the error output from trainer.train() in PyBrain refer to?PyBrain 中 trainer.train() 的错误输出指的是什么?
【发布时间】:2015-10-30 03:33:35
【问题描述】:

从 PyBrain Trainer.train() 函数打印的错误指的是什么?更具体地说,当我这样做时:

>>> trainer = BackpropTrainer(fnn, ds_train)
>>> trainer.train()
0.024

数字 0.024 是什么意思?我问是因为当我训练我的神经网络时,我得到了 3000 的错误输出。

>>> trainer.train()
3077.0233

谁能解释一下这个数字的意义?

【问题讨论】:

    标签: python neural-network backpropagation pybrain


    【解决方案1】:

    这个数字似乎是训练过程中的平均加权误差。

    code on GitHub 很容易理解。这是它的编辑版本:

    def train(self):
        self.module.resetDerivatives()
        errors = 0
        ponderation = 0.
        for seq in self.ds._provideSequences():
            e, p = self._calcDerivs(seq)
            errors += e
            ponderation += p
            self.module.params[:] = self.descent(self.module.derivs, errors)
            self.module.resetDerivatives()
        return errors / ponderation
    
    def _calcDerivs(self, seq):
        self.module.reset()
        for sample in seq:
            self.module.activate(sample[0])
        error = 0
        ponderation = 0.
        for offset, sample in reversed(list(enumerate(seq))):
            target = sample[1]
            outerr = target - self.module.outputbuffer[offset]
            if len(sample) > 2:  # explicitly weighted examples
                importance = sample[2]
                error += 0.5 * dot(importance, outerr ** 2)
                ponderation += sum(importance)
                self.module.backActivate(outerr * importance)
            else:  # examples have unspecified weight (assume 1)
                error += 0.5 * sum(outerr ** 2)
                ponderation += len(target)
                self.module.backActivate(outerr)
        return error, ponderation
    

    它基本上遍历您提供的数据集,计算数据集中每个训练示例的网络平方误差(在_calcDerivs 方法中)。如果训练示例包含“重要性”,则这些示例用于加权平方误差;否则假设每个例子的重要性为1。

    在计算每个示例的导数并更新参数后,train() 方法返回总误差除以总重要性,或所有已处理训练序列的加权平均误差。 (在代码中,总的“重要性”或“权重”称为ponderation。)

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 2016-03-03
      • 2023-02-11
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2013-08-25
      相关资源
      最近更新 更多