吴恩达机器学习三——分类问题

吴恩达机器学习——分类问题

二元回归问题

y{0,1}y\in\{0,1\}

逻辑回归算法

  • 假设函数:hθ(x)=11+eθTxh_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}

  • Sigmoid函数:g(x)=11+exg(x)=\frac{1}{1+e^{-x}}

    Sigmoid函数图像

  • 函数结果解释:如果结果为p,则表示输入情况下y=1的概率是p

  • 结果分析:

    • hθ(x)0.5h_\theta(x)\geq 0.5时,认为y=1y=1hθ(x)0.5θTx0h_\theta(x)\geq 0.5\Leftrightarrow\theta^Tx\geq0
    • hθ(x)<0.5h_\theta(x)<0.5,认为y=0y=0hθ(x)<0.5θTx<0h_\theta(x)<0.5\Leftrightarrow\theta^Tx<0
    • 此时的θTx=0\theta^Tx=0确定的一系列点即构成此假设函数的决策边界,它将数据实例划分为两个部分
  • 补充

    • 此算法同样可以使用高阶特征等进行拟合

逻辑回归模型

  • 训练集:{(x1,y1),(x2,y2),,(xm,ym)}\{(x^1,y^1),(x^2,y^2),\dots,(x^m,y^m)\}

  • 假设函数:hθ(x)=11+eθTxh_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}x=[x0x1xn],θ=[θ0θ1θn],x0=1,y{0,1}x=\begin{bmatrix}x_0\\x_1\\\vdots\\x_n\end{bmatrix},\theta=\begin{bmatrix}\theta_0\\\theta_1\\\vdots\\\theta_n\end{bmatrix},x_0=1,y\in\{0,1\}

  • 代价函数:J(θ)=1mi=1mCost(hθ(xi),yi)=1mi=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]\begin{array}{ll}J(\theta)&=\frac{1}{m}\sum^m_{i=1}Cost(h_\theta(x^i),y^i)\\&=-\frac{1}{m}\sum^m_{i=1}[y^ilog(h_\theta(x^i))+(1-y^i)log(1-h_\theta(x^i))]\end{array}

    ​ \begin{array}{ll}Cost(h_\theta(x),y)&=\left\{\begin{align}-log(h_\theta(x))&&y=1\\-log(1-h_\theta(x))&& y=0\end{align}\right. \\&= -ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))\end{array}

  • 使用梯度下降算法求解最优值

    重复执行θj:=θjαi=1m(hθ(xi)yi)xji\theta_j:=\theta_j-\alpha\sum^m_{i=1}(h_\theta(x^i)-y^i)x^i_j,此式子和线性回归梯度下降相同,只有假设函数不同。

  • 此回归模型也可以使用特征缩放来提高收敛速度

一对多分类问题

假设有n个类,则一对n问题分为n个二元回归问题,分别使用逻辑回归模型求解。每一个子问题将一个类作为正类别,n-1个类作为负类别。由此每个类ii得到一个预测函数hθi(x)h^i_\theta(x),用于预测y=iy=i的概率。实际计算时,将输入xx代入每一个预测函数,选取概率最大的作为结果,maxi hθi(X)\mathop{max}\limits_{i}\space h^i_\theta(X)

one-vs-rest

高级优化方法

  • BFGS
  • L-BFGS
  • Conjugate gradient