• 机器学习第八次课


    前言

    开课了,今天会讲点什么呢,先看看

    首先是机器学习的三步走,第一步是确定函数,第二步是损失函数,第三步就是训练,对应到线性回归,就是确定函数,然后就是MSE,第三步是梯度下降法,先问了个问题.

    然后问了一个梯度下降的问题,梯度下降是一个用于优化目标函数的算法,常用于机器学习和人工智能中的模型训练。梯度在这里可被理解为导数或者偏导数,它指向了函数值下降最快的方向。在机器学习中,我们经常需要最小化损失函数,而梯度下降就是一种有效的方法。 梯度下降的基本步骤是: 1. 首先,选取一个随机的点(也就是参数),作为开始。 2. 然后,计算此点的梯度,也就是目标函数的导数。 3. 接着,沿着梯度的负方向,也就是函数值下降最快的方向,移动一小步,得到新的点。 4. 重复步骤2和3,直到梯度为0(也就是找到了局部最小值),或者满足其他结束条件(例如,达到预设的迭代次数、梯度变化很小等)。 这是最基本的批量梯度下降法。此外,还有一些变种,例如随机梯度下降(SGD)和小批量梯度下降,它们在更新参数时,不是使用全部的数据,而是采样一部分数据或者一条数据来计算梯度,可以提高计算效率。 需要注意的是,梯度下降法并不能确保找到全局最优解,只能找到局部最优解,因为梯度下降法是一种基于局部信息进行优化的方法,它并不能看到全局的情况。所以初始点的选取或者学习率的设定都可能影响到最后找到的结果。

    正文

    逻辑斯蒂回归做的是分类任务为什么名字里却有回归

    虽然名字中包含“回归”,逻辑斯蒂回归实际上被用于分类任务,这在初次接触时确实可能会引起混淆。这是因为逻辑斯蒂回归的历史和其方法的数学性质。 首先,了解下"回归"这个统计术语的由来有助于理解。"回归"一词最早由英国统计学家Francis Galton在19世纪末提出,他在研究父母身高与孩子身高之间的关系时,发现孩子的平均身高总是“倾向于回归”向平均身高,因此他提出了这个术语。 而在底层的数学模型上,逻辑斯蒂回归是基于线性回归的。逻辑斯蒂回归使用的是对数几率函数(logit function),也就是一种线性回归模型,只是这个函数能将预测值限制在0和1之间,适用于二元或多元分类任务。因此,尽管在应用上,我们用逻辑斯蒂回归做分类,但在模型设定上,它实际上是一种回归模型。 所以,尽管在实际操作中,我们把逻辑斯蒂回归用于分类任务,但是从历史和数学角度看,将其称为"回归"是有一定道理的。

    在逻辑回归的时候不能用均方误差,而是要用极大似然估计,那么什么是极大似然估计?

    极大似然估计

    极大似然估计(Maximum Likelihood Estimation,MLE)是一种用于估计统计模型参数的常用方法。 这种方法的基本思想是:在所有可能的参数值中,选取能使得已知样本数据出现的可能性(即,似然)最大的参数值作为模型参数的估计值。 简单地说,就是找到一组参数,让我们观察到的数据在这个模型下发生的概率尽可能大。 极大似然估计的基本步骤如下: 1. 建立似然函数:这就是数据的概率分布函数,但是参数是未知的。对于给定的样本观测结果,把这个概率函数看作是参数的函数,我们就称之为似然函数。 2. 对似然函数求导,并令其为0:这样可以得到极值。在实际计算中,我们通常对似然函数取对数,并求解对数似然函数的最大值,这样可以简化计算。 3. 解出参数值:这就是MLE的参数估计值。 在逻辑回归中,采用极大似然估计法来找出最优的模型参数。这是因为分类任务的预测值是离散的(如0或1),这种离散值和连续值之间的差异会使均方误差损失函数在某些地方不可导,因此,不能使用梯度下降等优化方法。而似然函数则没有这个问题。

    极大似然估计和交叉熵都是判断模型预测准确性的度量方式,二者在很多情境下存在密切的关系。 在深度学习中,逻辑回归模型常常使用交叉熵损失函数。其实,当我们使用交叉熵损失函数进行优化的时候,就相当于在进行极大似然估计。下面我来解释一下这两者的关系。 在二元分类问题中,我们可以将标签设置为0和1。对于单个样本的预测结果,如果使用极大似然估计,其似然函数可以表示为: L = y * log(p) + (1 - y) * log(1 - p) 其中,y是真实标签,p是模型预测为正样本(y=1)的概率。我们的目标是找到最大化似然函数的参数。在实际应用中,通常对似然函数取负对数并求最小值,这样更容易计算。因此,目标函数变为: -log(L) = -y * log(p) - (1 - y) * log(1 - p) 这就是我们常说的二元交叉熵损失函数。 因此,我们可以看到,极大似然估计和交叉熵损失其实在数学上是一致的,只不过是优化的角度不同:一个是最大化似然函数,一个是最小化损失函数。所以,在逻辑回归模型中,优化交叉熵损失函数其实就是在进行参数的极大似然估计。

    单独一个逻辑回归做不了太多,但是多个连载一起就形成一个很大的网络了

    KNN

    k-近邻算法(K-Nearest Neighbors,简称KNN)。 KNN是一种监督学习算法,用于分类和回归问题。其工作原理非常简单:基于训练数据集对新数据进行预测。预测的方式就是找出新数据在训练数据集中的最近邻居,然后根据这些邻居的标签来预测新数据的标签。 举个例子,假设你有一个数据集,其中每个数据都标注了是否喜欢看电影。现在,你有一个新的数据(一个人),你想预测这个人是否喜欢看电影。在KNN中,你会寻找数据集中最接近这个新数据的k(最好是奇数)个数据,然后查看这些数据中有多少个数据喜欢看电影。如果大多数都喜欢,那么你就预测这个人也喜欢看电影;否则,你就预测他不喜欢。 KNN算法的主要优点是简单易懂,容易实现。但此算法也有一些缺点,比如计算成本高(需要计算新数据与所有训练数据的距离),且对于特征数量多或者训练样本数量大的数据不太适用,也可能受到未标记样本的噪声干扰。 总的来说,KNN算法在处理一些简单问题上是一个非常好用的工具。

  • 相关阅读:
    Linux 进程的出生
    CPU组成结构
    一篇文章讲清楚!数据库和数据仓库到底有什么区别和联系?
    王道并查集代码
    LeetCode 第12题:整数转罗马数字(Python3解法)
    pyenv管理python版本
    vue2导航守卫
    Qt+GDAL开发笔记(二):在windows系统msvc207x64编译GDAL库、搭建开发环境和基础Demo
    《数据结构》——时间和空间复杂度
    使用Qt创建一个空的项目
  • 原文地址:https://blog.csdn.net/m0_73872315/article/details/138167177