对于机器学习 深度学习中的一些常见知识 L2 norm,BatchNorm,损失函数和激活函数 总结:
L1 norm就是绝对值相加,又称曼哈顿距离; L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。
L2 norm就是欧几里德距离之和。(应用广泛)它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。这用的很多吧,因为它的强大功效是改善机器学习里面一个非常重要的问题:过拟合。
机器学习中正则化项L1和L2的直观理解 - 小平子的专栏 - CSDN博客 https://blog.csdn.net/jinping_shi/article/details/52433975
Differences between L1 and L2 as Loss Function and Regularization http://www.chioka.in/differences-between-l1-and-l2-as-loss-function-and-regularization/
机器学习中的范数规则化之(一)L0、L1与L2范数 - zouxy09的专栏 - CSDN博客 https://blog.csdn.net/zouxy09/article/details/24971995
机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。BatchNorm的基本思想:能不能让每个隐层节点的激活输入分布固定下来呢?这样就避免了“Internal Covariate Shift”问题了。
可参考https://www.cnblogs.com/guoyaohua/p/8724433.html
一位网友的回答,在这里分享下:Relu、BN还是resNet,都是从不同角度来解决随着网络层数加深而导致学习速度减慢的。并不是说如果采用Relu激活BN就没有意义了,BN的算法的核心思想是“Reducing Internal Covariate Shift”减小内部协方差偏移的,无论使用什么激活函数,随着网络层数的加深都会产生内部协方差偏移,这样也就会导致网络学习速度减慢,而Batch Norm就是解决这个问题的。而本文中所提到的Sigmoid只是从另一个角度来分析BN的作用而已,并不是说BN只能依靠Sigmoid、tanh等激活函数才能发挥作用。
https://blog.csdn.net/computerme/article/details/80836060 tensorflow batch_normalization的正确使用姿势
深度神经网络(DNN)损失函数和激活函数的选择 - 刘建平Pinard - 博客园 http://www.cnblogs.com/pinard/p/6437495.html
https://zhuanlan.zhihu.com/p/22142013深度学习中的激活函数导引
小白都能看懂的softmax详解 - bitcarmanlee的博客 - CSDN博客 https://blog.csdn.net/bitcarmanlee/article/details/82320853