如何解决过拟合问题
- 尽量减少特征变量:
- 人工选择
- 模型选择算法
- 正规化:
- 保存所有特征,但减少参数θj\theta_jθj的值
- 当我们有许多特征时能工作的很好
什么是过拟合
正规化
优化目标:
加上一些 项(1000只是一个随意的很大的数):
θ3和θ4对代价函数的影响巨大\theta_3和\theta_4对代价函数的影响巨大θ3和θ4对代价函数的影响巨大
如果我们要最小化代价函数,那么θ3\theta_3θ3和θ4\theta_4θ4就会尽可能小
新的代价函数将会导致:
θ3≈0,θ4≈0\theta_3\approx0, \theta_4\approx0θ3≈0,θ4≈0就像我们忽略了θ3\theta_3θ3和θ4\theta_4θ4
正规化背后的思路
如果我们的参数对应一个较小值的话,更简单的参数会参数更平滑的函数
- 更简单的假设
- 不会产生过拟合
代价函数
当特征很多时:
- Features:x1,x2,…,x100x_1,x_2,\dots,x_{100}x1,x2,…,x100
- Parameters:θ0,θ1,θ2,…,θ100\theta_0,\theta_1,\theta_2,\dots,\theta_{100}θ0,θ1,θ2,…,θ100
我们不知道怎么选择参数
在正规化在我们要做的就是惩罚所有参数:
Jθ(θ)=[12m∑i=1m(h(x(i))−y(i))+λ∑j=inθj2] J_{\theta}(\theta)= \lbrack\frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})+\lambda\sum_{j=i}^{n}\theta_{j}^{2}\rbrack Jθ(θ)=[2m1i=1∑m(h(x(i))−y(i))+λj=i∑nθj2]
按照惯例来说不会惩罚θ0\theta_0θ0
λ\lambdaλ在这里叫做正规化参数,λ\lambdaλ要做的就是控制在两个不同目标间的平衡关系:
平衡拟合目标(平方误差)和保持较小参数的目的
从而保持假设更简单,来避免过拟合如果λ\lambdaλ过大会导致欠拟合
hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
如果λ\lambdaλ过大,那么参数将会尽可能小:
θ1≈0,θ2≈0,θ3≈0,θ4≈0\theta_1\approx0,\theta_2\approx0,\theta3\approx0,\theta_4\approx0θ1≈0,θ2≈0,θ3≈0,θ4≈0
相当于拟合了直线:
hθ(x)=θ0h_\theta(x)=\theta_0hθ(x)=θ0
偏导:
线性回归:J(θ)′=1m∑i=1M(H(x(i))−y(i))xj(i)+2λθj逻辑回归:J(θ)′=1m∑i=1M(H(x(i))−y(i))xj(i)+λmθj
线性回归:J(\theta)'=\frac{1}{m}\sum_{i=1}^{M}(H(x^{(i)})-y^{(i)})x_j^{(i)}+2\lambda\theta_{j}\\
逻辑回归:J(\theta)'=\frac{1}{m}\sum_{i=1}^{M}(H(x^{(i)})-y^{(i)})x_j^{(i)}+\frac{\lambda}{m}\theta_j
线性回归:J(θ)′=m1i=1∑M(H(x(i))−y(i))xj(i)+2λθj逻辑回归:J(θ)′=m1i=1∑M(H(x(i))−y(i))xj(i)+mλθj
神经网络是怎么拟合非线性函数
and
x1,x2∈{0,1}x1,x2\in\{ 0,1\}x1,x2∈{0,1}
hθ(x)=g(−30+20x1+20x2)h_{\theta}(x)=g(-30+20x1+20x2)hθ(x)=g(−30+20x1+20x2)
x1 | x2 | hθ(x)h_{\theta}(x)hθ(x) |
---|---|---|
0 | 0 | g(−30+0+0)≈0g(-30+0+0)\approx0g(−30+0+0)≈0 |
0 | 1 | g(−30+0+20)≈0g(-30+0+20)\approx0g(−30+0+20)≈0 |
1 | 0 | g(−30+20+0)≈0g(-30+20+0)\approx0g(−30+20+0)≈0 |
1 | 1 | g(−30+20+20)≈1g(-30+20+20)\approx1g(−30+20+20)≈1 |
or
x1,x2∈{0,1}x1,x2\in\{ 0,1\}x1,x2∈{0,1}
hθ(x)=g(−10+20x1+20x2)h_{\theta}(x)=g(-10+20x1+20x2)hθ(x)=g(−10+20x1+20x2)
x1 | x2 | hθ(x)h_{\theta}(x)hθ(x) |
---|---|---|
0 | 0 | g(−10+0+0)≈0g(-10+0+0)\approx0g(−10+0+0)≈0 |
0 | 1 | g(−10+0+20)≈1g(-10+0+20)\approx1g(−10+0+20)≈1 |
1 | 0 | g(−10+20+0)≈1g(-10+20+0)\approx1g(−10+20+0)≈1 |
1 | 1 | g(−10+20+20)≈1g(-10+20+20)\approx1g(−10+20+20)≈1 |
or
x1,x2∈{0,1}x1,x2\in\{ 0,1\}x1,x2∈{0,1}
hθ(x)=g(+10−20x1)h_{\theta}(x)=g(+10-20x1)hθ(x)=g(+10−20x1)
x1 | hθ(x)h_{\theta}(x)hθ(x) |
---|---|
0 | g(10+0)≈1g(10+0)\approx1g(10+0)≈1 |
1 | g(10−20)≈0g(10-20)\approx0g(10−20)≈0 |
xnor
太弱智了