文章目录
今天要梳理的知识是范数与正则化。文章完全根据个人理解写,如有不对,欢迎指出!!
正则化
正则化是一种对学习算法的约束,主要是为了防止过拟合(下一次会梳理这个知识点),从而增强模型的泛化能力。泛化能力 是指模型对未知数据的预测能力,是一种用于评估机器学习算法的能力的指标。泛化误差可以反映模型的泛化能力,误差越小,模型越稳定。泛化误差(generalization error) 又是指训练后的模型在测试集上的误差,也叫测试误差(test error)。这一下子牵扯出来一堆专业名称,还真不好理解…
继续说回正则化,正则化的作用主要是约束,控制模型的拟合程度。对于线性模型来说,数学形式是这样:
y ′ = w x + b y'=wx+b y′=wx+b
对于理论而言,我们当然希望能找到非常合适的参数w和b,使得目标值 y ′ y' y′与真实值 y y y能完全相同,但是如果这种情况出现在实际中,则属于过拟合现象,我们必须要约束这个模型,使其结果与真实值保持一定的误差,这就是正则化需要做的事:
y ′ = ( w x + b ) + α Ω ( θ ) y'=(wx+b)+\alpha \Omega(\theta) y′=(wx+b)+αΩ(θ)
后一项是惩罚项,用于限制模型的学习能力,而 α \alpha α为惩罚系数,系数越大,惩罚越大。在神经网络中,一般只对w做惩罚,而不对偏置b做惩罚(原因暂时未知)。我们熟知的正则化项有两个L1正则和L2正则 ,L1正则和L2正则又是什么来的???这就与范数有牵连了~
范数
先来简单普及一下范数这个概念。根据百科,在泛函分析中,范数是定义在赋范线性空间中,并满足三个条件:非负性、齐次性和三角不等式,的函数,常用于度量某个向量空间或矩阵中每个向量的长度或大小。(没听懂!)简单来说,范数就是一个函数,用来度量向量大小和长度的。
根据维度,范数可分为向量范数(二维坐标系)和矩阵范数(多维空间,一般化表达),然鹅,向量范数和矩阵范数又可划分几种范数。
向量范数
对于向量范数可分为p-范数、 − ∞ -\infty −∞-范数、1-范数、2-范数和 ∞ \infty ∞-范数。下面简单放公式介绍一下,为了方便解释,我先借一个图用一用:
p-范数
∣ ∣ x ∣ ∣ p = ( ∑ i = 1 N ∣ x i ∣ p ) 1 p ||x||_p=(\sum_{i=1}^N |x_i|^p)^\frac{1}{p} ∣∣x∣∣p=(i=1∑N∣xi∣p)p1
p-范数表示为向量元素绝对值的p次方和 1 p \frac{1}{p} p1次幂。这里的p跟上图中的q是一样的,随着p越大,曲线越接近正方形(为正无穷范数),越小,曲线越接近原点(负无穷范数)。
− ∞ -\infty −∞-范数
∣ ∣ x ∣ ∣ − ∞ = a r g min i ∣ x i ∣ ||x||_{-\infty}=arg \min_i |x_i| ∣∣x∣∣−∞=argimin∣xi∣
负无穷范数表示为所有向量元素中绝对值的最小值。
1-范数
∣ ∣ x ∣ ∣ 1 = ∑ i = 1 N ∣ x i ∣ ||x||_{1}=\sum_{i=1}^N |x_i| ∣∣x∣∣1