目录
Generative Adversarial Network
什么是机器学习
机器学习就是让机器具备找一个函数的能力。
可以有各式各样的输入:向量,矩阵(如图像),序列(如语音,文本);也可以有各式各样的输出:数值(regression),类别(classification),文本图像…
函数类别
Regression(回归):输出是一个数值(scalar)
Classification(分类):给定选项/类别(classes),输出正确的类别
Structured Learning:让机器学会创造,生成有结构的物件(image,document)
机器学习举例
以回归为例,介绍机器学习的三个步骤。回归的例子:用后台资讯预测youtube明天的观看量
步骤
第一步:猜测函数
基于领域知识(domain knowledge),猜测一个带有未知数的模型。y 是预测的观看量;x1 是今天的观看量,称为feature(自变量);w 和 b 就是模型参数,需要学习之后确定下来。
第二步:定义Loss
loss是关于未知参数的函数,不同的参数将算出不一样的loss,而loss 就是用来评估这些未知参数好不好的,loss越小,证明预测得越准
第三步:优化
优化的目的就是找到使 loss最小的参数,找到参数之后的模型就能真正用来预测了。优化最常用的方法是gradient descent(梯度下降)
从线性到非线性:从函数逼近的角度理解
多个特征变量
我们的模型只考虑了前一天的资讯 x1,考虑每隔七天有一个循环,将前 7 天的资讯都作为自变量,模型应该会更准确
然后我们把前 28 天的资讯,前 56 天的资讯都考虑进来,想要让 loss 更低,但是 loss 到后面几乎不下降了........所以线性模型太简单了,不足以精准地描述复杂问题
逼近连续曲线
线性模型要么递增要么递减,模型弹性不够大,所以我们需要更精密的模型。充足的分段线性曲线可以逼近连续曲线。
红线是分段线性曲线,蓝线是不同的hard sigmoid函数。下图中的 0 + 1 + 2 + 3 加在一起就变成了红线,所以用一堆的 hard sigmoid函数加上一个常数可以组成分段线性曲线。
hard sigmoid 可以用 sigmoid曲线来代表,因为差别很小可以忽略。为什么不将 hard sigmoid 作为基础函数呢?因为转角处无法求微分,所以要用一个平滑的曲线做基础函数。
表示更有弹性的模型总结
先用 sigmoid 代表 hard sigmoid,然后由 sigmoid 和一个参数组成分段线性曲线,分段线性曲线再去组成连续曲线。下图表示一个自变量时,函数是 y 关于 x1 ,而他是分段函数,分了多少段就用多少个 sigmoid 来表示,分了 i 段
<