线性模型
将输入的特征 x 乘上一 个权重,再加上一个偏置就得到预测的结果,这样的模型称为线性模型(linear model)。就是说能够简化为格式的模型,可以被称为线性模型。
分段线性曲线
顾名思义, 分段线性曲线是由多段线性函数组合而成的曲线, 例如一条折线。分段线性曲线用来描述简单线性模型不能准确描述的模型。当我们需要的模型是一条折线时, 显然线性 模型有很大的限制,这一种来自于模型的限制称为模型的偏差,无法模拟真实的情况。
在初中我们就学过用分段函数来表示折线, 那能不能用分段函数来表示呢? 虽然方向是对的, 但是没有那么简单。别忘了我们最终要用梯度下降法来优化模型, 这就需要我们进行大量导数运算, 分段函数的导数不一定存在。对此我们可以采用Sigmoid 函数来解决, Sigmoid 函数的表达式为:
理论上来说用足够多的Sigmoid 函数我们可以表示任意一条曲线。先让我们从简单的例子开始: 假设需要三个Sigmoid 函数来表示一个模型,同时该模型需要的特征也变成三个 。这样Sigmoid 函数中指数部分将变为,三个Sigmoid 函数就会变成
为了方便表示我们将其写成矩阵相乘的形式
简写成, 再进一步用来表示Sigmoid 函数, 规定那么最终用线性代数来表示模型就变成了, 最后又回到了线性模型。
上图为模型的详细展开,将模型中所有的参数拼接在一起可以得到一个长的向量, 损失函数就变成 , 再进行梯度下降即可。
在实际的训练中会把 N 笔数据随机分成一个一个的批量(batch), 不是拿 L 来算梯度,实际上是拿一个批量算出来的 L1, L2, L3 来计算梯度。把所 有的批量都看过一次,称为一个回合(epoch), 每一次更新参数叫做一次更新。更新跟回合是不同的东西。