我的人工智能之旅——假设函数模型的选择
如何选择假设函数模型
通常假设函数的模型为,其中n为最高次数,那么如何来确定n的取值呢?
通常的做法是,
(1)确定多个n值,例如,形成多个假设函数
(2)将数据集分成三部分,训练集,交叉验证集,测试集,通常所占比例分别为60%,20%,20%。
(注意,测试集选定后,不再变动。)
(3)使用训练集对不同的假设函数模型进行训练,确定最优参数。
(注意,在训练过程中,需要假如正则化惩罚项,降低过拟合。因此这里需要一组,例如取值为0.001,0.002,0.004,...,10,间隔2倍增长。通过训练,得出最优的
,以获取最优参数)
(4)使用交叉验证集检测步骤(3)所确定的多个假设函数准确率。
(5)更新训练集和交叉验证集。
(6)重复进行多次步骤(3)(4)(5)的循环操作。
(8)综合多个假设函数的准确率,选择准确率较好,较稳定的模型,从而确定n的值。
(9)使用测试集确定最终模型的准确率。
采用这种流程的目的,是为了保证假设函数的泛化,降低过拟合概率。
如何评判假设函数的准确率
通常使用学习曲线(learning curves)来衡量假设函数的准确度。
学习曲线公式为。
从数学角度来讲,实质是对均方误差()的使用。
如果训练集的均方误差高,肯定为欠拟合。需要提高假设函数最高次数。
如果训练集的均方误差低,交叉验证集的均方误差远高于训练集的均方误差,则为过拟合。需要降低假设函数最高次数。
通过学习曲线,也可帮助判断,当前的假设函数能否通过增加训练数据量的方式进行优化。如图
x轴为训练集数据量,y轴误差率。
在训练数据量小的情况下,假设函数容易拟合所有的数据,因此均方误差小。随着数据量的增加,假设函数的均方误差会增大。在图像上的体现就是,训练集学习曲线随训练数据量的增长而增长。
用于训练的数据增加,势必会加少交叉验证集的数据量。在图像上的体现就是,训练集学习曲线随训练数据量的增长而降低。
两条曲线会在某一误差率附近持平。若该误差率仍处于较高水平。那么,就说明通过增加数据量的方式,对假设函数进行优化,效果是不明显的。无需浪费时间去尝试。
优化假设函数的方式包括
(1)增加训练数据量
(2)增减特征项
(3)调整正则惩罚项参数