首页 > 其他分享 >吴恩达机器学习复习3:分类、假设的表示方法、决策边界、损失函数、简化的损失函数和梯度下降、梯度下降、高等优化、多级分类

吴恩达机器学习复习3:分类、假设的表示方法、决策边界、损失函数、简化的损失函数和梯度下降、梯度下降、高等优化、多级分类

时间:2022-10-10 11:23:24浏览次数:49  
标签:函数 梯度 回归 分类 正则 拟合 theta

【分类】

 

 

 ①两类或二分类问题:输出值为0或1

②多分类问题:比如y可能有4个值,0、1、2、3

 

 有关肿瘤的分类问题

 

 如果使用线性回归处理分类问题?

 

 

 

 为了尝试分类,方法是使用线性回归并且把大于0.5的映射为1,小于0.5的映射为0

然而这种方法并不能正常工作,因为分类不是一个线性函数

【假设的表示方法】

 Sigmoid函数又叫Logistic函数

为了解决这个问题,我们将改变假设的形式以满足

 

 从而实现把放进逻辑斯蒂函数

 

 

 

 对假设输出的解释

 

 概率上P(y=0|x;θ)+P(y=1|x;θ)=1

 

【决策边界】

逻辑回归

 

 决策边界

 

 

 非线性决策边界

 

 总结

 

 【损失函数】

 

 

 逻辑回归中,最小化损失函数这样子是有用的。但结果是,如果使用这个特殊的损失函数,将会有一个非凸优化函数的参数数据。

它正式的术语是非凸优化函数。

你应该能分辨,如果你在这种函数上使用梯度下降,将不能保证这会拟合到全局最小值。

然而相比之下,我们应该做的是有一个凸的损失函数的θ值,看起来像下面这样

 

 

所以如果θ可以得到保证,它就会收敛到全局最优解。

画一个J和h的对比图

 

 注意到以这种方式写函数功能可以保证J对于逻辑回归是凸的

【简化的损失函数和梯度下降】

 逻辑回归的代价函数如下

 

 梯度下降

 

把我们的损失函数的两种情况压缩至一种情况

 

 我们可以像下面一样写整个损失函数

 

 向量化的执行像下面这样

 

 【梯度下降】

 记住梯度下降的一般形式如下

 

 用微积分计算出导数部分得到

 

 这算法和我们在前面的线性回归里用到的是一样的,我们仍然必须同时更新theta里的所有值

执行向量化就像下面这个样子

 

 【高等优化】

优化算法

 

 

 例子

 

 共轭梯度法(Conjugate Gradient)(介于最速下降法与牛顿法之间的一个方法),BFGS法(BFGS method)(一种拟牛顿法,用BFGS矩阵作为拟牛顿法中的对称正定迭代矩阵的方法),和L-BFGS(由牛顿法发展而来,为了提高计算效率而提出的近似计算方法)是用于最小化theta的更复杂、更快的方法。

建议你自己不要写更复杂的算法(除非你是数值计算方面的专家!),而是使用现有的库,因为它们已经被测试和优化得很好了。

function [jVal, gradient] = costFunction(theta)
  jVal = [...code to compute J(theta)...];
  gradient = [...code to compute derivative of J(theta)...];
end
options = optimset('GradObj', 'on', 'MaxIter', 100);
initialTheta = zeros(2,1);
   [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

把我们的损失函数放进fminunc(),我们最初的向量和theta值以及选择我们之前创建的目标

【多级分类】

 

 

 

 y的定义不仅仅在{0,1},我们将其定义延伸到{0,1……n}

我们将把我们的问题分成n+1(因为索引从0开始)的二分零问题

我们预测的概率是 y是属于类的成员的哪一个

①选一类,然后把所有其他的放进单独的第二类

②重复这样做,在每个类运用二分逻辑回归

③使用假设返回最高价值的预测

 

过拟合的问题

 

 为了拟合训练集而训练过渡,所以难以泛化、拟合新的例子,也不能很好地预测新例子的价格

 

 左一【欠拟合】     中间【最优】      最右【过拟合】

What is Underfitting? | IBM Overfitting and underfitting

 

过拟合——数据很明显的展示结构没有被模型捕捉

过拟合或高偏差,是当假设的形式不能很好反映数据的趋势时产生的,常常是由于函数过于简单或使用了太多的特征

其他极端的、过拟合或高方差的情况,是由于很好拟合现有数据的假设函数,并没有很好的泛化特性能预测数据。这经常是由  会产生许多与数据无关的不必要的曲线和角度的、复杂的函数  产生的。

{如何处理过拟合现象?}

方法是同时运用线性和逻辑回归

 

 ①减少特征数目

-手动挑选需要保留的特征

-模型选择算法

②正则化

-保持所有数据,但减少theta的参数值或magnitude(重要性)

-有很多参数时工作得很好,这对预测y有很好的作用

损失函数

我们有的假设函数过拟合现象时,可以减少我们函数里某些项的权重,用来减小消耗

比如我们希望让相应的函数倾向于二次函数,那么我们就要削减的影响

如果没有实际摆脱这些特征或改变我们假设的形式,我们可以修改我们的损失函数

 

 我们已经添加了两个额外的项在式子末尾,以抬高的消耗

 

现在为了让损失函数更接近于0,我们将减少的值,让它们接近于0

这将大大减少在我们损失函数里的值

现在有新的假设(由粉色线描绘的)看起来就像一个二次函数,

 

 

但它由于额外的小项能更好地拟合数据。

正则化所有的theta参数以一种统一的方式如下

 

 λ是正则化参数,决定我们theta参数膨胀的代价有多少

使我们假设的输出函数平滑可以减小过拟合!

如果λ选择太大,将会使函数平滑太厉害然后造成欠拟合。

而如果λ太小,他就可能造成过拟合。

 

 !!!正则化的线性回归

 

 梯度下降

 

 给两边的线性回归和逻辑斯蒂回归添加正则化项

{线性回归}

 

 给你一个问题来判断大小~

 

 为啥呢?因为学习率比较小吗,第一项不能太大了!

【正规方程式】

处理正则化使用的对于非迭代正规方程的替代方法。

添加正则化项,等式和原来一样,处理我们在圆括号里加了另一个项

 

 我们应该有维度(n+1)*(n-1)

直觉上,这是相同的矩阵(尽管我们不包含X0),并用单独一个实数λ乘上去。

 

 

 

 所以这样的正则化居然让矩阵可逆了呢

{正则化逻辑回归}

 

 用我们拟合线性回归类似的方法对逻辑回归进行正则化→避免过拟合

 

 ↑最后的损失函数

 

 ↑最后的梯度下降

 

 使用正则化的逻辑回归

 

 

 高等最优化

 

标签:函数,梯度,回归,分类,正则,拟合,theta
From: https://www.cnblogs.com/asandstar/p/16774113.html

相关文章