模型步骤
step1:模型假设,选择模型框架(线性模型)
step2:模型评估,如何判断众多模型的好坏(损失函数)
step3:模型优化,如何筛选最优的模型(梯度下降)
step1:模型假设
一元线性模型:y=b+w*x
多元线性模型:
通过这张图片我们可以看出CP值的确定与weight,height,hp,type都有关,所以这里就可以写成一个多元线性模型,即y=b +∑(wi *xi)
其中xi是各种特征,wi是各种特征的权重,b是偏移量。
step2:模型评估
损失函数 Loss function:
step3:模型优化
如果是线性模型梯度下降求得最佳模型无疑是最好的方法,因为梯度下降仅会在可能出现极小值时受,或者如上面那个地图状的图形的马鞍状时才会受到阻挠,而线性模型刚好契合梯度下降。
如何验证训练好的模型的好坏
这里判断训练模型的好坏只需判断误差的平均值即可。
*优化
1.这里我们会发现种类对于CP值的增长是不对等的,所以这里我们首先可以考虑用激活函数将种类考虑进来,即:
这里的&的值为0或1,如果xs是这个种类那就是1,其余都是0,这样就可以将种类考虑进来,是模型优化
2.其次,我们还可以考虑正则化:
这里的wi越小,图像就越”丝滑“,对于xi的变化就越不敏感。
这里我们可以看出,当x变化了一个Δx,可以将Δx加入括号中,此时wi如果越小,那xi的改变自然对L的影响越小,即越”丝滑“。
这里我们发现随着λ的增大,training的平均误差逐渐增大,这里是可以解释的,因为随着λ的增大,wi逐渐敏感,即wi的值会显著影响L的变化,于是wi会逐渐减小,相应xi的变化对L的影响也逐渐减小,但λ毕竟逐渐增大,所以L也是逐渐增大的。
而testing的平均误差先减小后增大,随着λ的增大,xi的变化对L的影响变小,自然test的结果也会越来越好,但是并不是越平滑越好,你想哈,如果最后平滑成一条水平线了,那不就适得其反了嘛,所以我们要不断调整λ的值,以求寻得最好的效果。