非线性变换
定义
通过转换函数
Φ
\Phi
Φ把在空间
X
\mathcal{X}
X下无法进行线性分割的数据转换为可以进行线性分割的
Z
\mathcal{Z}
Z空间的过程(理论上任何非线性可分数据均可转换为更高阶的线性可分的空间)。
x
=
(
x
0
,
…
,
x
d
)
→
Φ
→
z
=
(
z
0
,
…
…
,
z
d
~
)
\mathbf{x}=\left(x_{0}, \ldots, x_{d}\right) \rightarrow \Phi \rightarrow \mathbf{z}=\left(z_{0}, \ldots \dots, z_{\tilde{d}}\right)
x=(x0,…,xd)→Φ→z=(z0,……,zd~)
其中
d
<
d
~
d<\tilde{d}
d<d~,
d
v
c
=
d
+
1
d_{v c}=d+1
dvc=d+1,
d
~
v
c
≤
d
~
+
1
\tilde{d}_{v c} \leq \tilde{d}+1
d~vc≤d~+1. 由于
z
i
=
Φ
i
(
x
)
\mathrm{z}_i=\Phi_i (\mathrm{x})
zi=Φi(x),
Z
\mathcal{Z}
Z空间是通过空间
X
\mathcal{X}
X变换而来的,在此受限情况下,可能出现小于号。
非线性变换增加了参数数量,需要更多的数据进行训练;虽然从理论上可以处理高维数据,但其泛化能力受限。
非线性变换的代价
目标:找到能够反映样本外部数据的模型,即模型泛化能力很重要,要尽量减小已有数据的影响。
Data Snooping: 如果模型选择受到已有数据影响,则会削弱其泛化能力。
- 对于线性基本可分的数据,倘若进行非线性变化,可能产生过拟合,削弱模型泛化作用。倘若采用简单的线性可分模型,则须接受由此带来的 E i n > 0 E_{i n}>0 Ein>0误差。
- 对在当前空间中无法线性可分或者难以进行线性分割的条件下可进行非线性转换。
Logistic Regression
在线性分类中,模型为
h
(
x
)
=
s
i
g
n
(
w
T
x
)
h(\mathrm{x})=sign(\boldsymbol{w^T}\mathrm{x})
h(x)=sign(wTx),则
h
(
x
)
h(\mathrm{x})
h(x)取值为
±
1
±1
±1.
Logistic分类回归中,模型为
h
(
x
)
=
θ
(
s
)
=
e
s
e
s
+
1
=
1
e
−
s
+
1
h(\mathrm{x})=\theta(\mathrm{s})=\frac{e^s}{e^s+1}=\frac{1}{e^{-s}+1}
h(x)=θ(s)=es+1es=e−s+11
其中
s
=
w
T
x
\mathrm{s=\boldsymbol{w^T}\mathrm{x}}
s=wTx,
θ
(
−
s
)
=
1
−
θ
(
s
)
\theta(\mathrm{-s})=1-\theta(\mathrm{s})
θ(−s)=1−θ(s),且
0
<
θ
(
s
)
<
1
0<\theta(\mathrm{s})<1
0<θ(s)<1.
θ ( s ) = 1 e − s + 1 \theta(\mathrm{s})=\frac{1}{e^{-s}+1} θ(s)=e−s+11被称为sigmoid函数。如下图,Logistic Regression算法将线性函数的结果映射到sigmoid函数中。
![](https://i-blog.csdnimg.cn/blog_migrate/f787cc213e2cbcb58b5745197576f591.png)
模型特点
1.logistic回归只能解决线性问题,但引入soft threshold,相对于linear regression,将结果归一化至(0,1). 可将模型值解释为概率值,
h
(
x
)
→
0
h(\mathrm{x})\rightarrow {0}
h(x)→0时,表示预测结果接近-1类,,
h
(
x
)
→
1
h(\mathrm{x})\rightarrow {1}
h(x)→1时,表示预测结果接近+1类。
2. 模型提供发生的可能性,相对于二分类确切结果,提供信息更多。
构造代价函数
- 构造概率模型
P ( y ∣ x ) = { f ( x ) if y = + 1 1 − f ( x ) if y = − 1 P(y|\mathrm{x} )=\left\{\begin{array}{cc}{f(\mathrm{x})} & {\text { if } y=+1} \\ {1-f(\mathrm{x})} & {\text { if } y=-1}\end{array}\right. P(y∣x)={f(x)1−f(x) if y=+1 if y=−1
f ( x ) f(\mathrm{x}) f(x)为目标函数, P ( y ∣ x ) P(y |\mathrm{x} ) P(y∣x)为在 X \mathrm{X} X条件下 y y y发生的概率 - 采用
h
(
x
)
h(\mathrm{x})
h(x)来近似
f
(
x
)
f(\mathrm{x})
f(x),
P ( y ∣ x ) = { h ( x ) if y = + 1 1 − h ( x ) if y = − 1 P(y|\mathrm{x} )=\left\{\begin{array}{cc}{h(\mathrm{x})} & {\text { if } y=+1} \\ {1-h(\mathrm{x})} & {\text { if } y=-1}\end{array}\right. P(y∣x)={h(x)1−h(x) if y=+1 if y=−1
由 h ( x ) = θ ( s ) h(\mathrm{x})=\theta(\mathrm{s}) h(x)=θ(s)及 θ ( − s ) = 1 − θ ( s ) \theta(\mathrm{-s})=1-\theta(\mathrm{s}) θ(−s)=1−θ(s)可将上式简化:
P ( y ∣ x ) = θ ( y w T x ) P(y|\mathrm{x} )=\theta(y\boldsymbol{w^T}\mathrm{x}) P(y∣x)=θ(ywTx) - 极大似然估计
∏ n = 1 N P ( y ( n ) ∣ x ( n ) ) = ∏ n = 1 N θ ( y ( n ) w T x n ) \prod_{n=1}^{N} P\left(y_{(n)} | \mathrm{x}_{(n)}\right)=\prod_{n=1}^{N} \theta\left(y_{(n)} \boldsymbol{w^T}\mathrm{x}_{n}\right) n=1∏NP(y(n)∣x(n))=n=1∏Nθ(y(n)wTxn)
(1) 取对数似然可得
Maximize
l
n
(
∏
n
=
1
N
θ
(
y
(
n
)
w
T
x
n
)
)
\mathrm{ln}(\prod_{n=1}^{N} \theta\left(y_{(n)} \boldsymbol{w^T}\mathrm{x}_{n}\right))
ln(n=1∏Nθ(y(n)wTxn))
即Minimize
−
l
n
(
∏
n
=
1
N
θ
(
y
(
n
)
w
T
x
n
)
=
∑
n
=
1
N
l
n
(
1
θ
(
y
(
n
)
w
T
x
n
)
)
-\mathrm{ln}(\prod_{n=1}^{N} \theta\left(y_{(n)} \boldsymbol{w^T}\mathrm{x}_{n}\right)\\=\sum_{n=1}^{N}\mathrm{ln}(\frac {1} {\theta\left(y_{(n)} \boldsymbol{w^T}\mathrm{x}_{n}\right)})
−ln(n=1∏Nθ(y(n)wTxn)=n=1∑Nln(θ(y(n)wTxn)1)
- Cross-Entropy error(交叉熵误差度量)
将
θ
(
s
)
=
1
e
−
s
+
1
\theta(\mathrm{s})=\frac{1}{e^{-s}+1}
θ(s)=e−s+11 代入可得
E
i
n
(
w
)
=
1
N
∑
n
=
1
N
l
n
(
1
+
e
−
y
(
n
)
w
T
x
n
)
E_{in}( \boldsymbol{w})=\frac{1}{N}\sum_{n=1}^{N}\mathrm{ln}(1+e^{-y_{(n)} \boldsymbol{w^T}\mathrm{x}_{n}})
Ein(w)=N1n=1∑Nln(1+e−y(n)wTxn)
梯度下降求 E i n ( w ) E_{in}( \boldsymbol{w}) Ein(w)最小值
推导过程:
![](https://i-blog.csdnimg.cn/blog_migrate/926dece4917154c57ec5c98f735a90f3.png)
其中 w ( 0 ) w(0) w(0)为初始值, η \eta η为移动步长, v ^ \hat{v} v^为移动方向。
算法描述:
![](https://i-blog.csdnimg.cn/blog_migrate/97d5353cd084fd7d3012e91fa7f1b442.png)
终止算法方法:
1、直到找到最好的 W,效果最好,但是无法确定什么时候会终止(有可能无限…)
2、设定一个阀值,当 E i n E_{in} Ein 小于该阀值的时候终止。
3、限定迭代次数,当 t 大于某个值的时候终止。
利用该方法每次只能找到局部最优值而非全局最优值,不过我们可以通过做多次试验,每次指定不同的初始值,然后取所有结果最小的作为输出。