我在机器学习中没有理解迭代。由于编程是确定性的(如同每次运行时都做同样的事情),如何通过运行相同的算法来提高准确度又一次?
这个迭代概念是否与 RNN (递归神经网络)有关 - 在某种意义上它们反馈到同一个中子的次数 - 模型或 SGD (随机梯度下降) - 他们采用相同的训练数据样本以提高效率 - ?
由于
编辑:Iterations的意思是在我在这个网站上找到的这个玩具应用程序中: https://blog.kovalevskyi.com/rnn-based-chatbot-for-6-hours-b847d2d92c43
作者所做的是他使用RNN创建了一个聊天机器人。我无法理解的是,由于每次运行相同的算法,增加迭代次数如何提高预测的准确性。
但是从@ Spirit_Dongdong的帖子来看,似乎我对迭代的理解(如在每次迭代中所做的那样可能是错误的),因此,我试图弄清楚迭代的含义是什么,什么是在迭代中完成。
答案 0 :(得分:2)
文章谈到的是训练迭代。这是因为在训练神经网络时,我们使用迭代算法,通常是随机梯度下降。
这样做是为了解决优化问题,最小化函数,但我们不知道最小化该函数的参数值。然后我们使用渐变作为移动参数的方向的信息,但它不告诉我们要移动多少,所以我们移动一个固定的数量(步长或学习率)。
然后考虑所有这些,如果我们向梯度方向移动一步,我们更接近解决方案(最小值),但我们只是移动了一点,然后我们移动了一点,依此类推。这些都是迭代。当您增加迭代次数时,您会更接近最小值和最佳参数集,这些都可以提高性能。
你是正确的,正在运行相同的算法,但没有相同的输入。输入不断变化,因为参数的当前值在一次迭代后会发生变化。
答案 1 :(得分:0)
大多数机器学习问题都是优化问题。例如最小化损失函数或最大化似然函数。 有不同的优化方法,有些像OLE(普通最小二乘法)不需要迭代,而其他一些像SGD或牛顿等找到优化方向并迭代它