机器学习—Logistic回归算法

目录

    • 一、基本概念
    • 二、决策边界
    • 三、损失函数
    • 四、交叉熵(CrossEntropy)损失函数
      • 1、二分类问题的交叉熵损失函数
      • 2、多分类问题的交叉熵损失函数
      • 3、交叉熵损失函数的特点
      • 4、交叉熵损失函数的应用
    • 五、模型参数求解
    • 六、Logistic函数的应用及优缺点
      • 1、应用场景
      • 2、优点
      • 3、缺点

一、基本概念

逻辑回归(Logistic Regression)是一种广泛使用的统计方法,用于预测一个二分类结果发生的概率。尽管它被称为“回归”,但它实际上是用于分类问题的。逻辑回归的核心是使用逻辑函数(也称为sigmoid函数)来模拟因变量与自变量之间的关系。

Logistic回归算法用的是Logistic函数,该函数定义如下:
y = 1 1 + e − x y = \frac{1}{1+e^{-x}} y=1+ex1
其函数图像如下:
在这里插入图片描述
当自变量的值是0是,它的值为0.5,当自变量的值趋于 − ∞ -\infty ,函数的值趋近于0。当自变量的值趋近于 ∞ \infty 时,函数的值就趋近于1。

由于Logistic函数图像的形状类似于“S”,所以它又被成为Sigmoid函数。

    

二、决策边界

Logistic回归算法中,我们需要解决的基本问题是,寻找一条"决策边界",将样本点进行分开。

所谓决策边界,它在二维空间空间中是一条线,在三维空间中是一个面,在更高维的空间中是一个超平面。用于将样本点进行区分,它是分类问题中分类决策的依据。

如果二维空间中的样本点存在一条直线的决策边界;三维空间中的样本点存在一个平面的决策边界:更高维空间中的样本点存在一个超平面的决策边界,则我们称这些样本点是线性可分的。

对于二维空间中线性可分问题,其函数如下:
f ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n = θ T X f(x) = \theta_0 + \theta_1x_1 + \theta_2x_2 + ...+ \theta_nx_n = \theta^T X f(x)=θ0+θ1x1+θ2x2+...+θnxn=θTX

g ( x ) = 1 1 + e − x g(x)= \frac{1}{1+e^{-x}} g(x)=1+ex1
再令
h θ ( x ) = g ( f ( x ) ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n ) h_\theta(x)=g(f(x))=g(\theta_0 + \theta_1x_1 + \theta_2x_2 + ...+ \theta_nx_n) hθ(x)=g(f(x))=g(θ0+θ1x1+θ2x2+...+θnxn)

求出了其中的 θ 0 , θ 1 , . . . , θ n \theta_0,\theta_1,...,\theta_n θ0,θ1,...,θn就可以用上面的函数对新的数据进行判断(判断结果是它属于正样本的概率值)。
    

三、损失函数

假设我们采集了 m m m个样本的 n n n个特征并完成了数据标注。
x 1 i , x 2 i , . . . , x n i , y i ( 1 ≤ i ≤ m ) x_1^{i},x_2^{i},...,x_n^{i},y^i (1 \leq i \leq m) x1i,x2i,...,xni,yi(1im)

其中正样本的 y i = 1 ,负样本的 y i = 0 。 y^i=1,负样本的y^i =0。 yi=1,负样本的yi=0
我们假定这N个特征是现行可分的,即存在一条如下直线将两类样本进行划分
θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = 0 \theta_0 + \theta_1x_1 + \theta_2x_2+\cdots +\theta_nx_n = 0 θ0+θ1x1+θ2x2++θnxn=0


d = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n d = \theta_0+ \theta_1x_1 + \theta_2x_2+\cdots +\theta_nx_n d=θ0+θ1x1+θ2x2++θnxn
此处 d d d 表示样本点到决策边界的距离,它是有正负的一个值。

将第 i i i 个样本点的所有特征数据带入上式中,就可以求出该样本点距离直线的距离。
d ( i ) = θ 0 + θ 1 x 1 ( i ) + θ 2 x 2 ( i ) + ⋯ + θ n x n ( i ) d^{(i)} = \theta_0+ \theta_1x^{(i)}_1 + \theta_2x^{(i)}_2+\cdots +\theta_nx^{(i)}_n d(i)=θ0+θ1x1(i)+θ2x2(i)++θnxn(i)

此处我们将 d ( θ ) 带入 l o g i s t i c 函数 d{(\theta)} 带入logistic函数 d(θ)带入logistic函数可以得到

h θ ( x ) = 1 1 + e − d ( θ ) h_\theta(x)=\frac{1}{1+e^{-d(\theta)}} hθ(x)=1+ed(θ)1

它是正样本属于正类的概率,也是关于 θ \theta θ 的函数
对于正样本我们用 h θ ( x ) h_\theta(x) hθ(x) 表示属于正样本的概率,用 1 − h θ ( x ) 1-h_\theta(x) 1hθ(x) 表示属于负样本的概率。

因此所有 m m m 个样本的概率值如下:
{ P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) \begin{cases} P(y=1 | x;\theta) = h_\theta(x)\\ P(y=0 | x;\theta) = 1- h_\theta(x) \end{cases} {P(y=1∣x;θ)=hθ(x)P(y=0∣x;θ)=1hθ(x)

该公式表示含义如下

P ( y = 1 ∣ x ; θ ) = h θ ( x ) , P(y=1 | x;\theta) = h_\theta(x), P(y=1∣x;θ)=hθ(x),表示 给定参数 x 和 θ x和\theta xθ ,输出 y 为 1 y 为 1 y1 的概率.
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) , P(y=0 | x;\theta) = 1- h_\theta(x), P(y=0∣x;θ)=1hθ(x)表示 给定参数 x 和 θ x和\theta xθ ,输出 y 为 0 y 为 0 y0 的概率.

将上式合并可以得到
P ( y ∣ x ; θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y P(y| x;\theta) = h_\theta(x)^y(1-h_\theta(x))^{1-y} P(yx;θ)=hθ(x)y(1hθ(x))1y

合并过程如下
为了得到一个更通用的表达式,我们考虑 y y y可以是 0 或 1 0 或 1 01 的情况。我们想要一个表达式,它能够同时表示 y = 0 和 y = 1 y=0 和 y=1 y=0y=1的情况。这里我们使用概率的乘法法则,即联合概率可以表示为各个条件概率的乘积。

对于 y = 1 y=1 y=1,我们有
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1 | x;\theta) = h_\theta(x) P(y=1∣x;θ)=hθ(x)

对于 y = 0 y=0 y=0,我们有
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=0 | x;\theta) = 1- h_\theta(x) P(y=0∣x;θ)=1hθ(x)

我们想要一个表达式,它能够根据 y y y 的值自动选择正确的条件概率。这可以通过指数函数来实现,因为指数函数可以很容易地根据指数的值(0 或 1)来选择是否包含某个项。

因此,我们得到:
P ( y ∣ x ; θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y P(y| x;\theta) = h_\theta(x)^y(1-h_\theta(x))^{1-y} P(yx;θ)=hθ(x)y(1hθ(x))1y

以上函数的似然函数是
L ( θ ) = P ( y ⃗ ∣ X ; θ ) = ∏ i m h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) 1 − y ( i ) L(\theta) = P(\vec y| X;\theta) = \prod_i^m h_\theta(x^{(i)})^{y^{(i)}}(1-h_\theta(x^{(i)})^{1-y^{(i)}} L(θ)=P(y X;θ)=imhθ(x(i))y(i)(1hθ(x(i))1y(i)

则似然函数对应的对数函数为
l ( θ ) = I n ( L ( θ ) ) = ∑ i = 1 m ( y ( i ) I n ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) I n ( 1 − h θ ( x ( i ) ) ) \begin{aligned} & l(\theta) = In(L(\theta)) \\ &= \sum_{i=1} ^{m} (y^{(i)} In(h_\theta(x^{(i)})) + (1- y^{(i)})In(1-h_\theta(x^{(i)})) \\ \end{aligned} l(θ)=In(L(θ))=i=1m(y(i)In(hθ(x(i)))+(1y(i))In(1hθ(x(i)))

似然函数取得最大值时,模型为最优,因此我们可以定义损失函数为:
J ( θ ) = − l ( θ ) = ∑ i = 1 m ( − y ( i ) I n ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) I n ( 1 − h θ ( x ( i ) ) ) J(\theta) = -l(\theta) = \sum_{i=1} ^{m} (-y^{(i)} In(h_\theta(x^{(i)})) - (1- y^{(i)})In(1-h_\theta(x^{(i)})) J(θ)=l(θ)=i=1m(y(i)In(hθ(x(i)))(1y(i))In(1hθ(x(i)))

即是Logistic回归的损失函数。
    

四、交叉熵(CrossEntropy)损失函数

    交叉熵(CrossEntropy)损失函数是一种在分类问题中常用的损失函数,特别是在二分类和多分类问题中。它衡量的是模型预测的概率分布与真实标签的概率分布之间的差异。交叉熵损失函数的定义如下:

1、二分类问题的交叉熵损失函数

对于二分类问题,交叉熵损失函数可以表示为:

L ( y , y ^ ) = − [ y l o g ( y ^ ) + ( 1 − y ) l o g ( 1 − y ^ ) ] L(y,\hat y) = -[y log(\hat y) + (1-y)log(1-\hat y)] L(y,y^)=[ylog(y^)+(1y)log(1y^)]

其中:

  • y y y 是真实标签,取值 0 或 1 0 或 1 01
  • y ^ \hat y y^ 是模型预测的概率,即 P ( y = 1 ∣ x ) P(y = 1|x) P(y=1∣x)

2、多分类问题的交叉熵损失函数

对于多分类问题,交叉熵损失函数可以表示为:

L ( y , y ^ ) = − ∑ c = 1 M y c l o g ( y ^ c ) L(y,\hat y) = -\sum_{c=1}^M y_c log(\hat y_c) L(y,y^)=c=1Myclog(y^c)

其中:

  • M M M 是类别的总数
  • y c y_c yc是一个指示变量,如果样本属于类别 c c c,则 y c = 1 y_c = 1 yc=1 ,否则 y c = 0 y_c = 0 yc=0
  • $\hat y_c $ 是模型预测样本属于类别 c c c 的概率。

3、交叉熵损失函数的特点

  • 优化目标:交叉熵损失函数的目标是使得模型预测的概率分布尽可能接近真实的概率分布。
  • 可微性:交叉熵损失函数是可微的,这使得它可以通过梯度下降等优化算法进行训练。
  • 凸性:在大多数情况下,交叉熵损失函数是凸的,这意味着它有一个全局最小值,优化过程可以保证收敛到最优解。

4、交叉熵损失函数的应用

交叉熵损失函数在机器学习中被广泛应用于各种分类模型,如逻辑回归、支持向量机、神经网络等。它特别适用于那些输出层使用softmax激活函数的模型,因为softmax函数的输出是一个概率分布,可以直接用于计算交叉熵损失。
    

五、模型参数求解

J ( θ ) = − l ( θ ) = ∑ i = 1 m ( − y ( i ) I n ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) I n ( 1 − h θ ( x ( i ) ) ) J(\theta) = -l(\theta) = \sum_{i=1} ^{m} (-y^{(i)} In(h_\theta(x^{(i)})) - (1- y^{(i)})In(1-h_\theta(x^{(i)})) J(θ)=l(θ)=i=1m(y(i)In(hθ(x(i)))(1y(i))In(1hθ(x(i)))
上述的损失函数被称为交叉熵(CrossEntropy)损失函数,它是一个凸函数,可以表示为:

C o s t ( h θ ( x ) , y ) = { − l n ( h θ ( x ) ) ( y = 1 ) − l n ( 1 − h θ ( x ) ) ( y = 0 ) Cost(h_\theta(x),y) = \begin{cases} -ln(h_\theta(x)) & (y=1) \\ -ln(1- h_\theta(x)) & (y=0) \end{cases} Cost(hθ(x),y)={ln(hθ(x))ln(1hθ(x))(y=1)(y=0)

该函数的含义如下:

  • 如果样本是一个正样本 ( y = 1 ) (y=1) (y=1),当 h θ ( x ) h_\theta(x) hθ(x) 接近于1时,损失函数接近于0;当 h θ ( x ) h_\theta(x) hθ(x) 接近于0时,损失函数接近于无穷大。
  • 如果样本是一个负样本 ( y = 0 ) (y=0) (y=0),当 h θ ( x ) h_\theta(x) hθ(x) 接近于1时,损失函数接近于无穷大;当 h θ ( x ) h_\theta(x) hθ(x) 接近于0时,损失函数接近于0。

下面我们用最大似然估计来求解模型的最佳值,也就是求 l ( θ ) l(\theta) l(θ) 最大的时候的 θ \theta θ,而 θ = ( θ 0 , θ a , ⋯   , θ n ) \theta = (\theta_0,\theta_a,\cdots,\theta_n) θ=(θ0,θa,,θn)是一个向量,所以我们用 l ( θ ) l(\theta) l(θ) 对于该向量的每一个分量进行求偏导:
∂ l ( θ ) ∂ ( θ j ) = ∑ i = 1 m ∂ ( y ( i ) ln ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ) ∂ ( θ j ) = ∑ i = 1 m ( ∂ ( y ( i ) ln ⁡ ( h θ ( x ( i ) ) ) ) ∂ ( θ j ) + ∂ ( ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ∂ ( θ j ) ) ( 1 ) = ∑ i = 1 m ( y ( i ) h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ) ∂ ( h θ ( x ( i ) ) ) ∂ ( θ j ) \begin{align*} \frac{\partial l(\theta)}{\partial\left(\theta_{j}\right)}&=\sum_{i=1}^{m}\frac{\partial\left(y^{(i)}\ln\left(h_{\theta}\left(x^{(i)}\right)\right)+\left(1-y^{(i)}\right)\ln\left(1-h_{\theta}\left(x^{(i)}\right)\right)\right)}{\partial\left(\theta_{j}\right)}\\ &=\sum_{i=1}^{m}\left(\frac{\partial\left(y^{(i)}\ln\left(h_{\theta}\left(x^{(i)}\right)\right)\right)}{\partial\left(\theta_{j}\right)}+\frac{\partial\left(\left(1-y^{(i)}\right)\ln\left(1-h_{\theta}\left(x^{(i)}\right)\right)\right.}{\partial\left(\theta_{j}\right)}\right) \qquad(1) \\ &=\sum_{i=1}^{m}\left(\frac{y^{(i)}}{h_{\theta}\left(x^{(i)}\right)}-\frac{1-y^{(i)}}{1-h_{\theta}\left(x^{(i)}\right)}\right)\frac{\partial\left(h_{\theta}\left(x^{(i)}\right)\right)}{\partial\left(\theta_{j}\right)} \end{align*} (θj)l(θ)=i=1m(θj)(y(i)ln(hθ(x(i)))+(1y(i))ln(1hθ(x(i))))=i=1m((θj)(y(i)ln(hθ(x(i))))+(θj)((1y(i))ln(1hθ(x(i))))(1)=i=1m(hθ(x(i))y(i)1hθ(x(i))1y(i))(θj)(hθ(x(i)))

接下来我们求
∂ ( h θ ( x ( i ) ) ) ∂ ( θ j ) \frac{\partial\left(h_{\theta}\left(x^{(i)}\right)\right)}{\partial\left(\theta_{j}\right)} (θj)(hθ(x(i)))

由于
h θ ( x ) = 1 1 + e − d ( θ ) h_\theta(x)=\frac{1}{1+e^{-d(\theta)}} hθ(x)=1+ed(θ)1

这里我们先求函数
y = 1 1 + e − x y= \frac{1}{1+e^{-x}} y=1+ex1
的导数

d y d x = ( − 1 ( 1 + e − x ) 2 ) ∗ e − x ∗ ( − 1 ) = 1 1 + e − x ∗ e − x 1 + e − x = 1 1 + e − x ∗ ( 1 − 1 1 + e − x ) = y ∗ ( 1 − y ) \begin{align*} \frac{d y}{d x}&=\left(-\frac{1}{\left(1+e^{-x}\right)^2}\right)* e^{-x}*(-1)\\ &=\frac{1}{1+e^{-x}}*\frac{e^{-x}}{1+e^{-x}}\\ &=\frac{1}{1+e^{-x}}*\left(1-\frac{1}{1+e^{-x}}\right)\\ &=y*(1-y) \end{align*} dxdy=((1+ex)21)ex(1)=1+ex11+exex=1+ex1(11+ex1)=y(1y)
因而
∂ ( h θ ( x ( i ) ) ) ∂ ( θ j ) \frac{\partial\left(h_{\theta}\left(x^{(i)}\right)\right)}{\partial\left(\theta_{j}\right)} (θj)(hθ(x(i))) 可以写成

∂ ( h θ ( x ( i ) ) ) ∂ ( θ j ) = h θ ( x ( i ) ) ∗ ( 1 − h θ ( x ( i ) ) ) ∗ ∂ d ( θ ) ∂ θ j \frac{\partial\left(h_\theta\left(x^{(i)}\right)\right)}{\partial\left(\theta_j\right)}=h_\theta\left(x^{(i)}\right)*\left(1-h_\theta\left(x^{(i)}\right)\right)*\frac{\partial d(\theta)}{\partial\theta_j} (θj)(hθ(x(i)))=hθ(x(i))(1hθ(x(i)))θjd(θ)

此时,式(1) 可以写成
∂ l ( θ ) ∂ ( θ j ) = ∑ i = 1 m ( y ( i ) h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ) ∂ ( h θ ( x ( i ) ) ) ∂ ( θ j ) = ∑ i = 1 m ( y ( i ) h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ) ∗ h θ ( x ( i ) ) ∗ ( 1 − h θ ( x ( i ) ) ) ∗ ∂ d ( θ ) ∂ θ j = ∑ i = 1 m ( y ( i ) ( 1 − h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) h θ ( x ( i ) ) ) ∗ ∂ d ( θ ) ∂ θ j = ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) ∗ ∂ d ( θ ) ∂ θ j \begin{align*} \frac{\partial l(\theta)}{\partial\left(\theta_{j}\right)}&=\sum_{i=1}^{m}\left(\frac{y^{(i)}}{h_{\theta}\left(x^{(i)}\right)}-\frac{1-y^{(i)}}{1-h_{\theta}\left(x^{(i)}\right)}\right)\frac{\partial\left(h_{\theta}\left(x^{(i)}\right)\right)}{\partial\left(\theta_{j}\right)}\\ &=\sum_{i=1}^{m}\left(\frac{y^{(i)}}{h_{\theta}\left(x^{(i)}\right)}-\frac{1-y^{(i)}}{1-h_{\theta}\left(x^{(i)}\right)}\right)* h_{\theta}\left(x^{(i)}\right)*\left(1-h_{\theta}\left(x^{(i)}\right)\right)*\frac{\partial d(\theta)}{\partial\theta_{j}}\\ &=\sum_{i=1}^{m}\left(y^{(i)}\left(1-h_{\theta}\left(x^{(i)}\right)\right)-\left(1-y^{(i)}\right) h_{\theta}\left(x^{(i)}\right)\right)*\frac{\partial d(\theta)}{\partial\theta_{j}}\\ &=\sum_{i=1}^{m}\left(y^{(i)}-h_{\theta}\left(x^{(i)}\right)\right)*\frac{\partial d(\theta)}{\partial\theta_{j}} \end{align*} (θj)l(θ)=i=1m(hθ(x(i))y(i)1hθ(x(i))1y(i))(θj)(hθ(x(i)))=i=1m(hθ(x(i))y(i)1hθ(x(i))1y(i))hθ(x(i))(1hθ(x(i)))θjd(θ)=i=1m(y(i)(1hθ(x(i)))(1y(i))hθ(x(i)))θjd(θ)=i=1m(y(i)hθ(x(i)))θjd(θ)

我们要求对数似然函数的最大值,因此需要求

∂ l ( θ ) ∂ ( θ j ) = 0 \frac {\partial l(\theta)}{\partial (\theta_j)} = 0 (θj)l(θ)=0

直接求解该方程比较困难,实战中我们常采用梯度下降的方式进行求解。

    

六、Logistic函数的应用及优缺点

1、应用场景

  1. 机器学习中的分类问题:Logistic函数是逻辑回归模型的核心,用于二分类问题,通过Sigmoid函数将线性回归的输出转换为概率值,从而进行分类。

  2. 生物统计学:在生物统计学中,Logistic函数常用于描述种群增长模型,特别是当资源有限时的S型增长曲线。

  3. 流行病学:在流行病学中,Logistic函数可以用来模拟疾病传播的速率,尤其是在资源有限或免疫人群增加时的增长减缓。

  4. 市场研究:在市场研究中,Logistic函数可以用来预测产品的市场渗透率,模拟产品从引入到成熟的整个过程。
        

2、优点

  • 简单易懂:Logistic回归模型相对简单,易于理解和实现。
  • 计算效率高:Logistic函数的计算相对简单,可以快速进行分类。
  • 概率输出:Logistic回归可以输出概率值,这在某些应用中非常有用,如风险评估。
  • 可扩展性:Logistic回归可以扩展到多分类问题,通过softmax函数实现。

    

3、缺点

  • 线性假设:Logistic回归假设特征和输出之间存在线性关系,这在现实世界中可能不总是成立
  • 对异常值敏感:Logistic回归可能对异常值敏感,这可能会影响模型的准确性。
  • 过拟合风险:如果特征数量过多,Logistic回归可能会过拟合,尤其是在样本量较小的情况下。
  • 预测能力有限:对于非线性可分的数据,Logistic回归的预测能力有限,可能需要更复杂的模型如神经网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902117.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)

本文项目编号 T 038 ,文末自助获取源码 \color{red}{T038,文末自助获取源码} T038,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图…

C++——string的模拟实现(上)

目录 引言 成员变量 1.基本框架 成员函数 1.构造函数和析构函数 2.拷贝构造函数 3.容量操作函数 3.1 有效长度和容量大小 3.2 容量操作 3.3 访问操作 (1)operator[]函数 (2)iterator迭代器 3.4 修改操作 (1)push_back()和append() (2)operator函数 引言 在 C—…

直播系统源码技术搭建部署流程及配置步骤

系统环境要求 PHP版本:5.6、7.3 Mysql版本:5.6,5.7需要关闭严格模式 Nginx:任何版本 Redis:需要给所有PHP版本安装Redis扩展,不需要设置Redis密码 最好使用面板安装:宝塔面板 - 简单好用的…

深度学习中的迁移学习:优化训练流程与提高模型性能的策略,预训练模型、微调 (Fine-tuning)、特征提取

1024程序员节 | 征文 深度学习中的迁移学习:优化训练流程与提高模型性能的策略 目录 🏗️ 预训练模型:减少训练时间并提高准确性🔄 微调 (Fine-tuning):适应新任务的有效方法🧩 特征提取:快速…

AAPL: Adding Attributes to Prompt Learning for Vision-Language Models

文章汇总 当前的问题 1.元标记未能捕获分类的关键语义特征 如下图(a)所示, π \pi π在类聚类方面没有显示出很大的差异,这表明元标记 π \pi π未能捕获分类的关键语义特征。我们进行简单的数据增强后,如图(b)所示,效果也是如…

资讯 | 财富通科技政务协同办公管理软件通过麒麟软件适配认证

2024年9月25日,财富通科技研发的政务协同办公管理软件成功通过中国国产操作系统麒麟软件的适配认证。本次认证是继公司区块链产品“基于区块链的企业及人员资质数字证书服务平台”认证以后得第二次认证。这一成就标志着财富通科技在推动国产软件生态建设方面迈出了坚…

【MySQL基础】数据的增删改查(CRUD)

文章目录 一、 插入数据1. 单条数据插入2. 批量插入数据3. 插入默认值4. 部分字段插入5. 总结 二、更新数据1. 基本的UPDATE语法2. 带多个字段的更新3. 批量条件更新4. 小心条件为空的更新教训 5. 一个实际例子:换专业的情况6. 总结 三、删除数据1. 删除特定数据&am…

基于SSM+微信小程序的社区垃圾回收管理系统(垃圾1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于ssm微信小程序的社区垃圾回收管理系统,有管理员,回收员,用户三个角色。 1、管理员功能有个人中心,用户管理,回收员管理&am…

java游戏第六天——总结

开始 我们先在这里创建五个java文件,后面创建一个文件夹存储图片,我就按照这几个文件作用展开描述 bg.java package common; import common.game_pic;import java.awt.Color; import java.awt.Graphics; public class bg {public void paintself(Graph…

Python数据分析——Numpy

纯个人python的一个小回忆笔记,当时假期花两天学的python,确实时隔几个月快忘光了,为了应付作业才回忆起来,不涉及太多基础,适用于有一定编程基础的参考回忆。 这一篇笔记来源于下面哔哩哔哩up主的视频: 一…

Python + 查看个人下载次数小工具 - 记录

目录 前言 一、演示 二、流程简述 1.CSDN网站自动登入 2.登入查询接口网站获取网页数据 3.处理HTML数据 4.完整业务执行程序 三、主程序 四、UI程序 前言 为了方便查看个人资源下载的数据,通过selenium控制浏览器 HTML网页源代码数据获取 数据分析 三个…

服务器虚拟化全面教程:从入门到实践

服务器虚拟化全面教程:从入门到实践 引言 在现代 IT 基础设施中,服务器虚拟化已成为一种不可或缺的技术。它不仅能够提高资源利用率,还能降低硬件成本,优化管理流程。本文将深入探讨服务器虚拟化的概念、技术、应用场景及其实现…

【ECMAScript标准】深入理解ES2023的新特性与应用

🧑‍💼 一名茫茫大海中沉浮的小小程序员🍬 👉 你的一键四连 (关注 点赞收藏评论)是我更新的最大动力❤️! 📑 目录 🔽 前言1️⃣ ECMAScript的演变与重要性2️⃣ ES2023的主要新特性概述3️⃣ 记…

[Ansible实践笔记]自动化运维工具Ansible(一):初探ansibleansible的点对点模式

文章目录 Ansible介绍核心组件任务执行方式 实验前的准备更新拓展安装包仓库在ansible主机上配置ip与主机名的对应关系生成密钥对将公钥发送到被管理端,实现免密登录测试一下是否实现免密登录 常用工具ansibleansible—docansible—playbook 主要配置文件 Ansible 模…

安装Maven配置以及构建Maven项目(2023idea)

一、下载Maven绿色软件 地址:http://maven.apache.org/download.cgi 尽量不要选择最高版本的安装,高版本意味着高风险的不兼容问题,选择低版本后续问题就少。你也可以选择尝试。 压缩后: 打开后: 在该目录下新建mvn-…

【算法练习】最小生成树

题意&#xff1a;【模板】最小生成树 方法1&#xff1a;Prim算法(稠密边用优&#xff09; #include <bits/stdc.h> using namespace std; int n,m,u,v,d,ans; bool f[5001]; vector<pair<int,int>> a[5001];//用结构体和重载比直接定义小根堆似乎还快一点点…

局部变量和全局变量(Python)

引入例子拆解 源码 class A:def __init__(self):self.test 0def add(c, k):c.test c.test 1k k 1def main():Count A()k 0for i in range(0, 25):add(Count, k)print("Count.test", Count.test)print("k", k)main() 运行结果如下图 代码解析 这…

使用语音模块的开发智能家居产品(使用雷龙LSYT201B 语音模块)

在这篇博客中&#xff0c;我们将探讨如何使用 LSYT201B 语音模块 进行智能设备的语音交互开发。通过这个模块&#xff0c;我们可以实现智能设备的语音识别和控制功能&#xff0c;为用户带来更为便捷和现代的交互体验。 1. 语音模块介绍 LSYT201B 是一个基于“芯片算法”的语音…

GS-SLAM Dense Visual SLAM with 3D Gaussian Splatt 论文阅读

项目主页 2024 CVPR (highlight) https://gs-slam.github.io/ 摘要 本文提出了一种基于3D Gaussian Splatting方法的视觉同步定位与地图构建方法。 与最近采用神经隐式表达的SLAM方法相比&#xff0c;本文的方法利用实时可微分泼溅渲染管道&#xff0c;显著加速了地图优化和…