暑期SMALE魔鬼训练day2
上午:
- 将向量下标为偶数的分量
(
x
2
,
x
4
,
…
)
(x_2, x_4, \dots)
(x2,x4,…)累加, 写出相应表达式.
∑ i m o d 2 = 0 x i \sum_{i \mod 2 = 0} x_i imod2=0∑xi - 各出一道累加、累乘、积分表达式的习题, 并给出标准答案.
a)函数 f ( x ) = 2 x 2 f(x) = 2x^2 f(x)=2x2在 x ∈ [ 1 , 15 ] x\in[1, 15] x∈[1,15]时的累加和
∑ x ∈ [ 1 , 15 ] 2 x 2 \sum_{x \in[1, 15]}2x^2 x∈[1,15]∑2x2
sum = 0
for x in range(1, 16):
sum = sum + 2*x**2
b). 求取
x
∈
[
1
,
100
]
x \in [1, 100]
x∈[1,100]中的3的倍数累乘结果
A
=
{
a
∈
[
1
,
100
]
∣
a
m
o
d
3
=
0
}
\mathbf{A} = \{a \in [1, 100] \vert a \mod 3 = 0\}
A={a∈[1,100]∣amod3=0}
∏
a
∈
A
a
\prod_{a \in \mathbf{A}} a
a∈A∏a
product = 1
for a in range(1, 101):
if a % 3 == 0:
product *= a
c)求
f
(
x
)
=
sin
(
x
)
+
x
f(x) = \sin(x) + x
f(x)=sin(x)+x在[3, 8]上的积分
∫
3
8
sin
(
x
)
+
x
d
x
\int_3^8\sin(x) + x\mathrm{d}x
∫38sin(x)+xdx
import numpy as np
x = np.linspace(3,8,10000)
y = np.sin(x) + x
dx = x[1] - x[0] #每个矩形的宽度
fArea = np.sum(y*dx) #矩形宽*高,再求和
print("Integral area:",fArea)
- 给一个常用的定积分, 将手算结果与程序结果对比.
f ( x ) = ∫ 1 e 1 x + 1 d x f(x) = \int_1^e\frac{1}{x} + 1 \mathrm{d}x f(x)=∫1ex1+1dx
手动计算:
原函数为:
g ( x ) = l n ( x ) + x g(x) = \mathrm{ln}(x) + x g(x)=ln(x)+x
带入上下限:
l n ( e ) + e − [ l n ( 1 ) + 1 ] = e \mathrm{ln}(e) + e - [\mathrm{ln}(1) + 1] = e ln(e)+e−[ln(1)+1]=e
代码
import numpy as np
x = np.linspace(1,np.e,10000)
y = 1/x + 1
dx = x[1] - x[0] #每个矩形的宽度
fArea = np.sum(y*dx) #矩形宽*高,再求和
print("Integral area:",fArea)
print('e:', np.e)
计算结果
下午:
自己写一个小例子
(
n
=
3
,
m
=
1
)
(n=3, m = 1)
(n=3,m=1)来验证最小二乘法.
通过男性身高来大致估计体重
身高(cm) | 体重(kg) |
---|---|
175 | 67 |
170 | 60 |
166 | 58 |
X
\mathbf{X}
X表示身高,
Y
\mathbf{Y}
Y表示体重,
w
\mathbf{w}
w表示权重
根据推导:
w
=
(
X
T
X
)
−
1
X
T
Y
\mathbf{w}=(\mathbf{X}^ \mathrm{ T }\mathbf{X})^{-1}\mathbf{X}^ \mathrm{ T }\mathbf{Y}
w=(XTX)−1XTY
(
[
1
1
1
175
170
166
]
×
[
1
175
1
170
1
166
]
)
−
1
×
[
1
1
1
175
170
166
]
×
[
67
60
58
]
\left(\left[\begin{matrix} 1 & 1 & 1 \\175 & 170 & 166\end{matrix}\right] \times \left[\begin{matrix} 1 & 175 \\ 1 & 170 \\ 1 & 166\end{matrix}\right]\right)^{-1} \times \left[\begin{matrix} 1 & 1 & 1 \\175 & 170 & 166\end{matrix}\right] \times \left[\begin{matrix}67 \\ 60 \\ 58\end{matrix}\right]
⎝⎛[117511701166]×⎣⎡111175170166⎦⎤⎠⎞−1×[117511701166]×⎣⎡676058⎦⎤
=
[
−
111.45901693
1.01639344
]
=\left[\begin{matrix}-111.45901693 \\ 1.01639344 \end{matrix}\right]
=[−111.459016931.01639344]
将原来的数据带入
175
×
1.01639344
−
111.45901693
=
66.4098
175 \times 1.01639344 - 111.45901693 = 66.4098
175×1.01639344−111.45901693=66.4098
170
×
1.01639344
−
111.45901693
=
61.3278
170 \times 1.01639344 - 111.45901693 = 61.3278
170×1.01639344−111.45901693=61.3278
166
×
1.01639344
−
111.45901693
=
57.2623
166 \times 1.01639344 - 111.45901693 = 57.2623
166×1.01639344−111.45901693=57.2623
晚上:
自己推导一遍, 并描述这个方法的特点 (不少于 5 条).
对于分类目标点
y
i
∈
{
0
,
1
}
y_i \in \{0, 1\}
yi∈{0,1},要找到一个超平面
w
T
x
+
b
=
0
w^\mathrm{T} x + b = 0
wTx+b=0使得
Y
\mathbf{Y}
Y中的两类位于超平面的两侧。为了找到一个最优的平面,通过点到直线的距离来计算目标点与分类平面的关系。
f
(
x
)
=
w
T
x
f(x) = w^\mathrm{T} x
f(x)=wTx此处的
w
和
x
w 和x
w和x是加上偏置
b
b
b的 。由于点到超平面的距离可以取值到无穷大于是通过sigmoid函数将输出值压缩到(0, 1)之间,且可以将距离转化成概率。
P
(
y
=
1
∣
x
;
w
)
=
1
1
+
e
−
w
x
P(y = 1\vert \mathrm{x};\mathrm{w}) = \frac 1{1 + e^{\mathrm{-wx}}}
P(y=1∣x;w)=1+e−wx1
将上述式子写成一个通式
P
(
y
i
∣
x
i
;
w
)
=
P
(
y
i
=
1
∣
x
i
;
w
)
y
i
(
1
−
P
(
y
i
=
0
∣
x
i
;
w
)
)
1
−
y
i
P(y_i \vert \mathrm{x}_i;\mathrm{w}) = P(y_i = 1\vert \mathrm{x}_i;\mathrm{w})^{y_i}(1 - P(y_i =0 \vert \mathrm{x}_i;\mathrm{w}))^{1-y_i}
P(yi∣xi;w)=P(yi=1∣xi;w)yi(1−P(yi=0∣xi;w))1−yi
对于全体对象进行优化,可以将全部的输出概率相乘,来求得使之最大的参数
w
\mathrm{w}
w
arg max
w
∏
i
=
1
n
P
(
y
i
∣
x
i
;
w
)
\argmax_\mathrm{w}\prod_{i = 1}^nP(y_i\vert \mathrm{x}_i;\mathrm{w})
wargmaxi=1∏nP(yi∣xi;w)
由于连乘很难计算,所以对式子两端同时取对数
log
L
(
w
)
=
∑
i
=
1
n
log
P
(
y
i
∣
x
i
;
w
)
\log L(\mathrm{w}) = \sum _{i = 1}^n\log P(y_i \vert \mathrm{x}_i;\mathrm{w})
logL(w)=i=1∑nlogP(yi∣xi;w)
=
∑
i
=
1
n
y
i
log
P
(
y
i
=
1
∣
x
i
;
w
)
+
log
P
(
y
i
=
0
∣
x
i
;
w
)
−
y
i
log
P
(
y
i
=
0
∣
x
i
;
w
)
= \sum _{i = 1}^ny_i \log P(y_i = 1\vert \mathrm{x}_i;\mathrm{w}) + \log P(y_i =0 \vert \mathrm{x}_i;\mathrm{w}) - y_i \log P(y_i =0 \vert \mathrm{x}_i;\mathrm{w})
=i=1∑nyilogP(yi=1∣xi;w)+logP(yi=0∣xi;w)−yilogP(yi=0∣xi;w)
带入sigmoid函数
=
∑
i
=
1
n
y
i
x
i
w
−
log
(
1
+
e
x
i
w
)
=\sum _{i = 1}^ny_i \mathrm{x}_i \mathrm{w} - \log (1+ e^{\mathrm{x}_i \mathrm{w}})
=i=1∑nyixiw−log(1+exiw)
最后通过梯度下降法求出
w
w
w,第
t
+
1
t + 1
t+1轮迭代的值
w
t
+
1
=
w
t
−
α
∂
log
L
(
w
)
∂
w
\mathrm{w}^{t + 1} = \mathrm{w}^t -\alpha \frac {\partial \log L(\mathrm{w})} {\partial \mathrm{w}}
wt+1=wt−α∂w∂logL(w)
特点:
1 适用于二分类问题,并且分类标签为0和1
2 分类器输出为正类或者负类的概率值
3 输出的概率大于0.5为正类小于0.5为负类
4 越是远离超平面输出的值越是接近0或1
5 求解参数矩阵时,不能通过令导数等于零的方法,只能用梯度下降法求解