• 正则化——“偏差(bias)”与“方差(variance)”


    正则化后的线性回归模型

    模型

    [{h_ heta }left( x ight) = { heta _0} + { heta _1}x + { heta _2}{x^2} + { heta _3}{x^3} + { heta _4}{x^4}]

    [Jleft( heta  ight) = frac{1}{{2m}}left[ {sumlimits_{i = 1}^m {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}}  + lambda sumlimits_{j = 1}^n { heta _j^2} } ight]]

     当正则化参数λ很大时

    [{h_ heta }left( x ight) approx { heta _0}]

    这时处于“高偏差(High bias)”(underfit)的情况

    当正则化参数很小(λ=0)时

    [{h_ heta }left( x ight) = { heta _0} + { heta _1}x + { heta _2}{x^2} + { heta _3}{x^3} + { heta _4}{x^4}]

    这时处于“高方差(High variance)”(overfit)

    当正则化参数λ适当时

    模型处于“Just right”状态


    如何选择正确的λ呢?

    除了以下两个公式

    [{h_ heta }left( x ight) = { heta _0} + { heta _1}x + { heta _2}{x^2} + { heta _3}{x^3} + { heta _4}{x^4}]

    [Jleft( heta  ight) = frac{1}{{2m}}left[ {sumlimits_{i = 1}^m {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}}  + lambda sumlimits_{j = 1}^n { heta _j^2} } ight]]

    再定义

    [egin{array}{l}
    {J_{train}}left( heta ight) = frac{1}{{2{m_{train}}}}sumlimits_{i = 1}^{{m_{train}}} {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}} \
    {J_{CV}}left( heta ight) = frac{1}{{2{m_{CV}}}}sumlimits_{i = 1}^{{m_{CV}}} {{{left( {{h_ heta }left( {x_{CV}^{left( i ight)}} ight) - y_{CV}^{left( i ight)}} ight)}^2}} \
    {J_{test}}left( heta ight) = frac{1}{{2{m_{test}}}}sumlimits_{i = 1}^{{m_{test}}} {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}}
    end{array}]

    分别表示“训练误差”、‘“交叉验证误差”和“测试误差”

    选择λ

    尝试如下λ

    • λ=0----------->minJ(θ)----->Θ(1)------>JCV(1))
    • λ=0.01------->minJ(θ)----->Θ(2)------>JCV(2))
    • λ=0.02------->minJ(θ)----->Θ(3)------>JCV(3))
    • λ=0.04------->minJ(θ)----->Θ(4)------>JCV(4))
    • .
    • .
    • .
    • λ=10--------->minJ(θ)----->Θ(12)------>JCV(12))

    运用不同的λ去最小化“代价函数”得到不同的Θ;

    不同的Θ带入h(x)中得到不同的模型,然后用“交叉验证集”验证;

    取“交叉验证误差”最小的那个模型;

    将最终得到的模型运用于测试集,测试模型的表现。


    下图为不同λ下“训练误差”和“交叉验证误差”的变化

    可以得到

    • 当λ很小时,模型处于“高方差”状态,“训练误差”很小,“交叉验证误差”较大
    • 当λ很大时,模型处于“高偏差”状态,“训练误差”和“交叉验证误差”都很大
  • 相关阅读:
    Win10 iot 配置防火墙限制应用部署
    未能加载文件或程序集“********”或它的某一个依赖项。试图加载格式不正确的程序。
    IIS 支持 m3u8
    UWP WebView 禁用缩放
    Code First
    关于 永恒之蓝 和 MS17-010 补丁
    《 罗辑思维 成大事者不纠结》读书笔记
    <王川自选集第一卷电子书 >读书笔记
    <王二的经济学故事>读书笔记
    <以交易为生>读书笔记
  • 原文地址:https://www.cnblogs.com/qkloveslife/p/9885500.html
Copyright © 2020-2023  润新知