Machine Learning-2

Machine Learning-2

第三周

分类问题

我们通常不用线性回归来解决分类问题
这是因为极端点往往对线性回归的拟合产生较大偏差
通常使用逻辑回归才解决分类问题
在分类问题中y通常取0/1代表两种不用的状态

假设函数表达式


根据概率论的相关知识 可以得到

决策边界

从图像中可以看出 当z≥0 即θTx≥0 y属于[0.5,1]取1 当θTx<0 y属于[0,0.5]取0
ex:

当普通的表达式无法满足分类问题的时候 我们可以通过增加高次多项式才使图像满足分类问题
例如加上θ0+θ1x1²+θ2x2²可使图像变为圆

代价方程的逻辑回归形式


图像如下

从图像中可以看出

简化代价方程&使用梯度下降算法实现逻辑回归

将y=0和y=1时的代价方程可简化如下:(并给出向量化的表达式)

当对J进行偏导操作后发现和线性回归的梯度下降算法完全一样:

不一样的是 线性回归的中h=XTθ 而逻辑回归中的h=1/1+e(-XTθ)
逻辑回归的J向量化如下:

高级优化算法

在高级优化算法中 我们需要求出代价方程J和代价方程J对θ的偏导数
所以我们可以在matlab中使用如下算法 可以快速求解θ J和J是否收敛
如下是定义的函数:

1
2
3
4
function [jVal, gradient] = costFunction(theta)
jVal = [...code to compute J(theta)...];
gradient = [...code to compute derivative of J(theta)...];
end

如下是在matlab中使用的代码:

1
2
3
options = optimset('GradObj', 'on', 'MaxIter', 100);
initialTheta = zeros(2,1);
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

例如,定义的函数可以如下:

1
2
3
4
5
6
function [jVal, gradient] = costFunction(theta)
jVal = (theta(1)-5)^2+(theta(2)-5)^2;
gradient = zeros(2,1);
gradient(1)=2*(theta(1)-5);
gradient(2)=2*(theta(2)-5);
end

那么在matlab中敲入对应的算法后 将会求出θ1=5 θ2=5 J=0 exitFlag=1
说明θ1和θ2等于5时 J=0为最小值 且收敛 验证此算法是正确的
备注
使用此算法需要注意 gradient的纬度d需要≥2 如果纬度是1 需要查询fminunc找出对应资料

一对多的分类问题



我们对这个分类问题使用如下算法:
每次选取一种类型的问题为1 所有其它类型就为0 这样就转换成了把两种类型的数据分开的子问题
如上图所以有三种分类的方法
在这三种分类方法中 选取一个hθ最大的分类方法作为分类标准即可

过度拟合问题

如果我们在使用假设函数中增加了过度的高次项 那么这个函数会过度的拟合这些点 甚至产生扭曲 从而破坏了一般性规律
一般在特征过多而我们又没有很多的训练集的时候 就会出现过度拟合的问题
为了坚决过度拟合的问题 有如下方法:
(1)尽量减少特征的数量 选取更多重要的特征
(2)使用模型选择算法 自动删去一些特征(之后会提到)
(3)正规化(之后会提到)

假设函数的过度拟合

下图给出对假设函数出现过度拟合的处理:

例如:

我们在多项式后加入1000θ3²+θ4² 根据最小化可得θ3和θ4趋近于0 所以图像就会避免过度拟合的问题

正则化解决线性回归

下图是梯度下降算法的正则化:

θ0和θi分别处理
展开后如下图所以:

对于θj前面的参数可以看作小于1又接近1 所以θj每次以一个很小的数量下降
下图是正规方程的正则化:

在正规方程中原本存在不可逆的问题 但是正则化后括号内的矩阵一定可逆 L的维数为n+1

正则化解决逻辑回归

下图是针对逻辑函数的代价方程的正则化:

下图是针对逻辑回归的梯度下降算法:

形式上与线性回归相同 但注意假设函数不同

第四周

神经网络模型一



在神经网络中 ai(j)表示对j层的第i个对象 θ(j)表示从j层到j+1层的所有权重(参数)
θj的维度等于s(j+1)×(sj+1) 例如θ1=s2×(s1+1)=3×4
计算公式如下:

神经网络模型二

这是上一节的公式:

我们把它变为如下形式:


变为向量形式:

对于z(j) a(j) hθ(x)有如下公式:



具体实例

可以实现逻辑上的异或 且 或等操作
例如 或运算的参数如下:

其余一些运算如下:

公式如下:

神经网络中的一对多

实际问题中的一对多:

若是四种识别 我们可输出y的结果定义如下:

文章目录
  1. 1. Machine Learning-2
    1. 1.1. 第三周
      1. 1.1.1. 分类问题
      2. 1.1.2. 假设函数表达式
      3. 1.1.3. 决策边界
      4. 1.1.4. 代价方程的逻辑回归形式
      5. 1.1.5. 简化代价方程&使用梯度下降算法实现逻辑回归
      6. 1.1.6. 高级优化算法
      7. 1.1.7. 一对多的分类问题
      8. 1.1.8. 过度拟合问题
      9. 1.1.9. 假设函数的过度拟合
      10. 1.1.10. 正则化解决线性回归
      11. 1.1.11. 正则化解决逻辑回归
    2. 1.2. 第四周
      1. 1.2.1. 神经网络模型一
      2. 1.2.2. 神经网络模型二
      3. 1.2.3. 具体实例
      4. 1.2.4. 神经网络中的一对多
|