Datawhale X 李宏毅苹果书 AI夏令营-笔记

68 阅读4分钟

机器学习

定义

让机器具备找一个函数的能力。约等于:寻找一个函数

分类

回归:输出是个数值,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表示,这个差可以两数相减取绝对值,也可取两数之间平方的差距。那么
    

image.png

    调整(b,w)组合值,求取各L。绘制等高线图,称为**误差表面**
    

image.png

步骤3-最优化
找一组(b,w)使得L最小,这个过程称为最优化
优化方法:梯度下降(Gradient Descent)(以下步骤简化为L只与w有关,即b是已知的)

image.png 1.随机选取一个初始w0, 2.计算w对L的微分 d

image.png

    3. d<0,增大w,d>0,减小w。增大减小的幅度与两个因素有关
        1)d值(即曲线在点w0处的斜率)
        2)**学习率**,自己设定,如果η设定的大一点,那么每次参数更新的就会大一点,学习可能会比较快。η设定的小一点,那么参数更新的就小一点,每次只改变一点点参数的数值。这种在机器学习时需要自己设定的参数,称为**超参数**
       w转移公式:
       

image.png

    重复以上过程,停止条件
    1)设定了计算次数,即设定了计算上限为100万次,那么参数更新100万次之后,就不再更新了,更新次数也是一个超参数。
    2)微分值为0时。
梯度下降的问题:*局部最小值?*

至此:涉及到的超参数有:学习率,更新次数

线性模型

形如:y = b + w ∗ x1
线性模型过于简单,且限制于模型偏差,无法模拟真实情况。
改进
常数+一组sigmoid(或ReLU)的和

image.png

接下来的过程如同简单线性模型时一样,定义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再用在测试集上。

不匹配