首页 > 其他分享 >机器学习笔记(2): Logistic 回归

机器学习笔记(2): Logistic 回归

时间:2024-06-07 18:11:09浏览次数:21  
标签:frac bmatrix hat sigma 笔记 vec Logistic 机器 omega

Logistic 回归是线性回归中一个很重要的部分。

Logistic 函数:

\[\sigma(x) = \frac {L} {1 + \exp(-k(x - x_0))} \]

其中:

  • \(L\) 表示最大值
  • \(x_0\) 表示对称中心
  • \(k\) 表示倾斜度

一般来说,都将 \(L\) 设为 \(1\),而 \(k\) 和 \(x_0\) 在参数中控制。


认为特征只有一个,那么自然:

\[p(y = 1 | x) = \sigma(\omega_0 + \omega_1 x) = \frac 1 {1 + \exp(\omega_0 + \omega_1 x)} \]

认为 \(\vec x\) 是特征向量,并且是增广向量,也就是:

\[\vec x = \begin{bmatrix} x_0 & x_1 & \ldots & x_c & 1 \end{bmatrix} \]

认为参数向量也是增广的:

\[\omega = \begin{bmatrix} \omega_0 \\ \omega_1 \\ \vdots \\ \omega_c \\ 1 \end{bmatrix} \]

那么:

\[p(y = 1 | \vec x) = \sigma(\vec x \omega) = \frac 1 { 1 + \exp(\vec x \omega)} \]

对于多组数据,\(X = \begin{bmatrix} \vec x_0 \\ \vec x_1 \\ \ldots \\ \vec x_m \end{bmatrix}\):

\[p(\vec y = 1 | X) = \sigma(X \omega) \]

注意最终得到是一个向量,\(\sigma\) 函数作用于向量中的每个单独的元素。


利用交叉熵作为损失函数:

\[R(\omega) = - \frac 1 m \sum_{n = 1}^m \left(y_n \log \hat y_n + \left(1 - y_n \right)\log \left(1 - \hat y _n \right) \right) \]

其中 \(\hat y\) 表示预测分类,而 \(y\) 表示实际分类。

由于 \(\sigma'(x) = \sigma(x)(1 - \sigma(x))\),自然的可以推出其偏导数:

\[ \begin{aligned} \frac \delta {\delta \omega} R(\omega) &= - \frac 1m \sum \left( y_n \frac {\hat y_n (1 - \hat y_n)}{\hat y_n} x_n + (1 - y_n) \frac {- \hat y_n (1 - \hat y_n)}{1 - \hat y_n} x_n \right) \\ &= - \frac 1m \sum \left( y_n - \hat y_n \right) x_n \\ \end{aligned} \]

写成向量形式也就是:

\[- \frac 1 m (\hat y - y) \cdot x \]

于是利用梯度下降算法:

\[\omega = \omega - \frac \alpha m X {\Large (}\sigma(X \omega) - y{\Large )} \]

代码和梯度下降函数十分相似。


Feature Mapping

合理的利用线性回归可以解决很多复杂的问题。

大概率我们需要一个类似于圆的东西才可以拟合。

考虑到在高中我们学过:

\[C: Ax^2 + B y^2 + C x + D y + F =0 \]

可以表示一个圆,那么我们就可以利用重映射:

\[(x, y) \to \begin{bmatrix} 1 & x & y & xy & x^2 & y^2 \end{bmatrix} \]

的方式将特征向量进行一点点简单的变换,那么自然就变成了对于多个参数的线性回归问题,一种可能的拟合是:

当然,我们也可以更复杂的利用这些参数,例如 \(x^3\),\(\sqrt x\),\(\frac 1 x\) 之类的参数,这取决于我们想要如何去拟合。


正则化参数

和平方损失函数的正则化方式一模一样,见 机器学习笔记(1): 梯度下降算法


Softmax Regression

其实就是多分类的 Logistic 回归:

\[p(y = c | \vec x) = {\rm softmax}(\vec x W) = \frac {\exp(\vec x W_c)}{\sum_{k = 1}^C \exp(\vec W_k)} \]

其中 \(C\) 表示分类数,而 \(W = \begin{bmatrix} \omega_1 & \omega_2 & \ldots & \omega_C \end{bmatrix}\),其中 \(\omega_i\) 就表示某一个 Logistic 函数的参数。

由于其实就是多个 Logistic 函数,所以其偏导数和参数学习过程非常相似:

\[W = W - \frac \alpha m X \left( \sigma(X W) - Y \right) \]

值得注意的是,对于每一个 \(\omega_i\) 减去同一个 \(\theta\) 结果不会改变,意味着一般都需要正则化。

标签:frac,bmatrix,hat,sigma,笔记,vec,Logistic,机器,omega
From: https://www.cnblogs.com/jeefy/p/18237693

相关文章

  • 机器学习策略篇:详解进行误差分析(Carrying out error analysis)
    从一个例子开始讲吧。假设正在调试猫分类器,然后取得了90%准确率,相当于10%错误,,开发集上做到这样,这离希望的目标还有很远。也许的队员看了一下算法分类出错的例子,注意到算法将一些狗分类为猫,看看这两只狗,它们看起来是有点像猫,至少乍一看是。所以也许的队友给一个建议,如何针对狗的......
  • 机器学习-聚类算法
    1.有监督学习与无监督学习有监督:在训练集中给的数据中有X和Y,根据这些数据训练出一组参数对预测集进行预测无监督:在训练集中给的数据只有X没有Y,根据X数据找相似度参数来对预测集进行预测2.数据间的相似度2.1距离相似度:每一条数据可以理解为一个n维空间中的点,可以根据点点之......
  • 机器学习-支持向量机
    目录一支持向量机1.支持向量机SVM2构建svm目标函数3.拉格朗日乘法,kkt条件拉格朗日乘法:kkt条件 对偶问题 4.最小化SVM目标函数kkt条件: 对偶转换: 5软间隔及优化优化svm目标函数 构造拉格朗日函数对偶转换关系:求解结果:总结:都看到这里了点个赞吧! 一支持......
  • [设计模式 1] 设计模式笔记(大话设计模式总结)
    设计模式总结(java版1)1.简单工厂模式需求:设计一个计算器,有一个抽象的运算类,他里边有两个数字属性和一个getResult()抽象方法,这个类被四个加减乘除的具体的算法类继承,然后有一个简单工厂类,这个简称工厂类是用来生成一个具体的运算类的,然后就在简单工厂类里有一个逻辑的判......
  • Visual Instruction Tuning论文阅读笔记
    Motivation&AbsMotivation:之前基于LLM的通用助手仅能处理文本。数据:使用纯语言的GPT4生成多模态语言-图像指令数据。模型:基于生成数据端到端训练的模型LLaVA,用于通用视觉语言理解。指标:两个benchmark。GPT-assistedVisualInstructionDataGeneration现有的多模态指令数......
  • 点分治 学习笔记
    引入在点分治的过程中,它的遍历顺序会遍历每棵子树的重心,而这棵由重心生成的树会产生一棵新的树,便是点分树。常用来解决树上与树的形态无关的路径问题。过程如下图,它的点分树是它自己。因此可以看出一棵树的点分树可能是它本身。性质因为点分树\(\mathcal{O}(\logn)\)......
  • 不凡学院笔记
    Vue前端性能难题Vue前端性能问题通常涉及到如何优化组件渲染性能,减少不必要的DOM更新,以及处理大量数据的渲染和滚动性能。以下是一些常见的Vue前端性能问题及其解决方案:避免在v-for循环中使用key,除非你明确知道元素的交互方式。解决方案:使用唯一且稳定的ID作为key。避免在模板......
  • 得帆云学习笔记
    数仓规划数仓规划是开发人员对业务的解析、分类和提炼的过程。数仓开发人员需要根据对整体业务的理解来划分出不同业务领域、业务领域下对应的数据域、以及数据域下的业务过程。根据业务的类型或其他特征来划分业务领域。根据该业务下再细分出的类别来划分数据域。根据业务中......
  • 推荐系统三十六式学习笔记:原理篇.内容推荐07|人以群分,你是什么人就看到什么世界
    目录协同过滤基于用户的协同过滤背后的思想原理实践1、构造矩阵2、相似度计算3、推荐计算4、一些改进应用场景:总结谈及推荐系统,不得不说大名鼎鼎的协同过滤。协同过滤的重点在于协同,所谓协同,也就是群体互帮互助,互相支持是群体智慧的体现,协同过滤也是这般简单直接,历......
  • 在虚拟机上搭建 Docker Kafka 宿主机器程序无法访问解决方法
    1、问题描述在虚拟机CentOS-7上搭建的DockerKafka,docker内部可以创建Topic、可以生产者数据、可以消费数据,而在宿主机开发程序无法消费Docker Kafka的数据。1.1、运行情况[docker@localhost~]$dockerps-aCONTAINERIDIMAGECOMMAND......