我有一批数据,是深度学习提取的图像特征到高维空间的映射,具体表现为一个高斯分布,高斯的存储形式是只记录他的均值A和方差B
现在我设置一个在0-1之间的常数μ。
我的数据是分批记录的,比如第一批数据得到a1(均值)和b1(方差)之后
令A1 = a1 , B1 = b1
此时学习第二批数据,得到这批数据的a2和b2,我需要对A、B进行更新
令A2 = (1-μ)× A1 + μ × a2
令B2 = (1-μ)× B1 + μ × b2
以此类推,通过上述式子的形式来不断更新A和B,即
学习第n批数据,得到这批数据的an和bn
令An = (1-μ)× An-1 + μ × an
令Bn = (1-μ)× Bn-1 + μ × bn
最后,当数据都学习并更新完,我希望获得一个将每批数据的均值方法所代表的分布融合得比较全面的A和B。
问题:
但是我现在的更新公式是一个比较粗暴线性公式,且受μ影响很大,比如μ为0.9的话,其实最后A几乎被最后的数据特征“占据”了,四舍五入前面白练。
这只是一个极端的例子,我的意思是这个公式会导致学习的数据“遗忘”,更新到第5代时,A1在A5在中的占比仅为原来的(1-μ)^4,几乎可以约等于0了,即将第一代数据“遗忘”了。
因此,请问可不可以推荐一个高级一点的更新公式,有效克服“遗忘”现象,非线性啊什么的都行,我感觉这种在数据处理领域会有可借鉴的公式。
抢个座~坐等大佬回答
在你求知的路上为你助力,提供参考:非主流自然语言处理——遗忘算法系列(一):算法概述,链接:https://cloud.tencent.com/developer/article/1105570?ivk_sa=1024320u
这些数据不是服从同一个分布的话这样的数据更新意义是什么呢?如果服从同一个分布,那就有具体的更新公式才对吧,在这里更新应该还得需要每一批的样本个数?
等大佬
u设为an-1/(an+an-1)其中可以去掉最大的a和最小的a,缺点是测试图像特征差异越大,这次学习的占比越大。
如果需要的是图像差异越小的数据占比越大,你可以看看统计学区间置换。
如果非标准正态分布X~N(μ,σ^2),那么关于X的一个一次函数 (X-μ)/σ ,就一定是服从标准正态分布N(0,1),既然你都能计算出来均值和方差,那么久可以通过这个方法变换之后使得结果服从标准正态分布。
所以不知道你有无具体标签数据,还是你可以很确定其符合高斯分布。如果你确定其符合高斯分布的话,就可以认为通过上面的方法认为其符合标准正太分布,所以就可以按照类似神经网络一样根据loss来更新权重,你的loss就是一个标准正态分布函数,每个批次的loss更新权重之后在验证集上面计算所有批次的总loss和总的准确率,最后稳定的结果就会是符合你要求的。
而像你描述的这样,每个批次更新A和B之后,你没有一个衡量此次更新是否合理的过程,这个就会导致一旦你的某个批次数据噪声比较大,就会让你的AB波动,从而影响后面的计算。
还有一个是机器学习方面的,你两个或者多个批次之间AB两个参数是不是可以用拉格朗日乘数法来优化?这个是求多个变量在一定约束下的驻点
深度学习概述
https://blog.csdn.net/lyy14011305/article/details/53377664