分类问题
分类问题需要的输出即离散的函数值。
比如对于“是或否”的分类,可看作函数输出\(y=0,1\)。
对于\(h_\theta(x)\),要限制其值域范围到0~1。
假设陈述
sigmoid函数(logistic函数)
\[ g(z)=\frac{1}{1+e^{-z}} \]
值域\(g(z)\in(0,1)\)。
取假设函数为
\[ h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} \]
其意义可看作输入\(x\)时\(y=1\)的概率
\[ h_\theta(x)=P(y=1|x;\theta) \]
决策界限(判定边界)
我们想要的是判断\(y\)属于正类(大于零)还是负类,
那么显然,\(h_\theta(x)\ge0.5\)的为正类,反之亦然。
即取\(h_\theta(x)=g(z)=0.5\)时为边界。
根据不同的情况,建立不同的模型,
设置不同的假设函数,有不同的边界。
线性边界
\[ \begin{aligned} &h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2) \\ &\theta=\left[\begin{matrix}-3 \\ 1 \\ 1 \\\end{matrix}\right] \\ &y=1\quad if\quad\theta^Tx>0 \\ \end{aligned} \]
非线性边界
逻辑回归是非线性回归。
代价函数
注意,现在的\(h\)为
\(h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}\)
之前那样的\(J\)不能用了。
代价函数
\[ Cost\left(h_\theta(x),y\right)= \left\{ \begin{array} -\ln\left(h_\theta(x)\right), & if\ y=1 \\ -\ln\left(1-h_\theta(x)\right), & if\ y=0 \\ \end{array} \right. \]
由于\(y\)只能为1或0
\[ \begin{aligned} &\Rightarrow \\ &Cost\left(h_\theta(x),y\right)=-y\ln\left(h_\theta(x)\right)-(1-y)\ln\left(1-h_\theta(x)\right) \\ &J(\theta)=\frac{1}{m}\sum_{i=1}^{m}{Cost\left(h_\theta\left(x^{(i)}\right),y^{(i)}\right)} \end{aligned} \]
梯度下降法
老样子
repeat{
\(\theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)\)
}
主要是求导
(发现求了之后形式和原来的基本一样,
cost应该是故意构造成这样的)
\(\Rightarrow\) repeat{ \(\theta_j=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}{\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)x_j^{(i)}}\)
}
高级优化方法
共轭梯度法、BFGS、L-BFGS……
略。
多元分类:一对多
要分成大于两个的类型。
多次二分类就行。
过拟合问题
不是模型越复杂越好,
可能代价函数很小,但没法应用到新的值。
如何解决过拟合问题。方法:
1、减少特征数量
手动/自动选择
2、正则化
保留所有特征,但减少参数\(\theta_j\)的幅度
代价函数
设置惩罚因子(正则化项)
\[ J\left(\theta\right)=\frac{1}{2m}\left[\sum_{i=1}^{m}\left(h_\theta\left(x^{\left(i\right)}\right)-y^{\left(i\right)}\right)^2+\lambda\sum_{j=1}^{n}\theta_j^2\right] \]
注意正则化项里\(\theta_0\)不要放进去
正则化项: 不是特定的\(\theta_j\)最小,而是整体\(\theta_j\)的平方和最小。
超参数的问题
如果\(\lambda\)太大,可能会使得除了\(\theta_0\)的\(\theta_j\)全被消掉。
线性回归正则化
梯度下降法
\(J\left(\theta\right)\Rightarrow\)
repeat {
\(\theta_j=\theta_j−\left[\alpha\frac{1}{m}\sum_{i=1}^{m}\left(h_\theta\left(x^{\left(i\right)}\right)x_j^{\left(i\right)}\right)+\frac{\lambda}{m}\theta_j\right]\)
即
\(\theta_j=\theta_j\left(1-\alpha\frac{\lambda}{m}\right)−α\frac{1}{m}\sum_{i=1}^{m}{\left(h_\theta\left(x^{\left(i\right)}\right)-y^{\left(i\right)}\right)x_j^{\left(i\right)}}\)
(\(j\neq0\),对于\(j=0\),不用\(\lambda\)那一项) }
正规方程法
\[ \begin{aligned} &X\theta=y \\ &\Rightarrow \\ &\theta=\left(X^TX+\lambda\left[\begin{matrix}0&&&\\&1&&\\&&\ddots&\\&&&1\\&&&\\\end{matrix}\right]\right)^{-1}X^Ty \\ \end{aligned} \]
(可能要学一下矩阵导数来证明)
对于上式中括号里的项,
只要\(\lambda>0\),一定为非奇异矩阵(逆矩阵存在)。
逻辑回归正则化
同上,略。