测试误差一般来源于偏差(Bias)和方差(Variance)
当偏差大的时候出现欠拟合,当方差大的时候出现过拟合。
解决方法:
当偏差大的时候,增加特征个数(使用更复杂的模型)来优化;
当方差大的时候,增加样本个数或者正则化来优化。
估计变量 x x x的均值:
假设 x x x的平均值是 μ \mu μ,方差是 σ 2 \sigma^2 σ2,现已知 x x x的一些样本点(但不全知道)的情况下如何求 μ \mu μ呢?例如已知 N N N个样本点 x 1 , x 2 , . . . , x N {x^1,x^2,...,x^N} x1,x2,...,xN。
求 μ \mu μ的方法:
m = 1 N ∑ i = 1 N x i ≠ μ m = \frac{1}{N}\sum_{i=1}^Nx^i\neq\mu m=N1∑i=1Nxi=μ
E [ m ] = E [ 1 N ∑ i = 1 N x i ] = 1 N ∑ i = 1 N E [ x i ] = μ E[m] = E[\frac{1}{N}\sum_{i=1}^Nx^i] = \frac{1}{N}\sum_{i=1}^NE[x^i] = \mu E[m]=E[N1∑i=1Nxi]=N1∑i=1NE[xi]=μ
m m m的方差为( m m m的方差取决于样本的个数):
V a r [ m ] = σ 2 N Var[m] = \frac{\sigma^2}{N} Var[m]=Nσ2
s 2 = 1 N ∑ i = 1 N ( x n − m ) 2 s^2 = \frac{1}{N}\sum_{i=1}^N(x^n - m)^2 s2=N1∑i=1N(xn−m)2
E [ s 2 ] = N − 1 N σ 2 ≠ σ 2 E[s^2] = \frac{N-1}{N}\sigma^2 \neq \sigma^2 E[s2]=NN−1σ2=σ2
右下角:实际目标为红色点,而算出的是蓝色的小点,取这些蓝色小点的期望为 f ^ = E ( f ∗ ) \hat{f}=E(f^*) f^=E(f∗)用如图所示的蓝色大点表示,那么蓝色大点与红色点之间的距离就是偏差,而蓝色大点与蓝色小点之间的距离就是方差。
左上角:偏差和方差都比较小;
右上角:偏差较小方差较大;
左下角:偏差较大方差较小。
红线:由偏差引起的误差;
绿色:由方差引起的误差;
蓝色:测量误差
神经网络两个特点:
1、过度参化;
2、拟合能力强;
会导致————泛化性差!
正则化的定义:一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,包括引入一些约束规则,增加先验、提前停止等。
深层神经网络的优化和正则化是既对立又统一的关系:
一方面希望优化算法能找到一个全局最优解(或者较好的局部最优解);
另一方面不希望模型优化到最优解,这可能陷入到过拟合;
优化和正则化的统一目标是期望风险最小化!
提高神经网络泛化能力的方法:
图像数据的增强主要是通过算法对图像进行转变,引入噪声等方法来增强数据的多样性。
图像数据增强的方法:
使用一个验证集(Validation Dataset)来测试每一次迭代的参数在验证集上是否最优。如果在验证集上的错误率不再下降,就停止迭代。
1、首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变(上图中虚线为部分临时删除的神经元)
2、然后把输入 x x x通过修改后的网络向前传播,再把得到的损失结果通过修改的网络反向传播,一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数( w , b w,b w,b)
3、继续重复1、2这一过程: