机器之心-小白笔记

140 阅读3分钟

简介

机器学习就是让机器找到一个合适的函数。

一些典型的应用:文字识别、图像识别、预测等等。 image.png

主要分类:预测、分类、创作。

  • Regression 回归
    • 根据今天的温度,预测明天的温度
    • 根据今天的PM2.5 预测明天的 PM2.5
  • Classification 分类
    • 根据某个东西,识别到对应的类型
  • Structured Learning 结构学习
    • 做一些创造性的事情

直接上手

第一步:预设一个未知参数的函数公式

我们先预设 一个函数,名为 model:y = b + wx1。其中:

  • w:weight 权重
  • b:bias 偏差

image.png

第二步:定义损失函数

除此之外,我们还需要定义一个 loss 损失函数:L(b,w),函数输出的结果(value)表示这个模型的好坏。

先预设 b 和 w 的值:b = 0.5k, w = 1,即 L(0.5k,1)。

那么我们通过这个函数来套用到每个已知的 x 变量,去比对一下「通过这个函数生成的结果 y」和「已知的结果 label = 」来计算误差 e2。以此可以计算出平均误差。

image.png

这个「平均误差」就是 loss 的结果值~ image.png

如果 都是机率分布的话,可以用 Cross-entropy 交叉熵。

从 error surface 中,即可找到令损失最小的 b 和 w~ image.png

第三步:最佳 Optimization

找到最佳的一组 w,b,对应的损失是最小的。 image.png 具体要怎么做呢?我们使用 Gradient Descent 梯度下降 方法

先确定一个 b,未知参数为 w。那么怎样找到一个最佳的 w ,使得 L 最小呢?

  • 先随机取一个 w0
  • 计算 w0 的微分(切线斜率),根据微分结果移动 w,左 or 右
  • 那移动多少呢?斜率大,就移动大一点,反之。

image.png

  • learning rate:控制学习的进度

image.png

  • 这引出了 local minima 和 global minima 的讨论。因为是通过斜率去找 L 最小值。所以找到第一个最低点的时候就会被认为是 minima,但不是真正的 global minima。

image.png 好的,那我们可以以此思路去找出一组最佳的 w 和 b。 image.png image.png 以上都是训练的过程,并且是在已知的答案中训练模型。 如果需要预测,就要拿一个新的数据放入训练好的模型中。 image.png ⬇️ 红色的线表示真实的观看人次,蓝色是预测的观看人次。 现在的训练规律是:根据「前一天的数据 = x1 」预测未来的数据。 我们会发现预测结果只是相比真实数据往后挪了一点而已。但是从损失函数的结果看来,比真实的还大了一点,有没有更好的预测办法呢? image.png 数据是有规律的,每周5、6没有人观看。 image.png 规律是周期性的,那如果模型的训练规律是根据「前一周的数据」进行预测呢?我们会发现,每一天对应的损失最小权重都不一样,并且 L’ 更小了,效果更好了一些。 image.png 那么换成 28 天呢?56 天呢?我们可以这么一直尝试下去... image.png

以上提及的模型称之为线性模型「linear model」。