datawhale的组队打卡活动,目前自己没啥干货,笔记也仅限于自己能够读懂,欢迎如果有看到的小伙伴交流。
第三章 线性模型
来源于datawhale开源学习
南瓜书课程:
一元线性回归
1.算法原理
1.1预习西瓜书上不太懂的公式
(argmax(f(x))是使得 f(x)取得最大值所对应的变量点x(或x的集合)。arg即argument,此处意为“自变量)
其余基本等同已经学习过的多元回归分析课程
1.2“发际线高度和计算机水平的例子”
成一个直线型关系,曲线去拟合数据,为什么不用曲线,这样考虑到了误差,容易过拟合。
f(x)=w x+b
误差若是点到直线的距离最小,即是正交回归。线性回归考虑的是平行于y轴的距离。
均方误差:竖向误差之和,保持正的就加了个平方。
有序多值(离散):比如饭量,有大小之分,小:1,中:2,大:3
无序多值(离散):比如颜色,黄[1,0,0],黑[0,1,0],白[0,0,1] 无明显先后顺序
1.3最小二乘估计
aigmin函数指的是,使得f(x)值最小的时候的x值
1.4 极大似然估计
考研概率论已经讲过了(略学)
x是X的n个独立同分布的样本,关于待估计参数,使得联合概率(似然函数)L取到最大时的待估计参数就是其估计值。
一般是连乘概率密度函数,用取对数变成加法,求导即可
可以考虑误差,加一个误差项,其服从均值为零的正态分布,从而可以导出来关于y的概率分布。
奇妙的现象,最大似然估计和最小二乘殊途同归
凸函数求值问题,(跟课本定义不太一样,向下凸为凸函数)
推导思路:1.证明E(w,b)是个凸函数。2.凸函数求最值来求出w和b
凸集:在集合内任意两个点,两点之间的任意连线仍属于这个集合。
凸函数:比如y=x(^2),中点函数值小于等于两端函数值平均(不一定中点,可以按比例分)(此处凹凸定义和高数书相反)
1.5 求解w和b
利用梯度去求。
多元函数的二阶导数即海塞矩阵
如果f(x)在凸集上的海塞矩阵是半正定的,就可以判定函数是凸函数。
图片来自南瓜书推导,跟着推导一遍后,感觉良好。
半正定矩阵判定方法:顺序主子式都是非负的。
即要求这个式子是不是非负的
中间一步的代换最为关键。
(印象这个推导也可以从方差定义中和的平方和平方的和角度着手。下来再总结一下)
到这里,基本能证明了E是一个凸函数,然后告知怎么使E最小,梯度为零即可,类似一元函数中的导数为零之处。
后面3.8 可以按照这种方法求解出来,略
注意可以把w向量化使得本应该用for循环的求和转变为numpy的矩阵求解,大大降低运算复杂度。见南瓜书的3-7的解析。
机器学习三要素(李航老师的《统计学习方法》也提到过)
- 模型:根据问题确定假设空间。(一次项还是二次项)
- 策略 根据评价标准,选择一个最优模型的策略,一般也会产生一个“损失函数”(均方误差,正交误差,找出损失函数)
- 算法 根据损失函数,确定最优模型(本例子中求出w,b,本次中闭式,能解出,比如神经网络,求不出来闭式)算法可以有很多,比如牛顿迭代法,梯度下降法。