由此看来,l2的正则,也可以看作是weight decay。实际上很多优化器里面,l2便是用weight decay来实现的。
w = w - learning_rate* gradient
根据上图公式,cost对w的偏导可能为0,但是l2项为常数*w,更新时会使w向0的方向递减。所以说,就算对某个weight传递的偏导一直为0或者很小,这个weight也会在每轮迭代后不断向0趋近。
稍微引申一下:
阿里在DIN的论文中,提出了Mini Batch Aware Regularization,
其实动机也非常简单。在普通的ctr,cvr模型的训练中,往往embedding层的参数量非常巨大。当对Embedding层有regularization操作的时候,每次训练,都会更新大量的参数(每轮更新,无论是否出现过的id,其对应的embedding都会进行weight decay)。所以一个操作是只对该batch出现过的id对应的embedding进行weight decay。
网友评论