我的人工智能之旅——假设函数模型的选择

如何选择假设函数模型

通常假设函数的模型为f(x)=a_0x+a_1x^2+a_3x^4+...+a_nx^n,其中n为最高次数,那么如何来确定n的取值呢?

通常的做法是,

(1)确定多个n值,例如n_0,n_1,n_2,...n_p,形成多个假设函数f(x)_0,f(x)_1,f(x)_2,f(x)_p

(2)将数据集分成三部分,训练集,交叉验证集,测试集,通常所占比例分别为60%,20%,20%。

(注意,测试集选定后,不再变动。)

(3)使用训练集对不同的假设函数模型进行训练,确定最优参数。

(注意,在训练过程中,需要假如正则化惩罚项,降低过拟合。因此这里需要一组\lambda,例如取值为0.001,0.002,0.004,...,10,间隔2倍增长。通过训练,得出最优的\lambda,以获取最优参数)

(4)使用交叉验证集检测步骤(3)所确定的多个假设函数准确率。

(5)更新训练集和交叉验证集。

(6)重复进行多次步骤(3)(4)(5)的循环操作。

(8)综合多个假设函数的准确率,选择准确率较好,较稳定的模型,从而确定n的值。

(9)使用测试集确定最终模型的准确率。

采用这种流程的目的,是为了保证假设函数的泛化,降低过拟合概率。

如何评判假设函数的准确率

通常使用学习曲线(learning curves)来衡量假设函数的准确度。

学习曲线公式为\frac{1}{2n}\sum _{i=1}^{n}{(f(x_i)-y_i)^2}

从数学角度来讲,实质是对均方误差(\frac{1}{n}\sum _{i=1}^{n}{(f(x_i)-y_i)^2})的使用。

如果训练集的均方误差高,肯定为欠拟合。需要提高假设函数最高次数。

如果训练集的均方误差低,交叉验证集的均方误差远高于训练集的均方误差,则为过拟合。需要降低假设函数最高次数。

通过学习曲线,也可帮助判断,当前的假设函数能否通过增加训练数据量的方式进行优化。如图

x轴为训练集数据量,y轴误差率。

在训练数据量小的情况下,假设函数容易拟合所有的数据,因此均方误差小。随着数据量的增加,假设函数的均方误差会增大。在图像上的体现就是,训练集学习曲线随训练数据量的增长而增长。

用于训练的数据增加,势必会加少交叉验证集的数据量。在图像上的体现就是,训练集学习曲线随训练数据量的增长而降低。

两条曲线会在某一误差率附近持平。若该误差率仍处于较高水平。那么,就说明通过增加数据量的方式,对假设函数进行优化,效果是不明显的。无需浪费时间去尝试。

优化假设函数的方式包括

(1)增加训练数据量

(2)增减特征项

(3)调整正则惩罚项\lambda参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值