一、 机器学习应用
机器学习的应用,主要分为两类:预测、分类
预测,一般是指:根据数据,预测数值
分类,一般是指:根据数据,进行分类
1. 预测与分类的关系【个人理解】
分类,本质上也是一种预测。
预测,可预测实值,也可预测类别。
预测实值可通过线性回归模型,预测出线性的实际数值。
但当预测某个数据的类别(例如男女、老少等非连续的离散值)时,则变为了人们常说的分类问题。
因此,如果非要对预测、分类进行一个严格区分:
『 预测问题是对线性连续值的预测,分类问题是对非线性值的预测 』
二、机器学习基础流程
- 建立模型:根据应用类型,构造函数模型
- 学习模型:将数据应用于模型计算,并求解出当前模型的最优参数
- 衡量模型:衡量学习后的模型效果
机器学习的流程,就像是做菜-菠萝炒鸡。
👉建立模型,就像是根据目标,凭经验设计一个做菜的固定步骤。
- 开火
- 烧油
- 放菜
- 放盐
- 关火
虽然知道需要什么材料,但这个过程需要多少油,多少盐,多少火力,煮多久——无从知晓!
所以,建立模型时,只知道需要锅碗瓢盆油盐酱醋这些参数,但却不知道参数是多少!!!
👉学习模型,就像是一个鲁莽的菜鸟厨师。
它菜就菜在,不知道这些材料,都需要放多少量(即它也不知道放多少油盐酱醋才好吃)
它莽就莽在,不管三七二十一,先按这个步骤随便放初始量的材料,直接开炒!
每次炒的结果,都由一个试吃小白鼠去尝,如果小白鼠摇摇头不满意,鲁莽的菜鸟厨师就稍微调整一下材料用量
炒的次数多了,这个材料量自然就会慢慢调整好,小白鼠总有一天会拍灯,为你转身!
于是,鲁莽的菜鸟厨师,经过坚持不懈的尝试与改进,终于含泪掌握了菠萝炒鸡的配方。
👉衡量模型,就像是最后的质检,检验你训练后最优状态的模型,是否是个好的模型
- 如果衡量出最优状态模型的效果并不好,说明你当初建模时就有问题了(即,做菜用的材料不对或流程有误等)
- 如果衡量出最优状态模型的效果比较好,说明你当初建的模型,是比较合理的,可以应用!
【学习模型】,只是在尽可能地帮你把当初建立的模型,训练到最优状态;
但这个最优状态下的模型,是否真的实用好用,还是要通过最后一步【衡量模型】来判断的
【比喻还是有些不够恰当的,但精髓到位就行】
1. 建立模型
建立模型,就是根据应用类型,构造函数模型。
应用类型分为:预测、分类。
1.1 预测的函数模型
预测:一般采用线性回归模型。
求解线性回归模型参数,即是学习模型的过程
常见的线性回归函数:一元线性回归【y = wx + b】、多元线性回归【Y= W T X W^{T}X WTX】
1.1.1 一元线性回归
一元线性回归【y = wx + b】,只有一个自变量 x,和一个因变量 y,有两个未知参数w和b
它其实就是数学中的一元一次方程。 其中,w是变量x的权重,b是偏差。
一元线性回归,适用于预测只有单个因素影响某个指标的数据,并且该因素与该数据指标,是线性关系才会预测的更准。
例如,假设工资是唯一影响幸福指数的因素,那么可以建立一元线性回归的预测模型。
即:y = wx+b,x表示工资,y表示幸福指数
工资x | 幸福指数y |
---|---|
10k | 10% |
19k | 13% |
15k | 40% |
119k | 80% |
500k | 120% |
… | … |
1.1.2 多元线性回归
多元线性回归【y =
W
T
X
W^{T}X
WTX】,有多个变量x1,x2,x3…xn,构成了自变量X,每一个自变量x,都有对应的权重w1,w2,w3…wn
即 y =
W
T
X
W^{T}X
WTX =
w
1
∗
x
1
+
w
2
∗
x
2
+
w
3
∗
x
3
+
.
.
.
.
+
w
n
∗
x
n
+
w
0
∗
x
0
w_1*x_1+w_2*x_2+w_3*x_3+....+w_n*x_n + w_0*x_0
w1∗x1+w2∗x2+w3∗x3+....+wn∗xn+w0∗x0
【这里的
w
0
∗
x
0
w_0*x_0
w0∗x0,其实相当于
x
0
=
1
,
w
0
=
b
x_0=1,w_0=b
x0=1,w0=b,表示偏差b,写成
w
0
∗
x
0
w_0*x_0
w0∗x0,是为了让参数变成一个整齐的向量W】
W
T
X
W^{T}X
WTX=
[
w
0
,
w
1
,
w
2
,
w
3
,
.
.
.
,
w
m
]
\begin{bmatrix}w_0,w_1,w_2,w_3,...,w_m\end{bmatrix}
[w0,w1,w2,w3,...,wm]*
[
x
0
x
1
x
2
x
3
.
.
.
x
m
]
\begin{bmatrix}x_0\\x_1\\x_2\\x_3\\...\\x_m\end{bmatrix}
x0x1x2x3...xm
这里的
[
x
0
x
1
x
2
x
3
.
.
.
x
m
]
\begin{bmatrix}x_0\\x_1\\x_2\\x_3\\...\\x_m\end{bmatrix}
x0x1x2x3...xm
,表示一条数据
如果有多条数据,则应为 X =
[
x
00
,
x
01
.
.
.
x
0
n
x
10
,
x
11
.
.
.
x
1
n
x
20
,
x
21
.
.
.
x
2
n
x
30
,
x
31
.
.
.
x
3
n
.
.
.
x
m
0
,
x
m
1
.
.
.
x
m
n
]
\begin{bmatrix}x_{00},x_{01}...x_{0n}\\x_{10},x_{11}...x_{1n}\\x_{20},x_{21}...x_{2n}\\x_{30},x_{31}...x_{3n}\\...\\x_{m0},x_{m1}...x_{mn}\end{bmatrix}
x00,x01...x0nx10,x11...x1nx20,x21...x2nx30,x31...x3n...xm0,xm1...xmn
只有一个因变量 y,因此多元线性回归,适用于由多个因素x影响某个数据指标y的情况。
Y
T
Y^T
YT =
[
y
0
ˉ
,
y
1
ˉ
,
y
2
ˉ
,
y
3
ˉ
,
.
.
.
,
y
n
ˉ
]
\begin{bmatrix}\bar{y_0},\bar{y_1},\bar{y_2},\bar{y_3},...,\bar{y_n}\end{bmatrix}
[y0ˉ,y1ˉ,y2ˉ,y3ˉ,...,ynˉ]=
W
T
X
W^{T}X
WTX=
[
w
0
,
w
1
,
w
2
,
w
3
,
.
.
.
,
w
m
]
\begin{bmatrix}w_0,w_1,w_2,w_3,...,w_m\end{bmatrix}
[w0,w1,w2,w3,...,wm]
[
x
00
,
x
01
.
.
.
x
0
n
x
10
,
x
11
.
.
.
x
1
n
x
20
,
x
21
.
.
.
x
2
n
x
30
,
x
31
.
.
.
x
3
n
.
.
.
x
m
0
,
x
m
1
.
.
.
x
m
n
]
\begin{bmatrix}x_{00},x_{01}...x_{0n}\\x_{10},x_{11}...x_{1n}\\x_{20},x_{21}...x_{2n}\\x_{30},x_{31}...x_{3n}\\...\\x_{m0},x_{m1}...x_{mn}\end{bmatrix}
x00,x01...x0nx10,x11...x1nx20,x21...x2nx30,x31...x3n...xm0,xm1...xmn
或
Y
Y
Y =
[
y
0
ˉ
y
1
ˉ
y
2
ˉ
y
3
ˉ
.
.
.
y
n
ˉ
]
\begin{bmatrix}\bar{y_0}\\\bar{y_1}\\\bar{y_2}\\\bar{y_3}\\...\\\bar{y_n}\end{bmatrix}
y0ˉy1ˉy2ˉy3ˉ...ynˉ
=
X
W
XW
XW=
[
x
00
,
x
01
.
.
.
x
0
n
x
10
,
x
11
.
.
.
x
1
n
x
20
,
x
21
.
.
.
x
2
n
x
30
,
x
31
.
.
.
x
3
n
.
.
.
x
m
0
,
x
m
1
.
.
.
x
m
n
]
T
\begin{bmatrix}x_{00},x_{01}...x_{0n}\\x_{10},x_{11}...x_{1n}\\x_{20},x_{21}...x_{2n}\\x_{30},x_{31}...x_{3n}\\...\\x_{m0},x_{m1}...x_{mn}\end{bmatrix}^T
x00,x01...x0nx10,x11...x1nx20,x21...x2nx30,x31...x3n...xm0,xm1...xmn
T*
[
w
0
w
1
w
2
w
3
.
.
.
w
m
]
\begin{bmatrix}w_0\\w_1\\w_2\\w_3\\...\\w_m\end{bmatrix}
w0w1w2w3...wm
例如,假设颜值和工作,是影响幸福指数的两个因素,那么加上偏差b,总共有3个影响因素x0,x1,x2即如下
1.2 分类的函数模型
分类:一般采用逻辑回归模型(即,线性回归函数+非线性函数)。
逻辑回归模型:线性回归函数+非线性函数
1)先用线性回归函数,计算出一个实值。(例如,线性回归模型-计算出资产为100w)
2)再用非线性函数,对实值按条件进行分类。(例如,根据线性回归模型计算出的资产100w,则分类为“高价值人群”)
这里的非线性函数,其实是激活函数,常见的激活函数有逻辑回归
具体的激活函数有多种,常见的有sigmoid函数(也叫逻辑回归函数)、Relu函数、softmax函数等。
(sigmoid与softmax实际相通,解释不同)
1.2.1 二分类的逻辑回归
二分类的逻辑回归,其实指的就是 sigmoid 函数,又称“对数几率函数”。
二分类,是指只有两种类别,而分类结果是这两种类别中的其中一种。
当我们要实现的是二分类问题时,可以选用sigmoid函数。
从sigmoid函数可以看出,分类结果是从 y 值来判断的:例如如果以0.5作为分类标准
y>0.5 : 判定类别为 1 (可以自己设置标签,例如,1表示男)
y≤0.5:判定类别为 0(可以自己设置标签,例如,0表示女)
如果计算出的 y = 0.7,则我们可以认为分类结果是 1。
当然,也可以根据经验,以 0.8作为分类标准
y>0.8:判定类别为 1
y≤0.8:判定类别为 0
这种判断标准的设定,一般要看实际分类的情况来设定。
从sigmoid函数,我们能看出未知参数,依然是 W(多元线性方程,以后均用多元线性方程代替一元线性方程)。
多元线性方程:Z = [ z 0 ˉ z 1 ˉ z 2 ˉ z 3 ˉ . . . z n ˉ ] \begin{bmatrix}\bar{z_0}\\\bar{z_1}\\\bar{z_2}\\\bar{z_3}\\...\\\bar{z_n}\end{bmatrix} z0ˉz1ˉz2ˉz3ˉ...znˉ = X W XW XW= [ x 00 , x 01 . . . x 0 n x 10 , x 11 . . . x 1 n x 20 , x 21 . . . x 2 n x 30 , x 31 . . . x 3 n . . . x m 0 , x m 1 . . . x m n ] T \begin{bmatrix}x_{00},x_{01}...x_{0n}\\x_{10},x_{11}...x_{1n}\\x_{20},x_{21}...x_{2n}\\x_{30},x_{31}...x_{3n}\\...\\x_{m0},x_{m1}...x_{mn}\end{bmatrix}^T x00,x01...x0nx10,x11...x1nx20,x21...x2nx30,x31...x3n...xm0,xm1...xmn T [ w 0 w 1 w 2 w 3 . . . w m ] \begin{bmatrix}w_0\\w_1\\w_2\\w_3\\...\\w_m\end{bmatrix} w0w1w2w3...wm
二分类逻辑回归方程:Y = [ y 0 ˉ y 1 ˉ y 2 ˉ y 3 ˉ . . . y n ˉ ] \begin{bmatrix}\bar{y_0}\\\bar{y_1}\\\bar{y_2}\\\bar{y_3}\\...\\\bar{y_n}\end{bmatrix} y0ˉy1ˉy2ˉy3ˉ...ynˉ = Sigmoid(Z) = [ 1 1 + e − z 0 ˉ 1 1 + e − z 1 ˉ 1 1 + e − z 2 ˉ 1 1 + e − z 3 ˉ . . . 1 1 + e − z n ˉ ] \begin{bmatrix}\frac{1}{1+e^{-\bar{z_0}}}\\\frac{1}{1+e^{-\bar{z_1}}}\\\frac{1}{1+e^{-\bar{z_2}}}\\\frac{1}{1+e^{-\bar{z_3}}}\\...\\\frac{1}{1+e^{-\bar{z_n}}}\end{bmatrix} 1+e−z0ˉ11+e−z1ˉ11+e−z2ˉ11+e−z3ˉ1...1+e−znˉ1
1.2.2 多分类的逻辑回归
多分类的逻辑回归,其实指的就是 softmax 函数,它是sigmoid函数的进化,本质上与sigmoid无差。
多分类,是指有多种类别,而分类结果是这多种类别中的其中一种。
例如:声音分为男高音、男中音、男低音、女高音、女低音、女中音这6种类别,分类时只判断为其中一种,则为多分类问题,适用softmax函数。
【举个简单的🌰】
由此可见,二分类的sigmoid逻辑回归模型,只输出 1 个y值,用于判断是否
多分类的softmax逻辑回归模型,则输出多个y值,用于判断多个类别中,可能性最大的那种类别。
sigmoid函数 y =
1
1
+
e
−
z
=
e
z
e
z
+
e
0
\frac{1}{1+e^{-z}}=\frac{e^z}{e^z+e^{0}}
1+e−z1=ez+e0ez,相当于分两个类别,一个类别z1 = WX,另外一个类别(无)z2 = 0*X=0
于是,就可以变形为
s
i
g
m
o
i
d
函数
y
=
1
1
+
e
−
z
→
s
o
f
t
m
a
x
函数
y
=
e
z
e
z
+
e
0
sigmoid函数 y = \frac{1}{1+e^{-z}}→softmax函数 y=\frac{e^z}{e^z+e^{0}}
sigmoid函数y=1+e−z1→softmax函数y=ez+e0ez
举个简单的适用栗子🌰:假设颜值、工资等m个因素,决定了生活的多种价值类型(高、中、低价值)
假设有 3 个类别,低价值、中价值、高价值,各自的参数为W0,W1,W2
W0 =
[
w
00
w
01
w
02
w
03
.
.
.
w
0
m
]
\begin{bmatrix}w_{00}\\w_{01}\\w_{02}\\w_{03}\\...\\w_{0m}\end{bmatrix}
w00w01w02w03...w0m
, W1 =
[
w
10
w
11
w
12
w
13
.
.
.
w
1
m
]
\begin{bmatrix}w_{10}\\w_{11}\\w_{12}\\w_{13}\\...\\w_{1m}\end{bmatrix}
w10w11w12w13...w1m
, W2 =
[
w
20
w
21
w
22
w
23
.
.
.
w
2
m
]
\begin{bmatrix}w_{20}\\w_{21}\\w_{22}\\w_{23}\\...\\w_{2m}\end{bmatrix}
w20w21w22w23...w2m
合在一起的 W = [ W0,W1,W2]=
[
w
00
,
w
01
,
w
02
w
01
,
w
11
,
w
21
w
02
,
w
12
,
w
22
w
03
,
w
13
,
w
23
.
.
.
w
0
m
,
w
1
m
,
w
2
m
]
\begin{bmatrix}w_{00},w_{01},w_{02}\\w_{01},w_{11},w_{21}\\w_{02},w_{12},w_{22}\\w_{03},w_{13},w_{23}\\...\\w_{0m},w_{1m},w_{2m}\end{bmatrix}
w00,w01,w02w01,w11,w21w02,w12,w22w03,w13,w23...w0m,w1m,w2m
👉先建立3个多元线性回归方程,从0开始作为类别序号【0,1,2】,可以合并为 1 个:
Z = [Z0,Z1,Z2]= [ z 00 , z 10 , z 20 z 01 , z 11 , z 21 z 02 , z 12 , z 22 z 03 , z 13 , z 23 . . . z 0 m , z 1 m , z 2 m ] \begin{bmatrix}z_{00},z_{10},z_{20}\\z_{01},z_{11},z_{21}\\z_{02},z_{12},z_{22}\\z_{03},z_{13},z_{23}\\...\\z_{0m},z_{1m},z_{2m}\end{bmatrix} z00,z10,z20z01,z11,z21z02,z12,z22z03,z13,z23...z0m,z1m,z2m = X W XW XW= [ x 00 , x 01 . . . x 0 n x 10 , x 11 . . . x 1 n x 20 , x 21 . . . x 2 n x 30 , x 31 . . . x 3 n . . . x m 0 , x m 1 . . . x m n ] T \begin{bmatrix}x_{00},x_{01}...x_{0n}\\x_{10},x_{11}...x_{1n}\\x_{20},x_{21}...x_{2n}\\x_{30},x_{31}...x_{3n}\\...\\x_{m0},x_{m1}...x_{mn}\end{bmatrix}^T x00,x01...x0nx10,x11...x1nx20,x21...x2nx30,x31...x3n...xm0,xm1...xmn T [ w 00 , w 01 , w 02 w 01 , w 11 , w 21 w 02 , w 12 , w 22 w 03 , w 13 , w 23 . . . w 0 m , w 1 m , w 2 m ] \begin{bmatrix}w_{00},w_{01},w_{02}\\w_{01},w_{11},w_{21}\\w_{02},w_{12},w_{22}\\w_{03},w_{13},w_{23}\\...\\w_{0m},w_{1m},w_{2m}\end{bmatrix} w00,w01,w02w01,w11,w21w02,w12,w22w03,w13,w23...w0m,w1m,w2m
其中,z0,z1,z2的对应关系如下:
👉再建立多分类逻辑回归模型:
Y = [ Y0,Y1,Y2]=
[
y
00
,
y
10
,
y
20
y
01
,
y
11
,
y
21
y
02
,
y
12
,
y
22
y
03
,
y
13
,
y
23
.
.
.
y
0
m
,
y
1
m
,
y
2
m
]
\begin{bmatrix}y_{00},y_{10},y_{20}\\y_{01},y_{11},y_{21}\\y_{02},y_{12},y_{22}\\y_{03},y_{13},y_{23}\\...\\y_{0m},y_{1m},y_{2m}\end{bmatrix}
y00,y10,y20y01,y11,y21y02,y12,y22y03,y13,y23...y0m,y1m,y2m
=Softmax(Z)
例如
[
y
1
,
y
2
,
y
3
]
=
[
0.2
,
0.7
,
0.1
]
\begin{bmatrix}y1, y2,y3\end{bmatrix}=\begin{bmatrix}0.2, 0.7,0.1\end{bmatrix}
[y1,y2,y3]=[0.2,0.7,0.1]≈
[
0
,
1
,
0
]
\begin{bmatrix}0, 1,0\end{bmatrix}
[0,1,0]
判断为第2种类别。
总结
参数w的个数,是由影响因素的个数决定的,如果y值由3个x因素影响,则参数w的个数为3,但考虑到偏差b也用
w
0
x
0
w_0x_0
w0x0表示
则,
- 参数w为4个: W T W^T WT = [ w0, w1, w2, w3 ];
- 因素x分别为:x0, x1, x2, x3;
如果要求实现预测,需建立线性回归模型。**
👉一元或多元回归模型:
y
=
W
T
X
y = W^TX
y=WTX
如果要求实现分类,需建立逻辑回归模型。
👉二分类逻辑回归模型:
二分类,实际是只有一个类别,因此:
① 先建立一个多元线性回归模型
z
=
W
T
X
z = {W^TX}
z=WTX
其中,
W
T
=
[
w
0
,
w
1
,
w
2
.
.
.
w
m
]
W_T=[w_0,w_1,w_2...w_m]
WT=[w0,w1,w2...wm]👉
y
=
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
−
W
T
X
y =sigmoid(x)= \frac{1}{1+e^{-W^TX}}
y=sigmoid(x)=1+e−WTX1
👉多分类逻辑回归模型: [ y 1 y 2 y 3 ] = [ e W 1 T X e W 1 T X + e W 2 T X + e W 3 T X e W 2 T X e W 1 T X + e W 2 T X + e W 3 T X e W 3 T X e W 1 T X + e W 2 T X + e W 3 T X ] \begin{bmatrix}y1\\\\ y2\\\\y3\end{bmatrix}=\begin{bmatrix}\frac{e^{W1^TX}} {e^{W1^TX}+e^{W2^TX}+e^{W3^TX}}\\\\ \frac{e^{W2^TX}}{e^{W1^TX}+e^{W2^TX}+e^{W3^TX}}\\\\\frac{e^{W3^TX}}{e^{W1^TX}+e^{W2^TX}+e^{W3^TX}}\end{bmatrix} y1y2y3 = eW1TX+eW2TX+eW3TXeW1TXeW1TX+eW2TX+eW3TXeW2TXeW1TX+eW2TX+eW3TXeW3TX
注意:模型参数 W未知!
下一步学习模型,目的就是求解出最优模型的参数 W 优 W_优 W优
2. 学习模型:求解最优模型
学习模型,是根据上一步建立的模型,进行批量数据的计算,不断地迭代参数w和b,直到模型达到最优状态。
所以,在学习模型主要分为 3 个步骤:
1)明确模型初始状态的参数值:初始参数
W
0
W_0
W0
2)明确衡量模型状态的指标
3)明确计算指标最优的方式
2.1 明确参数初始值
无论是线性回归模型,还是逻辑回归模型,未知参数均为W。
要为 W 设置一个初始值,例如
W =
[
w
0
w
1
w
2
.
.
.
w
n
]
\begin{bmatrix}w_0\\ w_1\\w_2\\...\\w_n\end{bmatrix}
w0w1w2...wn
=
[
0
0
0
.
.
.
0
]
\begin{bmatrix}0\\ 0\\0\\...\\0\end{bmatrix}
000...0
当然,也可以设置为别的值。
2.2 明确衡量模型状态的指标
学习模型的目标,是要训练出当前模型下的最优状态。
我们需要思考两个核心问题:
- 什么是模型的最优状态?
- 用什么指标衡量模型状态?
- 如何来达到最优状态?
先来解决第一个问题:什么是模型的最优状态?
模型状态如何,是通过判断【当前模型计算结果】与【实际结果】拟合程度,拟合程度可通过损失函数来计算。
在训练模型时,主要是通过【实际结果( y i y_i yi)】对比【根据模型计算出的结果( y i ˉ \bar{y_i} yiˉ)】,来判断模型的计算结果,是否符合实际结果。
[ ( y 0 ) ( y 1 ) ( y 2 ) . . . ( y n ) ] \begin{bmatrix}(y_0)\\(y_1)\\(y_2)\\...\\(y_n)\end{bmatrix} (y0)(y1)(y2)...(yn) 对比 [ y 0 ˉ y 1 ˉ y 2 ˉ . . . y n ˉ ] \begin{bmatrix}\bar{y_0}\\ \bar{y_1}\\\bar{y_2}\\...\\\bar{y_n}\end{bmatrix} y0ˉy1ˉy2ˉ...ynˉ
如果每一个计算结果,都等于(或近似等于)实际结果,这个模型状态无疑是最优的!(先不管过拟合问题)
y
0
=
y
0
ˉ
y_0=\bar{y_0}
y0=y0ˉ
y
1
=
y
1
ˉ
y_1=\bar{y_1}
y1=y1ˉ
…
y
n
=
y
n
ˉ
y_n=\bar{y_n}
yn=ynˉ
可惜,天不如人意…能尽可能让大部分(相等或相似)拟合就好。
再来解决第二个问题:用什么指标衡量模型的状态?
最常用的两个指标:①差值平方和 ②似然值
这两个指标,分别对应了两种求解模型最优状态指标的方法:差值平方和-最小二乘法、似然值-极大似然估计法
2.2.1 差值平方和:最小二乘法
指标① - 差值平方和:通常指两组数据一一对应的差值平方和。
Loss = ∑ ( y ˉ i 计算 − y i 实际 ) 2 ∑(\bar{y}_{i计算}-y_{i实际})² ∑(yˉi计算−yi实际)2
当 Loss 值最小,则表示模型计算结果,与实际结果差异最小——模型最优!
这种以差值平方和最小为模型最优状态的方法,通常叫“最小二乘法”。
Loss函数,则表示模型计算结果与实际结果的误差,通常称为损失函数。
平方损失函数值Loss越小,表示模型计算结果与实际结果误差越小,模型越优。
当 Loss 达到最小值时,说明模型达到最优状态,这时可以明确最优模型的参数
W
优
W_优
W优 了。
则,模型变为 y =
W
优
T
X
W^T_{优}X
W优TX
最小二乘法:适用于预测问题,即适用于求解线性回归模型的最优状态。
2.2.2 似然值:极大似然估计法
——极大似然估计法即交叉熵法,解释角度不同,但公式相同
似然值: Y 实际 Y_{实际} Y实际在当前模型下发生的可能性大小,叫做似然值。
当似然值越大,表示 Y 实际 Y_{实际} Y实际在该模型下,发生的概率值较大,即当前模型与实际模型更接近。
极大似然估计法,就是在挑出似然值越大的那个模型。
Loss = ∑ y i ˉ . l n y i + ( 1 − y i ˉ ) . l n y i \sum_{}^{}{}\bar{y_{i}}.lny_{i}+(1-\bar{y_{i}}).lny_{i} ∑yiˉ.lnyi+(1−yiˉ).lnyi
似然值(或称交叉熵)越大,模型越优。
极大似然估计法:适用于预测、分类问题,即适用于求解线性回归模型、逻辑回归模型的最优状态。
2.2.3 差值平方和与似然值的总结对比
差值平方和越小,模型越优——最小二乘法:适用于预测
似然值越大,模型越优——极大似然估计法:适用于预测、分类
最后来解决第一个问题:如何达到模型的最优状态?
- 如果是最小二乘法,差值平方和最小,则模型最优
- 如果是极大似然估计法,似然值最大,则模型最优
那么如何使最小二乘法的差值平方和最小,如何使极大似然估计法的似然值达到最大呢?
2.3 明确计算指标最优的方式
模型与实际模型的拟合程度指标,可通过损失函数Loss计算可得。
最小二乘法:SST =
∑
(
y
ˉ
i
计算
−
y
i
实际
)
2
∑(\bar{y}_{i计算}-y_{i实际})²
∑(yˉi计算−yi实际)2,求出Loss最小值(即差值平方和Sum of squares for total最小)
极大似然估计法:L =
∑
y
i
ˉ
.
l
n
y
i
+
(
1
−
y
i
ˉ
)
.
l
n
y
i
\sum_{}^{}{}\bar{y_{i}}.lny_{i}+(1-\bar{y_{i}}).lny_{i}
∑yiˉ.lnyi+(1−yiˉ).lnyi,求出L最大值(即似然值Likelyhood最大)
这两个函数,都可以统一为损失函数 Loss。
最小二乘法的损失函数:Loss =
∑
(
y
ˉ
i
计算
−
y
i
实际
)
2
∑(\bar{y}_{i计算}-y_{i实际})²
∑(yˉi计算−yi实际)2
极大似然估计法的损失函数:Loss = -
∑
[
y
i
ˉ
.
l
n
y
i
+
(
1
−
y
i
ˉ
)
.
l
n
y
i
]
\sum_{}^{}{}[ \bar{y_{i}}.lny_{i}+(1-\bar{y_{i}}).lny_{i} ]
∑[yiˉ.lnyi+(1−yiˉ).lnyi]【注:在原L函数前加负号】
这样,无论是最小二乘法,还是极大似然估计法,都只要求出它们的损失函数 Loss 的极小值即可。
而损失函数求极值,通常有以下两种方法:
- 通过求导,求出解析解,得到精确模型——数学计算求极值
- 通过迭代,求出近似解,逼近较优模型——梯度下降法、牛顿法…
2.3.1 求导:解析解
Loss 函数对参数W求导,并使导数 L o s s ′ Loss^{'} Loss′为0,计算出精确的参数 W,使得Loss得到最大值或最小值。
2.3.1.1 最小二乘法-求导解析解
最小二乘法的Loss函数,本质上就是个二元方程,求解二元方程的最小值,直接求导即可。
Loss =
∑
(
y
ˉ
i
计算
−
y
i
实际
)
2
∑(\bar{y}_{i计算}-y_{i实际})²
∑(yˉi计算−yi实际)2
求导数 L o s s ′ = d L o s s ( W ) d ( W ) = 0 时,求解出的 W 值为模型最优状态下的参数,此时的 S S T 达到最小值。 Loss^{'}=\frac{dLoss(W)}{d(W)}=0时,求解出的 W值为模型最优状态下的参数,此时的SST达到最小值。 Loss′=d(W)dLoss(W)=0时,求解出的W值为模型最优状态下的参数,此时的SST达到最小值。
- 对 W 求导,实际是对每一个w0,w1,w2…求偏导 ∂ L o s s ( w 0 ) ∂ ( w 0 ) = ∂ L o s s ( w 1 ) ∂ ( w 1 ) = ∂ L o s s ( w i ) ∂ ( w i ) = 0 \frac{∂Loss(w0)}{∂(w0)}=\frac{∂Loss(w1)}{∂(w1)}=\frac{∂Loss(wi)}{∂(wi)}=0 ∂(w0)∂Loss(w0)=∂(w1)∂Loss(w1)=∂(wi)∂Loss(wi)=0
- 最终求得每一个
w
i
w_i
wi,构成最终的
W
优
W_优
W优
但使用解析法求出线性回归的平方损失函数极小值的前提是,是满秩矩阵。
2.3.1.1 极大似然估计法-求导解析解
极大似然估计法,本质上就是个对数方程,求解它的最大值,直接求导即可。
Loss =
∑
y
i
ˉ
.
l
n
y
i
+
(
1
−
y
i
ˉ
)
.
l
n
y
i
\sum_{}^{}{}\bar{y_{i}}.lny_{i}+(1-\bar{y_{i}}).lny_{i}
∑yiˉ.lnyi+(1−yiˉ).lnyi
求导数 L ′ = d L o s s ( W ) d ( W ) = 0 时,求解出的 W 值为模型最优状态下的参数,此时的 L 达到最大值。 L^{'}=\frac{dLoss(W)}{d(W)}=0时,求解出的 W值为模型最优状态下的参数,此时的L达到最大值。 L′=d(W)dLoss(W)=0时,求解出的W值为模型最优状态下的参数,此时的L达到最大值。
- 对 W 求导,实际是对每一个w0,w1,w2…求偏导 ∂ L o s s ( w 0 ) ∂ ( w 0 ) = ∂ L o s s ( w 1 ) ∂ ( w 1 ) = ∂ L o s s ( w i ) ∂ ( w i ) = 0 \frac{∂Loss(w0)}{∂(w0)}=\frac{∂Loss(w1)}{∂(w1)}=\frac{∂Loss(wi)}{∂(wi)}=0 ∂(w0)∂Loss(w0)=∂(w1)∂Loss(w1)=∂(wi)∂Loss(wi)=0
- 最终求得每一个 w i w_i wi,构成最终的 W 优 W_优 W优
但使用解析法求出损失函数极小值的前提是,W是满秩矩阵
(数据集内容不同,结果可能满秩,也可能不满秩,因此最小二乘法在数据量过大数据内容不确定情况,有可能无法使用最小二乘法,可采用L2正则化进行优化【此知识点难度较大,待更新】,或是数量级差距过大,最小二乘法得出的结果偏差过大)
解析法难以应对大批量的数据集计算,因此实际常用求近似解,逼近较优模型的方式。
2.3.2 迭代:近似解
通过迭代参数W,求解每次迭代后的Loss值,当Loss达到最小值时停止迭代,即可得到模型最优状态下的参数 W 优 W_优 W优。
在之前,已经设置了模型的初始参数
W
0
=
0
W_0= 0
W0=0 ,并根据初始参数计算出初始的Loss值,即
L
o
s
s
0
=
W
0
T
∗
X
Loss_0=W_0^T*X
Loss0=W0T∗X
的方式有梯度下降法、牛顿法等
2.3.2.1 梯度下降法
每次迭代的步长 Δ ,为学习率*导数:
Δ
=
η
∗
d
(
L
o
s
s
k
)
d
w
Δ = η*\frac{d(Loss_k)}{dw}
Δ=η∗dwd(Lossk)
w
k
+
1
=
w
k
−
Δ
👉
w
k
+
1
=
w
k
−
η
∗
d
(
L
o
s
s
k
)
d
w
w_{k+1} = w_k-Δ 👉w_{k+1} = w_k-η*\frac{d(Loss_k)}{dw}
wk+1=wk−Δ👉wk+1=wk−η∗dwd(Lossk)
1)当前
w
k
w_k
wk下的导数越大,则下次迭代的步长越大。
2)当前
w
k
w_k
wk下的导数越小,则下次迭代的步长越小。
- 这样的迭代方式,可根据函数倾斜程度,自动调整步长。
2.3.2.2 牛顿法
下次迭代的
w
k
+
1
w_{k+1}
wk+1,为
w
k
w_k
wk处切线方程 ax+b = 0 时的根$,步长Δ计算如下图
最终得出迭代方程
w
k
+
1
=
w
k
−
Δ
👉
w
k
+
1
=
w
k
−
L
o
s
s
k
d
(
L
o
s
s
k
)
d
w
w_{k+1} = w_k-Δ 👉w_{k+1} = w_k-\frac{Loss_k}{\frac{d(Loss_k)}{dw}}
wk+1=wk−Δ👉wk+1=wk−dwd(Lossk)Lossk
使用梯度下降法,求解损失函数的值,多次迭代计算出损失函数的值。
停止迭代的方式有两种:
①设置损失函数的阈值,当损失函数小于某阈值,即停止迭代
②设置迭代的次数,当迭代次数超过时,即停止迭代(迭代会收敛,迭代次数越多,则越逼近极值)
多次迭代过程中,不断更新模型参数,使模型在迭代过程中逐渐变优。
迭代法:通过不断地更新模型参数W,求出近似最优的模型。
迭代法的核心是,每次如何更新参数 W?
多层神经网络的浅显认识
上述是对单层神经网络的模型进行迭代,更新模型参数。
但当涉及多层神经网络时,中间含有较多隐含层,要如何更新各层模型的参数呢?
若是要训练多层神经网络,可考虑误差反向传播法:
计算当前模型的预测值与实际值的误差,根据误差值反向计算各层的参数加粗样式