8.4 作业
原文链接
1.将向量下标为偶数的分量 (x2, x4, …) 累加, 写出相应表达式.
∑
i
=
2
,
4
,
…
x
i
\displaystyle\sum_{i=2,4,\dots}xi
i=2,4,…∑xi
2.各出一道累加、累乘、积分表达式的习题, 并给出标准答案.
计算:
1
+
2
+
⋯
+
10
1 + 2 + \dots + 10
1+2+⋯+10
∑
i
=
1
10
i
=
55
\sum_{i = 1}^{10} i=55
∑i=110i=55
计算:
1
×
2
×
⋯
×
10
1 \times 2 \times\dots\times10
1×2×⋯×10
∏
i
=
1
10
i
=
3628800
\prod_{i = 1}^{10} i=3628800
∏i=110i=3628800
计算:
∫
0
10
x
2
+
x
+
1
d
x
=
1180
/
3
\int_{0}^{10} x^2 + x + 1 \mathrm{d}x=1180/3
∫010x2+x+1dx=1180/3
3.你使用过三重累加吗? 描述一下其应用.
没使用过,但据说可以用来求时间复杂度。
4.给一个常用的定积分, 将手算结果与程序结果对比
计算:
∫
0
10
x
+
1
d
x
=
60
\int_{0}^{10} x + 1 \mathrm{d}x=60
∫010x+1dx=60
代码:
double integration = 0;
double delta = 0.01;
for (int x = 0; x <= 10; x += delta)
integeration += (x + 1) * delta;
运行结果:60.06
9.3 作业
原文链接
自己写一个小例子,来验证最小二乘法.
Matlab最基础的程序如下:
%原始数据
X=[163 123 150 123 141];
Y=[186 126 172 125 148];
n=5; %一共5个变量
x2=sum(X.^2); % 求Σ(xi^2)
x1=sum(X); % 求Σ(xi)
x1y1=sum(X.Y); % 求Σ(xiyi)
y1=sum(Y); % 求Σ(yi)
a=(nx1y1-x1y1)/(nx2-x1x1); %解出直线斜率b=(y1-ax1)/n
b=(y1-ax1)/n; %解出直线截距
%作图
% 先把原始数据点用蓝色十字描出来
figure
plot(X,Y,’+’);
hold on
% 用红色绘制拟合出的直线
px=linspace(120,165,45);
py=a*px+b;
plot(px,py,‘r’);
结果 a=1.5555 b=-66.365
10.6 作业
原文链接
自己推导一遍Logistic回归, 并描述这个方法的特点 (不少于 5 条).
分割超平面
线性分类模型的目标, 是找到一个超平面, 把正例、负例分割.
问题: 如何评价每个超平面的性能?
方案之一, 是最小化错分对象的数量, 但如果多个超平面都满足条件怎么办?
哪个超平面是最优的, 就体现不同算法的设计理念.
方案方二, 就是根据每个对象到超平面的距离, 来计算其损失. 如果正确分类, 则离超平面越远越好; 如果错误分类, 则离超平面越近越好.
点到直线的距离
在m 维空间上, m 维向量
w
\mathbf{w}
w 确定了一条直线.
为方便起见, 令
w
\mathbf{w}
w 为列向量.
点
x
\mathbf{x}
x 与
w
\mathbf{w}
w 的距离为
x
w
\mathbf{xw}
xw
这个距离带符号. 正号代表
x
\mathbf{x}
x 在
w
\mathbf{w}
w的某一边, 负号则表示另一边.
参见《高等数学》.
sigmoid 函数
x
\mathbf{x}
x到超平面的距离 (带符号) 取值范围为
(
−
∞
,
+
∞
)
(-\infty, +\infty)
(−∞,+∞), 希望将其转成概率.
如果距离为负而且离超平面很远, 则它为正例的概率就接近 0;
如果距离为正而且离超平面很远, 则它为正例的概率就接近 1.
使用 sigmoid 函数将距离转成 (我们以为的) 概率
p
(
y
=
1
∣
x
;
w
)
=
1
1
+
e
−
x
w
p(y = 1 \vert \mathbf{x}; \mathbf{w}) = \frac{1}{1 + e^{-\mathbf{xw}}}
p(y=1∣x;w)=1+e−xw1
优化目标
统一
y
i
y_i
yi不同取值 (0 或 1)
arg
max
w
L
(
w
)
=
∏
i
=
1
n
p
(
y
i
∣
x
i
;
w
)
\displaystyle\arg\max_wL(\mathbf{w})=\prod_{i = 1}^{n}p(y_i \vert \mathbf{x}_i; \mathbf{w})
argwmaxL(w)=i=1∏np(yi∣xi;w)
求解
相乘计算困难, 将其求一个对数, 不改变单调性
log
L
(
w
)
=
∑
i
=
1
n
log
P
(
y
i
∣
x
i
;
w
)
\log L(\mathbf{w}) = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}i; \mathbf{w})
logL(w)=∑i=1nlogP(yi∣xi;w)
=
∑
i
=
1
n
y
i
log
P
(
y
i
=
1
∣
x
i
;
w
)
+
(
1
−
y
i
)
log
(
1
−
P
(
y
i
=
1
∣
x
i
;
w
)
)
= \sum{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w}))
=∑i=1nyilogP(yi=1∣xi;w)+(1−yi)log(1−P(yi=1∣xi;w))
=
∑
i
=
1
n
y
i
log
P
(
y
i
=
1
∣
x
i
;
w
)
1
−
P
(
y
i
=
1
∣
x
i
;
w
)
+
log
(
1
−
P
(
y
i
=
1
∣
x
i
;
w
)
)
= \sum{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w}))
=∑i=1nyilog1−P(yi=1∣xi;w)P(yi=1∣xi;w)+log(1−P(yi=1∣xi;w))
=
∑
i
=
1
n
y
i
x
i
w
−
log
(
1
+
e
x
i
w
)
= \sum{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}})
=∑i=1nyixiw−log(1+exiw)
对
w
\mathbf{w}
w求偏导
∂
log
L
(
w
)
∂
w
=
∑
i
=
1
n
y
i
x
i
−
e
x
i
w
1
+
e
x
i
w
x
\frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}
∂w∂logL(w)=∑i=1nyixi−1+exiwexiwx
=
∑
i
=
1
n
(
y
i
−
e
x
i
w
1
+
e
x
i
w
)
x
i
= \sum{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i
=∑i=1n(yi−1+exiwexiw)xi
令该偏导为 0, 无法获得解析式, 因此用梯度下降.
w
t
+
1
=
w
t
−
α
×
∂
log
L
(
w
)
∂
w
\mathbf{w}_{t+1}=\mathbf{w}_t-\alpha\times\frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}}
wt+1=wt−α×∂w∂logL(w)
优点:
(模型)模型清晰,背后的概率推导经得住推敲。
(输出)输出值自然地落在0到1之间,并且有概率意义(逻辑回归的输出是概率么?https://www.jianshu.com/p/a8d6b40da0cf)。
(参数)参数代表每个特征对输出的影响,可解释性强。
(简单高效)实施简单,非常高效(计算量小、存储占用低),可以在大数据场景中使用。
(可扩展)可以使用online learning的方式更新轻松更新参数,不需要重新训练整个模型。
(过拟合)解决过拟合的方法很多,如L1、L2正则化。
(多重共线性)L2正则化就可以解决多重共线性问题。