之前对train和adapt不是很理解,看了帮助文档以后依然迷惑,在网上搜到了下面的这个说明,但是我感觉还是没有说清楚
Matlab神经网络工具箱中的Train和Adapt函数区别: http://www.matlabsky.com/thread-4084-1-1.html (出处: MATLAB技术论坛)
下面和大家分享一下我的理解(有时间可以先去看一下链接的解释):
后来意识到之前的理解是错误的,看一下MATLAB的关于train的注释:
Typically one epoch of training is defined as a single presentation of all input vectors to the network. The network is then updated according to the results of all those presentations.
all input我之前理解的是每一组输入,其实应该是所有的数据,一次训练指的是全部数据进行输入到调整网络完成为止,这是1epoch,至于多组数据输入产生的多个梯度,用一个平均梯度代表进行权值调整。这也就是为什么会进行多次训练以后才能够得到一个令人满意的误差结果。
Matlab神经网络工具箱中的Train和Adapt函数区别: http://www.matlabsky.com/thread-4084-1-1.html (出处: MATLAB技术论坛)
下面和大家分享一下我的理解(有时间可以先去看一下链接的解释):
MATLAB中train函数进行批训练,无论是哪种输入“[]”还是“{}”,都进行的是串行输入,和输入顺序无关。train适于马尔科夫链,可以打乱训练(trainr)。
adapt函数进行增长训练,对于输入“[]”/“{}”有所区别,一个是串行输入,另外一个是并行输入,并行输入也就是所谓的在线学习,网络收到一组数据网络更新一次。
后来意识到之前的理解是错误的,看一下MATLAB的关于train的注释:
Typically one epoch of training is defined as a single presentation of all input vectors to the network. The network is then updated according to the results of all those presentations.
all input我之前理解的是每一组输入,其实应该是所有的数据,一次训练指的是全部数据进行输入到调整网络完成为止,这是1epoch,至于多组数据输入产生的多个梯度,用一个平均梯度代表进行权值调整。这也就是为什么会进行多次训练以后才能够得到一个令人满意的误差结果。