【问题标题】:What does iteration in Machine Learning mean?机器学习中的迭代是什么意思?
【发布时间】:2017-10-22 22:13:24
【问题描述】:

我不明白机器学习中的迭代。由于编程是确定性(就像每次运行时都做同样的事情),如何通过反复运行相同的算法来提高准确性和再来一遍?

这个迭代概念是否与 RNN(循环神经网络)有关 - 从某种意义上说,它们会多次反馈给相同的中子 - 模型或 SGD(随机梯度下降)-他们在哪里获取相同的训练数据样本以提高效率- ?

谢谢

编辑:我所说的迭代是在我在这个网站上找到的这个玩具应用程序中: https://blog.kovalevskyi.com/rnn-based-chatbot-for-6-hours-b847d2d92c43

作者所做的是他使用 RNN 创建了一个聊天机器人。我不明白的是,增加迭代次数如何提高预测的准确性,因为每次都运行相同的算法。

但是从@Spirit_Dongdong 的帖子来看,似乎我对迭代的理解(如在每次迭代中所做的事情可能是错误的),因此,我试图澄清迭代的含义以及迭代中所做的事情.

【问题讨论】:

  • 迭代的概念很笼统,可以应用于很多情况,我想你的意思是迭代算法,所以请把你的问题说清楚,你到底想知道什么。

标签: machine-learning recurrent-neural-network


【解决方案1】:

本文讨论的是训练迭代。这是因为在训练神经网络时,我们使用迭代算法,通常是随机梯度下降。

这样做是为了解决优化问题,最小化函数,但我们不知道最小化该函数的参数值。然后我们使用梯度作为参数移动方向的信息,但它并没有告诉我们移动多少,所以我们移动一个固定的量(步长或学习率)。

然后考虑到所有这些,如果我们向梯度方向移动一步,我们更接近解决方案(最小值),但我们只是移动了一点,然后我们移动了一点,以此类推。这些是迭代。当您增加迭代次数时,您会更接近最小值和最优参数集,这些都是提高性能的原因。

您是对的,正在运行相同的算法,但输入不同。输入不断变化,因为参数的当前值在一次迭代后会发生变化。

【讨论】:

  • 啊,我明白了。所以我可以说如果 step_size 很大,需要的迭代次数会更小(假设我们不通过 min pt)?
  • @CodingNoobie 一般来说是的,但大多数时候很难说什么是大步长或小步长。
  • 对不起我的愚蠢问题,但下载示例后,我没有发现任何人提供正确的参数,因为这是一个计算机程序,运行完成后,您需要捕获一些变量并告诉用户这是正确的参数,不是吗?
  • @Abdelouahab 我不知道你在说什么,cmets 不是用来提问的,你必须在这个网站上创建你自己的问题。
  • @MatiasValdenegro 已经做到了,而且人们并不喜欢它!我只想要一个简单的外行回答stackoverflow.com/questions/45260829/…
【解决方案2】:

大部分机器学习问题都是优化问题。例如最小化损失函数或最大化似然函数。 有不同的优化方法,有些像 OLE(Ordinary Least Squares) 不需要迭代,而另一些像 SGD 或 newton's 找到优化的方向并进行迭代

【讨论】:

  • 那么那些在每次运行中没有充分利用所有可用训练数据的方法(例如SGD)是否需要迭代来提高准确性?那些使用所有数据的方法不会使用迭代,因为它对他们没有好处?我可以这样理解吗?
  • 没有。方法使用迭代,因为它们分配一些初始参数,计算优化它们的方向,并迭代以使参数值更好。一些方法使用所有训练数据并迭代(批量梯度下降)
  • 所以一次迭代意味着它试图通过只使用一个数据来获得结果?例如:给定一组 x 和 y,并要求它在 y = mx + c 中找到 m。所以一次迭代只意味着它只使用一组 x 和 y 来找到 m?
猜你喜欢
  • 2016-04-05
  • 2023-03-25
  • 2011-06-04
  • 1970-01-01
  • 2019-09-19
  • 2018-02-21
  • 2020-03-23
  • 1970-01-01
  • 2013-07-11
相关资源
最近更新 更多