先来看个案例:
图片中0.01系数去掉的效果:
损失值非常高,直到训练110次的损失值仍然有0.75,而且推荐效果很不好;
有了0.01后,
训练第二次的时候就比上面训练最好的效果好很多;推荐效果也是杠杠的;
结论:初始值非常重要;
数据集放大100倍,训练次数5000次左右:
初始误差也是8左右
参数乘以0.01后:初始误差0.8左右开始;
训练70次就可以达到上面训练5000次的效果;
训练130次左右,效果远好于第一种情况 ;
再看basis的作用,去掉basis后的效果:
结论:初始化极其重要,weights乘以0.01,去掉basis后,效果增加极其明显;
研究的动机:新建的架构,训练初始值就是从0.008开始的,数据什么都一样,但损失值相差这么大,无法相信,通过这一系列研究后,发现一切都是对的,就是因为无意之间乘以0.01和去掉了 basis的结果;
提问:什么的情况下,weight越小越好,什么情况下要basis结果会较好呢?
个人猜想:假设存在一套完美的参数,当然是越接近越好,不存在越大越好或越小越好这种片面的结论;完美的情况中存在着这这样的偏置项,那么就需要,否则就不需要;
在实践中,可以慢慢尝试,然后选择合适的参数,比如每种情况设置好,训练个100次,看哪种结果比较好,然后定下来继续后面的研究;