- 第一章 机器学习基础
1.2线性模型
为了降低损失我们可以考虑更多数据的影响,比如将数据分成多个组进行预测。但线性模型过于简单,我们可能怎么设置参数都没办法模拟出近似真实情况的曲线,这种情况被称为叫模型的偏差。
我们可以将下图红线看作一个常数项加上hard sigmoid函数(红线每个转折都是一个常数项加上hard sigmoid函数),即分段曲线。
若我们所需要的分段曲线越复杂,转折点越多,则所需要的hard sigmoid函数越多;当我们的点取的足够多就可以逼近连续的曲线,如下图。
但是hard sigmoid函数表达式并不容易,我们可以使用sigmoid函数进行逼近,sigmoid函数表达式和曲线如下:
我们令σ(b+ωx1)=1/(1+e-(b+ωx1)),且考虑多组数据,则表达式为:
通过调整b,ω,c参数我们可以调整曲线形状,如下图。
假设只考虑三个特征,即j=3;三个特征需要三个sigmoid函数,即i=3;如下图所示,我们可以用线性代数的方式来表示:y=b+cTa
接下来我们将含有未知参数按照从右向左依次拿出按照由上到下的顺序排成一列拼成一个长向量θ,如下图。
接下来定义损失L(θ)并优化,随机选取初值,对损失函数进行偏微分代入,更新θ,重复步骤直到无法更新位置,当数据太多时我们可以按照批量来计算,如下图。
另外我们还可以把hard sigmoid函数看成两个ReLU函数,其公式为:cmax(0,b+ωx);两个ReLU函数合起来是一个hard sigmoid函数,所以用i个hard sigmoid函数能做到的事需要用2i个ReLU函数。
若上述工作改善并不能明显,我们还能继续改进模型:通过增加网络层数(将得到的a再次代入得到a‘)如下图。
在这之中,sigmoid函数或ReLU函数被称为神经元,每列神经元被称为神经网络的一层又叫做隐藏层,隐藏层多的神经网络被称为深度神经网络,如下图。
但并不是说层数越多预测越准确,还存在过拟合的情况。
机器学习框架:1、写出含有未知参数的函数;
2、定义损失;
3、优化损失