1.线性模型(y=b+w·x)
不同的w,b的组合会有不同的损失,我们需要把损失尽量减小。
通常来讲,训练数据越多,损失相对而言就会越小
2.分段线性曲线
单纯的线性模型过于简单,但在数据上、现实生活中,这样简单的数据情况很少,x和y之间通常会有一个比较的复杂的关系,这样子用y=b+w·x就没有办法很好地描述出来了。线性模型没有办法模拟出这种复杂情况,这是线性模型的限制,即模型的偏差。
这时候就可以用到新的模型样式。“需要写一个更复杂的、更有灵活性的、有未知参数的函数。红色的曲线可以看作是一个常数再加上一群 Hard Sigmoid 函数。Hard Sigmoid 函数的特性是当输入的值,当 x 轴的值小于某一个阈值(某个定值)的时候,大于另外一个定值阈值的时候,中间有一个斜坡。所以它是先水平的,再斜坡,再水平的。”
(蓝色是线性模型,红色是新模型)可以看到,线性模型在这种情况下,无论如何改变自己的b和w的值多无法高效的拟合数据的情况,偏差会很大。
对于上述图,“蓝线 1 函数斜坡的起点,设在红色函数的起始的地方,第 2 个斜坡的终点设在第一个转角处,让第 1 个蓝色函数的斜坡和红色函数的斜坡的斜率是一样的,这个时候把 0+1 就可以得到红色曲线左侧的线段。接下来,再加第 2 个蓝色的函数,所以第2 个蓝色函数的斜坡就在红色函数的第一个转折点到第 2 个转折点之间,让第 2 个蓝色函数的斜率跟红色函数的斜率一样,这个时候把 0+1+2,就可以得到红色函数左侧和中间的线段。”总而言之,就是红色线由各个蓝色线来合并构成的。如果分段线性曲线越复杂,转折的点越多,所需的蓝色函数就越多。
那么得到一个连续的曲线就需要足够多的曲线了。
还有更复杂的情况下。“假设 x 跟 y 的关系非常复杂也没关系,就想办法写一个带有未知数的函数。直接写 HardSigmoid 不是很容易,但是可以用一条曲线来理解它,用 Sigmoid 函数来逼近 Hard Sigmoid,如下图所示。Sigmoid 函数的表达式为
其横轴输入是 x1,输出是 y,c 为常数。”
“只要有不同的 w 不同的 b 不同的 c,就可以制造出不同的 Sigmoid 函数,把不同的Sigmoid 函数叠起来以后就可以去逼近各种不同的分段线性函数;分段线性函数可以拿来近似各种不同的连续的函数。”
3.模型变形
4.机器学习框架
训练集(train_data)和测试集(test_data)。
"1.先写出一个有未知数 θ 的函数,θ 代表一个模型里面所有的未知参数。fθfθ(x) 的意思就是函数叫 fθfθ(x),输入的特征为 x,;
2. 定义损失,损失是一个函数,其输入就是一组参数,去判断这一组参数的好坏;
3. 解一个优化的问题,找一个 θ,该 θ 可以让损失的值越小越好。让损失的值最小的 θ 为θ∗,即θ∗ = argminθL"
夏令营链接:Datawhale (linklearner.com)
(引用文本和图片来自于夏令营中)