机器学习基础
定义
学习一般是只有人才具备的能力,机器学习就是通过某种方式让机器具备人才有的学习能力,这里的某种方式是机器具备找一个函数的能力
比如说证件照背景颜色更换,那么机器需要找到图片中的背景在哪里,再替换成目标背景颜色
即输入是图片,输出也是图片
回归
即输出是数值,就比如说预测一下下个星期一的温度,这个就是一个数值(标量)
分类
即从给出的选项中选出一个作为输出,比如说判断一张图片是否是AI生成的,选项就只有两个,是或者不是
结构化学习
即输出一个有结构的物体,就比如文生图
案例
以视频的点击次数预测为例,听说过微信视频赚钱把,就是流量曝光
假设后台可以看到如下信息
- 每天点赞的人数
- 订阅的人数
- 观看次数
现在要找到一个函数,该函数的输入是后台的信息,输出是次日所有的总观看的次数
step 1: 写出函数表达式
假设是一次函数
y = w x 1 + b y = wx_{1}+b y=wx1+b
- y是今天总共的观看次数
- x 1 x_{1} x1是这个频道的昨天的总共观看次数
已知 y和 x 1 x_{1} x1,找b和w,当然不是让你瞎找,瞎猜,要合理的猜测,就这个而言,提出一个猜想
设今天的观看次数是today,昨天的观看次数是yesterday, 再加上一个修正值 adjust,因为事实可能是和我们的猜想一致,但存在一定差异,得到下面的
t o d a y = y e s t e r d a y × w + a d j u s t today = yesterday \times w +adjust today=yesterday×w+adjust
这个和之前的 y = w x 1 + b y = wx_{1}+b y=wx1+b一致,w称之为权重,b称之为偏置
- 模型:含有未知的参数,机器学习中就是一个带有未知的参数的函数
- 特征:即再函数中已知的信息,来自后台的信息
定义损失:
这里的损失可以理解为预测结果与实际结果之间的差距
由于需要根据已有的东西去猜测未知的东西,那么如何定义这一组数值优劣情况呢?答案是用函数来定义
y = w x 1 + b y = wx_{1}+b y=wx1+b
- y是今天总共的观看次数
- x 1 x_{1} x1是这个频道的昨天的总共观看次数
假设w=1,b=200
那么将2017年1月1日的观看次数代入得
y
′
=
200
+
x
1
y^{'}=200+x_{1}
y′=200+x1,将
x
1
=
4800
x_{1}=4800
x1=4800代入得
y
′
=
200
+
4800
=
5000
y^{'}=200+4800=5000
y′=200+4800=5000,但真实得结果是4900,那么预测结果与真实结果直接的差值是100(记作
e
1
e_{1}
e1),以此类推,用1月2日的值来预测1月3日的值,值是5100,差值为2400(记作
e
2
e_{2}
e2),依次类推,将三年的误差算出来,再算一个平均值,公式如下
L
=
1
N
∑
n
e
n
L=\frac{1}{N}\sum\limits_{n}^{}e_n
L=N1n∑en
- N是代表训练数据的个数,三年就是365*3
- L是每一笔训练数据的误差e相加后的结果,L越大,就代表这一组参数越不好,L越小则代表这一组参数越好
估测预测的值与实际值之间的差距方法如下
- 平均绝对误差 ( M e a n A b s o l u t e E r r o r , M A E ) 平均绝对误差(Mean\ Absolute\ Error,MAE) 平均绝对误差(Mean Absolute Error,MAE): e = ∣ y ′ − y ∣ e=|y^{'}-y| e=∣y′−y∣
- 均方误差 ( M e a n S q u a r e d E r r o r , M S E e = ( y ′ − y ) 2 均方误差(Mean\ Squared \ Error,MSE\ e=(y^{'}-y)^{2} 均方误差(Mean Squared Error,MSE e=(y′−y)2
steps2:选择交叉熵
我们调整不同的w和不同b,得到一组数据,在这些不同的w和b之中有损失大也有损失小的,我们想要在这一组数据之中找到一个损失最合适,这样放到函数之中,那么预测就会精准。但数字这东西对于常人来说不太可能能看出背后的东西,比如说下面的数据(乱编的)
1.2 1.4 2.1 3.1 0.9 0.45
不容易看得出来,那么我们能否以一种比较直观的方式表现出来呢?引出等高线图。等高线图种越偏红色系则损失越大,越偏蓝色系则损失越小
这样画出来的等高线图称之为
误差表面
,
(
e
r
r
o
r
s
u
r
f
a
c
e
)
误差表面,(error \ surface)
误差表面,(error surface)
steps3:解最优化问题
这个我好像看不太懂