机器学习
定义
让机器具备找一个函数的能力。约等于:寻找一个函数
分类
回归:输出是个数值,eg.预测
分类:输出是个类别,eg.垃圾邮箱、AlphaGo
结构化学习:输出是个图片、文章。eg.让机器画图、写文章
步骤-以视频点击次数预测为例
步骤1-定义模型
设:点击量 y = b + w ∗ x1, x1为前一天的点击量
模型:带有未知参数的函数称为模型(model)。机器学习的过程就是要找到这个模型(函数)
特征:函数中已知的部分,例如*x1*称为特征
权重:未知参数*w*称为权重(weight)。
偏置:未知参数*b*称为偏置。
步骤2-定义损失
损失也是一个函数:输入是模型的参数,输出是一个值,代表选择某组参数时模型的好坏程度。数值越大,模型越不好。L(b,w)
怎么计算Loss?
首先,选定一组(b,w)
数据:训练数据2017-2020年日点击量数据。
定义差值计算方式:估测值与真实值的“差”,用e表示,这个差可以两数相减取绝对值,也可取两数之间平方的差距。那么
调整(b,w)组合值,求取各L。绘制等高线图,称为**误差表面**
步骤3-最优化
找一组(b,w)使得L最小,这个过程称为最优化
优化方法:梯度下降(Gradient Descent)(以下步骤简化为L只与w有关,即b是已知的)
1.随机选取一个初始w0,
2.计算w对L的微分 d
3. d<0,增大w,d>0,减小w。增大减小的幅度与两个因素有关
1)d值(即曲线在点w0处的斜率)
2)**学习率**,自己设定,如果η设定的大一点,那么每次参数更新的就会大一点,学习可能会比较快。η设定的小一点,那么参数更新的就小一点,每次只改变一点点参数的数值。这种在机器学习时需要自己设定的参数,称为**超参数**
w转移公式:
重复以上过程,停止条件
1)设定了计算次数,即设定了计算上限为100万次,那么参数更新100万次之后,就不再更新了,更新次数也是一个超参数。
2)微分值为0时。
梯度下降的问题:*局部最小值?*
至此:涉及到的超参数有:学习率,更新次数
线性模型
形如:y = b + w ∗ x1
线性模型过于简单,且限制于模型偏差,无法模拟真实情况。
改进
常数+一组sigmoid(或ReLU)的和
接下来的过程如同简单线性模型时一样,定义Loss,然后利用梯度优化(或者别的优化算法)找寻合适的参数值。
过拟合
模型在训练数据表现很好有较低的损失,但在测试数据上损失较大。
#### 过拟合的解决办法
1)数据增强:即增加训练集,根据对数据特性以及要处理的问题的理解,选择合适的数据增强的方式
2)限制模型。不给模型过大的灵活性。
给模型较少的参数
用比较少的特征
早停、正则化、丢弃法等
3)交叉验证。训练数据分成两部分,一部分(比如90%)作为训练集,剩下的部分作为验证集.
训练数据划分方法:k折交叉验证。
把训练数据切分成k等份。比如3份,K1,K2,K3.
第一步,将K1,K2作为训练集,K3作为验证集,得到模型M1
第二步,将K1,K3作为训练集,K2作为验证集,得到模型M2
第三步,将K2,K3作为训练集,K1作为验证集,得到模型M3
将这三个模型在3个数据集(训练集+验证集)上都跑一遍,取平均值。得出表现最好的模型Mg
再把这个模型Mg在全部训练集上跑一遍,训练出来的模型Mn再用在测试集上。