1.2 线性模型
上回讲到了y=b+wx函数,损失在480左右。用到2021年时,误差值比较大。具体原因是:由前一天预测后一天,无法体现数据的周期性规律。
既然如此,引入新的模型。还是一次函数的形式。但是预测的结果由前一周的数据加权加和后得出。这样可以通过前一周数据点的周期性特征进行预测。作者认为,数据有周期为七天的周期性,根据梯度下降法尝试后,得到了一组权重:
但是我很好奇的是:w1的权重最高是因为前一天的数据有重大影响。既然我们猜测了,每一周有一个周期,那第二名应该是w7的权重。可是我们得出的结论是第六天前的数据权重比七天前的数据的权重更大。不过既然梯度下降法这样算出来了,那只能相信数据。
既然一周是一个周期,那么一个月也可以是一个周期。作者设置了28天,也就是四周是一个周期。
(我认为如果把自然月作为一个周期的话,当遇到三十天、三十一天的月份,超过28天的数据或许应该额外处理了。如果当作月份而不是四周来看的话,数据处理更加复杂,(如果月末有特殊规律的话,比如月末数据会增高这种的)但是28天,相对于五周35天而言,更加接近于一个月,是一个折中的方法。)
1.2.1 分段线性曲线
线性模型过于简单。
人算不如天算,模型预测肯定有偏差。能够做到的是不断优化模型,减少偏差。
本次进化引入了一个Hard Sigmoid函数。
教材中有这样一句话:所以红色的线可以看作是一个常数项加一大堆的蓝色函数(Hard Sigmoid) 其实就是分段函数罢了。
后面的用分段曲线可以逼近任何连续曲线给我看出了一种微积分。就是不断细分段落,使其逐渐接近光滑的曲线。(是不是也可以通过傅里叶的方式那样拟合呢 这样似乎也是个很好的办法)
这样有了更多的有更多位置参数的function。
引入了新的c b w
进一步扩展,如果要参考的x的数量超过了1,那么可以用矩阵的形式写出。(向量法)
(天才)
李老师讲课讲的很好。其实原理就是用行列式的形式把复杂的加和函数变成了简单的一个含有矩阵的多项式。其中C的转置是为了符合行列式乘法原理完成的。
在这个过程之后,未知参数变成了W CT b b 这也可以写成一个行列式θ。
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在深度学习中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到[ 0 , 1 ] [0, 1][0,1]之间。
Sigmoid函数的特性与优缺点:
- Sigmoid函数的输出范围是0到1。由于输出值限定在0到1,因此它对每个神经元的输出进行了归一化。
- 梯度平滑,避免跳跃的输出值
- 函数是可微的。这意味着可以找到任意两个点的Sigmoid曲线的斜率
- 函数输出不是以0为中心的,这会降低权重更新的效率
- Sigmoid函数执行指数运算,计算机运行得较慢。
第二步 定义Loss L(θ), 误差统计方法和原来差不多。如果用梯度下降法的话就是求偏导。之后不断更新θ。
实际操作中会分批量,教学演示了小批量梯度下降,取了一个batch中的一个计算gradient,然后更新参数。epoch就是所有batch看一遍。
ReLU:ReLU,全称为:Rectified Linear Unit,是一种人工神经网络中常用的激活函数,通常意义下,其指代数学中的斜坡函数,即:f(x)=max(0,x)
最后老师又多加了几层。套娃。引出了neural network 模拟人脑ing