Skip to content

Commit

Permalink
修改svm的几个错误
Browse files Browse the repository at this point in the history
  • Loading branch information
fengdu78 committed Dec 18, 2018
1 parent f5352a6 commit e97333b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 106 deletions.
Binary file added docx/机器学习个人笔记完整版v5.34.docx
Binary file not shown.
Binary file modified docx/机器学习的数学基础.docx
Binary file not shown.
113 changes: 17 additions & 96 deletions html/week7.html

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions markdown/math.md
Expand Up @@ -44,12 +44,12 @@ $f'({{x}_{0}})=\underset{x\to {{x}_{0}}}{\mathop{\lim }}\,\frac{f(x)-f({{x}_{0}}
(3) $(\frac{u}{v}{)}'=\frac{v{u}'-u{v}'}{{{v}^{2}}}(v\ne 0)$ $d(\frac{u}{v})=\frac{vdu-udv}{{{v}^{2}}}$

**6.基本导数与微分表**
(1) $y=c$(常数) ${y}'=0$ $dy=0$
(2) $y={{x}^{\alpha }}$($\alpha $为实数) ${y}'=\alpha {{x}^{\alpha -1}}$ $dy=\alpha {{x}^{\alpha -1}}dx$
(3) $y={{a}^{x}}$ ${y}'={{a}^{x}}\ln a$ $dy={{a}^{x}}\ln adx$
特例: $({{{e}}^{x}}{)}'={{{e}}^{x}}$ $d({{{e}}^{x}})={{{e}}^{x}}dx$
(1) $y=c$(常数) ${y}'=0$ $dy=0$
(2) $y={{x}^{\alpha }}$($\alpha $为实数) ${y}'=\alpha {{x}^{\alpha -1}}$ $dy=\alpha {{x}^{\alpha -1}}dx$
(3) $y={{a}^{x}}$ ${y}'={{a}^{x}}\ln a$ $dy={{a}^{x}}\ln adx$
特例: $({{{e}}^{x}}{)}'={{{e}}^{x}}$ $d({{{e}}^{x}})={{{e}}^{x}}dx$

(4) ${y}'=\frac{1}{x\ln a}$
(4) $y={{\log }_{a}}x$ ${y}'=\frac{1}{x\ln a}$

$dy=\frac{1}{x\ln a}dx$
特例:$y=\ln x$ $(\ln x{)}'=\frac{1}{x}$ $d(\ln x)=\frac{1}{x}dx$
Expand Down
10 changes: 5 additions & 5 deletions markdown/week7.md
Expand Up @@ -79,17 +79,17 @@

这是我的支持向量机模型的代价函数,在左边这里我画出了关于$z$的代价函数${\cos}t_1{(z)}$,此函数用于正样本,而在右边这里我画出了关于$z$的代价函数${\cos}t_0{(z)}$,横轴表示$z$,现在让我们考虑一下,最小化这些代价函数的必要条件是什么。如果你有一个正样本,$y=1$,则只有在$z>=1$时,代价函数${\cos}t_1{(z)}$才等于0。

换句话说,如果你有一个正样本,我们会希望$\theta^Tx>=1$,反之,如果$y=0$,我们观察一下,函数${\cos}t_0{(z)}$,它只有在$z<=1$的区间里函数值为0。这是支持向量机的一个有趣性质。事实上,如果你有一个正样本$y=1$,则其实我们仅仅要求$\theta^Tx$大于等于0,就能将该样本恰当分出,这是因为如果$\theta^Tx$\>0大的话,我们的模型代价函数值为0,类似地,如果你有一个负样本,则仅需要$\theta^Tx$\<=0就会将负例正确分离,但是,支持向量机的要求更高,不仅仅要能正确分开输入的样本,即不仅仅要求$\theta^Tx$\>0,我们需要的是比0值大很多,比如大于等于1,我也想这个比0小很多,比如我希望它小于等于-1,这就相当于在支持向量机中嵌入了一个额外的安全因子,或者说安全的间距因子。
换句话说,如果你有一个正样本,我们会希望$\theta^Tx>=1$,反之,如果$y=0$,我们观察一下,函数${\cos}t_0{(z)}$,它只有在$z<=-1$的区间里函数值为0。这是支持向量机的一个有趣性质。事实上,如果你有一个正样本$y=1$,则其实我们仅仅要求$\theta^Tx$大于等于0,就能将该样本恰当分出,这是因为如果$\theta^Tx$\>0大的话,我们的模型代价函数值为0,类似地,如果你有一个负样本,则仅需要$\theta^Tx$\<=0就会将负例正确分离,但是,支持向量机的要求更高,不仅仅要能正确分开输入的样本,即不仅仅要求$\theta^Tx$\>0,我们需要的是比0值大很多,比如大于等于1,我也想这个比0小很多,比如我希望它小于等于-1,这就相当于在支持向量机中嵌入了一个额外的安全因子,或者说安全的间距因子。

当然,逻辑回归做了类似的事情。但是让我们看一下,在支持向量机中,这个因子会导致什么结果。具体而言,我接下来会考虑一个特例。我们将这个常数$C$设置成一个非常大的值。比如我们假设$C$的值为100000或者其它非常大的数,然后来观察支持向量机会给出什么结果?

![](../images/12ebd5973230e8fdf279ae09e187f437.png)

如果 $C$非常大,则最小化代价函数的时候,我们将会很希望找到一个使第一项为0的最优解。因此,让我们尝试在代价项的第一项为0的情形下理解该优化问题。比如我们可以把$C$设置成了非常大的常数,这将给我们一些关于支持向量机模型的直观感受。

$$\min_\limits{\theta}C\sum_\limits{i=1}^{m}\left[y^{(i)}{\cos}t_{1}\left(\theta^{T}x^{(i)}\right)+\left(1-y^{(i)}\right){\cos}t\left(\theta^{T}x^{(i)}\right)\right]+\frac{1}{2}\sum_\limits{i=1}^{n}\theta^{2}_{j}$$
$\min_\limits{\theta}C\sum_\limits{i=1}^{m}\left[y^{(i)}{\cos}t_{1}\left(\theta^{T}x^{(i)}\right)+\left(1-y^{(i)}\right){\cos}t\left(\theta^{T}x^{(i)}\right)\right]+\frac{1}{2}\sum_\limits{i=1}^{n}\theta^{2}_{j}$

我们已经看到输入一个训练样本标签为$y=1$,你想令第一项为0,你需要做的是找到一个${{\theta }}$,使得$\theta^Tx>=1$,类似地,对于一个训练样本,标签为$y=0$,为了使${\cos}t_0{(z)}$ 函数的值为0,我们需要$\theta^Tx<=-1$。因此,现在考虑我们的优化问题。选择参数,使得第一项等于0,就会导致下面的优化问题,因为我们将选择参数使第一项为0,因此这个函数的第一项为0,因此是$C$乘以0加上二分之一乘以第二项。这里第一项是$C$乘以0,因此可以将其删去,因为我知道它是0。
我们已经看到输入一个训练样本标签为$y=1$,你想令第一项为0,你需要做的是找到一个${{\theta }}$,使得$\theta^Tx>=1$,类似地,对于一个训练样本,标签为$y=0$,为了使${\cos}t_0{(z)}$ 函数的值为0,我们需要$\theta^Tx<=-1$。因此,现在考虑我们的优化问题。选择参数,使得第一项等于0,就会导致下面的优化问题,因为我们将选择参数使第一项为0,因此这个函数的第一项为0,因此是$C$乘以0加上二分之一乘以第二项。这里第一项是$C$乘以0,因此可以将其删去,因为我知道它是0。

这将遵从以下的约束:$\theta^Tx^{(i)}>=1$,如果 $y^{(i)}$是等于1 的,$\theta^Tx^{(i)}<=-1$,如果样本$i$是一个负样本,这样当你求解这个优化问题的时候,当你最小化这个关于变量${{\theta }}$的函数的时候,你会得到一个非常有趣的决策边界。

Expand Down Expand Up @@ -210,10 +210,10 @@ $C$ 较小时,相当于$\lambda$较大,可能会导致低拟合,高偏差

为了获得上图所示的判定边界,我们的模型可能是${{\theta }_{0}}+{{\theta }_{1}}{{x}_{1}}+{{\theta }_{2}}{{x}_{2}}+{{\theta }_{3}}{{x}_{1}}{{x}_{2}}+{{\theta }_{4}}x_{1}^{2}+{{\theta }_{5}}x_{2}^{2}+\cdots $的形式。

我们可以用一系列的新的特征f来替换模型中的每一项。例如令:
我们可以用一系列的新的特征$f$来替换模型中的每一项。例如令:
${{f}_{1}}={{x}_{1}},{{f}_{2}}={{x}_{2}},{{f}_{3}}={{x}_{1}}{{x}_{2}},{{f}_{4}}=x_{1}^{2},{{f}_{5}}=x_{2}^{2}$

...得到$h_θ(x)=f_1+f_2+...+f_n$。然而,除了对原有的特征进行组合以外,有没有更好的方法来构造$f_1,f_2,f_3$?我们可以利用核函数来计算出新的特征。
...得到$h_θ(x)={{\theta }_{1}}f_1+{{\theta }_{2}}f_2+...+{{\theta }_{n}}f_n$。然而,除了对原有的特征进行组合以外,有没有更好的方法来构造$f_1,f_2,f_3$?我们可以利用核函数来计算出新的特征。

给定一个训练样本$x$,我们利用$x$的各个特征与我们预先选定的**地标**(**landmarks**)$l^{(1)},l^{(2)},l^{(3)}$的近似程度来选取新的特征$f_1,f_2,f_3$。

Expand Down
Binary file not shown.

0 comments on commit e97333b

Please sign in to comment.