机器学习|逻辑回归|吴恩达学习笔记 | 牛顿法
创始人
2025-05-31 05:23:11
0

前文回顾:多变量线性回归


分类问题举例:

  • 判断一封电子邮件是否是垃圾文件
  • 判断一次金融交易是否是欺诈
  • 区分肿瘤是恶性的还是良性的

在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误),即我们要预测的变量y是离散的值,这里要用到的是逻辑回归算法。它的性质是:它的输出值永远在0到1之间。

📚假说表示

对于以下的乳腺癌分类问题,我们可以用线性回归的方法求出适合数据的一条直线:

6ac0588f82b04dd9a104585364a74f3d.jpg

根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出0或1,我们可以预测:

  • 当h(x) ≥ 0.5时,预测y = 1
  • 当h(x) ≤ 0.5时,预测y = 0

d93ae5f2d6e24c1ea2cfcfee9efd07a0.jpg

对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。但假使我们又观测到了一个非常大的尺寸的恶性肿瘤,将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。

6605bfd5c9ff484394f6261077cf41ae.jpg

这时,再使用0.5作为阈值来预测肿瘤是良性还是恶性就不合适了(会有恶性肿瘤被误认为是良性肿瘤)。


我们引入一个新的模型,逻辑回归该模型的输出变量范围始终在0和1之间

e0cd4c9159a844b5857b7020f1fefc92.jpg

借助于Sigmoid function,预测函数被很好地限制在[0,1]之间。

  • 当 z 趋向于 +∞ 时,g(z)趋向于1
  • 当 z 趋向于 -∞ 时,g(z)趋向于0
  • 3ce3d060133145909df3305b82450c07.png

我们假设的输出,实际上就是这个概率值:p(y = 1 | x ; θ),就是关于x以θ为参数,y = 1的概率。

  • gif.latex?h_%5CTheta%20%28x%29%20%3D%20P%28y%3D1%7Cx%3B%5CTheta%29%3D1-P%28y%3D0%7Cx%3B%5CTheta%29

 📚判定边界

判定边界,就是用来划定界限的边界。

25f75a982792493885d8daf305fdcd7e.jpg

  📚代价函数

ccc5c09c05424bcebc7d3086ec62b25d.jpg

 1974069d9d7f4dca8e25bbbfc524cf45.jpg

📚简化的成本函数和梯度下降

f0487281c3c2495da0cbe59e38142356.jpg

根据这个代价函数,为了拟合参数,我们要试图找尽量让J(θ)取得最小值的参数θ(这一点和线性回归是一样的,就是找代价最少的对应情况)。针对所给出的一个新的样本,假如某个特征x,我们可以用拟合训练样本的参数θ,来输出对假设的预测。


我们假设的输出,实际上就是这个概率值:p(y = 1 | x ; θ),就是关于x以θ为参数,y = 1的概率。可以说,我们的假设就是估计y = 1的概率。


最小化代价函数的方法,在这里还是用梯度下降法。

93a8bead63fa41dbb34cb18afca65bcf.png

模式上看,这个更新规则和我们之前用在线性回归上的是一样的。但因为线性回归的h(θ)和逻辑回归的h(θ)不同,所以它们的梯度下降,实际上是完全不同的。


当使用梯度下降法来实现逻辑回归时,我们有这些不同的参数θ,我们需要用这个表达式来更新这些参数。理想情况下使用向量化来实现,可以把所有这些n个参数同时更新。除此之外,特征缩放同样也适合于逻辑回归。

📚高级优化

  • 共轭梯度(Conjugate Gradient)
  • 局部优化法(Broyden fletcher goldfarb shann,BFGS)
  • 有限内存局部优化法(LBFGS)

对于6.6中提到的优化算法,我们通常不需要手动选择学习率a,对于这些算法的思路是,给出计算导数项和代价函数的方法。可以认为算法有一个智能的内部循环(事实上确实有一个智能的内部循环,称为线性搜索,它可以自己尝试不同的学习速率a,并自动选择一个好的学习速率a,甚至可以为每次迭代选择不同的学习速率,总之就是不需要我们来选择)。这些算法实际上在做更复杂的事情,它们往往最终收敛得远远快于梯度下降

建议使用函数库fminunc

📚多类别分类:一对多

eb544db472094e0ba3f3a9a7022e74d0.png

总得来说,就是把一个多分类问题转化成多次二分类问题。在二分类中,我们把数据集分为正类和负类,在一对多问题中就是依次把某一类看作正类把其他的看作是负类,分别求出对应的h(θ),最后针对新数据x的预测,分别代入对应的h(θ),取其中的最大值

e58db923aaae442eaf8206352c8f18ac.png

9e9bcec69e71451c8337f3b415048017.png


 以上参考学习链接:【中英字幕】吴恩达机器学习系列课程,本篇对应6.1-6.7


📚拓展补充

🐇最大似然估计拟合参数

32f54c7738c24c92867d1e68e37398bc.jpg

🐇梯度下降公式推导

fdb6d1f77e9044e9ab8179ab7e15b2dc.jpg

🐇牛顿法

梯度下降是用梯度来建立迭代关系式的方法,而牛顿法是用切线来建立迭代关系式的算法。牛顿法的迭代过程与梯度下降有相似之处,只不过用切线和x轴的交点来作为下一轮迭代的起点。dd0cca4997da423a9d0957c4243ed789.jpg

牛顿法有两个应用方向:求解方程根的问题目标函数最优化求解问题牛顿法的本质是泰勒展开。

4f09b3f8e0b14c45aed5377578bf7dd9.jpg


牛顿法的精髓就是二阶收敛,不仅利用了损失函数的一阶偏导数,也用到了损失函数的二阶偏导数,即梯度变化的趋势,因此比梯度下降法更快地确定合适的搜索方向,具有二阶收敛速度。通俗点来说,梯度下降法时选择下一步能迈出的最大步长,而牛顿法是在选择下一步能迈出的最大步长的基础上,同时也考虑了下下步的选择方向。也就是牛顿法更加具有大局观

14d6400b1250409381b06ec53bfc9bad.jpg


参考博客

牛顿法及其几何意义理解

机器学习——牛顿法详解

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...