吴恩达深度学习——神经网络编程的基础知识

文章内容来自BV11H4y1F7uH,仅为个人学习所用。

文章目录

  • 二分分类
    • 一些符号说明
  • 逻辑斯蒂回归
  • 梯度下降法
  • 计算图
  • 逻辑斯蒂回归中的梯度下降法
    • 单个样本下的梯度下降
    • m个样本的梯度下降
  • 向量化
    • 向量化技术
    • 向量化技术计算m个训练数据的梯度
  • numpy的向量

二分分类

假设有一张图片作为输入,判断该图片是不是猫,如果是猫,输出1,否则输出0。用 x x x表示输入, y y y表示输出。
在这里插入图片描述
图片在计算机中用三个二维矩阵分别表示RGB。假设该图片像素大小为64*64,那么矩阵行*列为64*64。这里为了简单起见,画出3个5*4的矩阵。
在这里插入图片描述
将这些值放入一个特征向量 x \boldsymbol{x} x,有 x = [ 255 . . . 202 255 . . . 94 255 . . . 142 ] \boldsymbol{x}=\begin{bmatrix}255\\...\\202\\255\\...\\94\\255\\...\\142\end{bmatrix} x= 255...202255...94255...142

对于64*64的三张图片,总维度大小为64*64*3=12288,有 n = n x = 12288 n=n_x=12288 n=nx=12288

使用 n x n_x nx表示输入的特征向量的维度,简单起见,用 n n n代替。

一些符号说明

  • ( x , y ) (\boldsymbol{x}, y) (x,y)表示一个单独的样本。其中 x \boldsymbol{x} x n n n维的特征向量, y y y是标签,值为 { 0 , 1 } \{{0,1\}} {0,1}
  • m m m表示训练集由 m m m个样本构成, ( x ( 1 ) , y ( 1 ) ) (\boldsymbol{x}^{(1)},y^{(1)}) (x(1),y(1))表示样本一的输入输出; ( x ( 2 ) , y ( 2 ) ) (\boldsymbol{x}^{(2)},y^{(2)}) (x(2),y(2))表示样本二的输入输出; ( x ( 1 ) , y ( 1 ) ) (\boldsymbol{x}^{(1)},y^{(1)}) (x(1),y(1)) ( x ( m ) , y ( m ) ) (\boldsymbol{x}^{(m)},y^{(m)}) (x(m),y(m))表示整个训练集。
    • m t r a i n m_{train} mtrain可以表示为训练集的样本个数。
    • m t e s t m_{test} mtest可以表示为测试集的样本个数。
  • 使用更为方便的符号 X = [ ∣ ∣ ∣ x ( 1 ) x ( 2 ) x ( 3 ) ∣ ∣ ∣ ] \boldsymbol{X}=\begin{bmatrix}|&|&|\\x^{(1)}&x^{(2)}&x^{(3)}\\|&|&|\end{bmatrix} X= x(1)x(2)x(3) 表示训练集,该矩阵有 m m m列,有 n n n行。
  • 使用符号 Y = [ y ( 1 ) y ( 2 ) . . . y ( m ) ] \boldsymbol{Y}=\begin{bmatrix} y^{(1)}& y^{(2)}& ...&y^{(m)} \end{bmatrix} Y=[y(1)y(2)...y(m)]表示输出标签。

py中,X.shape()函数用于输出矩阵的维度。对于 X \boldsymbol{X} X,输出结果为 ( n x , m ) (n_x,m) (nx,m),对于 Y \boldsymbol{Y} Y,输出结果为 ( 1 , m ) (1,m) (1,m)

逻辑斯蒂回归

传统的线性回归函数 y ^ = w T x + b \hat{y}=w^T\boldsymbol{x}+b y^=wTx+b

Logistics回归是一个学习算法,用于在监督学习问题中,输出标签是0或1时。这是一个二元分类问题。

已知输入特征向量 x \boldsymbol{x} x可能是一张图片,希望识别出是不是猫的图片。根据某个算法得出预测值 y ^ \hat{y} y^,当输入特征值满足条件的时候, y ^ \hat{y} y^是1。这里的 x \boldsymbol{x} x是一个 n x n_x nx维的向量。

Logistics回归的参数中, w \boldsymbol{w} w也是一个 n x n_x nx维的向量, b b b是一个实数。使用传统的线性回归函数 y ^ = w T x + b \hat{y}=w^T\boldsymbol{x}+b y^=wTx+b并不是一个很好的二元分类算法。 y ^ \hat{y} y^应该落入0~1之间,但是这个函数并不在此区间。

Sigmoid激活函数

Sigmoid激活函数表达式为 S ( x ) = 1 1 + e − x S(x)=\frac{1}{1+e^{-x}} S(x)=1+ex1
在这里插入图片描述
Sigmoid 函数将输入的任意实数映射到区间(0,1)内,这一特性使得它在很多情况下可用于将输入转换为表示概率的输出,因此在二分类问题中应用广泛。

逻辑斯蒂函数表达式为 P ( x ) = 1 1 + e − ( a + b x ) P(x)=\frac{1}{1+e^{-(a+bx)}} P(x)=1+e(a+bx)1当a=0,b=1时,就是标准的Sigmoid激活函数,Sigmoid激活函数是逻辑斯蒂函数的一个特例,通常使用 σ ( x ) \sigma(x) σ(x)表示。

使用Sigmoid激活函数作用到该表达式中,有预测值 y ^ = σ ( w T x + b ) \hat{y}=\sigma(w^T\boldsymbol{x}+b) y^=σ(wTx+b)

逻辑斯蒂回归损失函数

对于函数 y ^ = σ ( w T x + b ) \hat{y}=\sigma(w^T\boldsymbol{x}+b) y^=σ(wTx+b)给定训练集 ( x ( 1 ) , y ( 1 ) ) (\boldsymbol{x}^{(1)},y^{(1)}) (x(1),y(1)) ( x ( m ) , y ( m ) ) (\boldsymbol{x}^{(m)},y^{(m)}) (x(m),y(m)),想要得到 y ( i ) ^ ≐ y ( i ) \hat{y^{(i)}}\doteq y^{(i)} y(i)^y(i)

损失函数

损失函数(Loss Function)是用于衡量模型预测值与真实值之间差异的函数。

  • 损失函数的值越小,表示模型的预测结果与真实结果越接近。在模型训练过程中,通过不断地调整模型的参数(如神经网络中的权重和偏置),使损失函数的值逐渐减小,从而使模型不断优化,提高预测的准确性。
  • 损失函数还可以用于评估不同模型或同一模型在不同参数设置下的性能。通常,在验证集或测试集上计算损失函数的值,值越小的模型性能越好。

一些常见的损失函数如下:

  1. 均方误差(Mean Squared Error,MSE)
    • 公式 M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2,其中 n n n是样本数量, y i y_i yi是真实值, y ^ i \hat{y}_i y^i是预测值。
    • 应用场景:常用于回归问题,例如预测房价、股票价格等连续值的预测任务。它对较大的误差给予更大的惩罚,因为误差是平方的,所以能使模型更关注较大的偏差。
    • 特点:计算简单,导数也容易计算,方便使用梯度下降等优化算法进行优化。但对异常值比较敏感,因为异常值的平方会使损失值增大很多。
  2. 交叉熵损失(Cross-Entropy Loss)
    • 二分类情况

      • 公式 C E = − 1 n ∑ i = 1 n [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] CE = -\frac{1}{n}\sum_{i=1}^{n}[y_i\log(\hat{y}_i) + (1 - y_i)\log(1 - \hat{y}_i)] CE=n1i=1n[yilog(y^i)+(1yi)log(1y^i)],其中 y i y_i yi取值为0或1, y ^ i \hat{y}_i y^i是模型预测样本 i i i为正类的概率。

      注意这里的 l o g log log是国外的写法,实际上是 l n ln ln

      • 应用场景:广泛应用于二分类问题,如垃圾邮件分类、疾病诊断等。当真实标签 y i = 1 y_i = 1 yi=1时,损失函数只与 log ⁡ ( y ^ i ) \log(\hat{y}_i) log(y^i)有关,模型会尽量使 y ^ i \hat{y}_i y^i接近1;当 y i = 0 y_i = 0 yi=0时,损失函数只与 log ⁡ ( 1 − y ^ i ) \log(1 - \hat{y}_i) log(1y^i)有关,模型会尽量 y ^ i \hat{y}_i y^i接近0。
      • 特点:能够很好地反映模型预测的概率分布与真实分布之间的差异,并且在梯度计算上比较方便,有利于模型的快速收敛。

成本函数

成本函数是一个用于衡量机器学习模型性能的函数,它通常是关于模型参数的函数,其值表示模型在训练数据上的性能表现。成本函数的值越低,通常表示模型在训练数据上的表现越好。

与损失函数的关系
  • 成本函数和损失函数密切相关,在许多情况下,它们可能会被混淆使用。损失函数通常是针对单个训练样本计算的误差,而成本函数是对整个训练数据集上的损失函数值进行求和或平均。
  • 损失函数侧重于衡量单个样本预测的误差,而成本函数是对整个训练集的总体误差度量,它是优化算法在训练过程中需要最小化的目标。

常见的成本函数,对于二分类问题: J ( w , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( y ^ ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − y ^ ( i ) ] J(\boldsymbol{w}, b)=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\log(\hat{y}^{(i)} )+(1 - y^{(i)})\log(1 - \hat{y}^{(i)}] J(w,b)=m1i=1m[y(i)log(y^(i))+(1y(i))log(1y^(i)]

综上,Logistics函数可以看作一个非常小的神经网络。

梯度下降法

对于函数
在这里插入图片描述
现在需要做的就是找到合适的 w \boldsymbol{w} w与b使得成本函数 J J J的值最小。
在这里插入图片描述
w \boldsymbol{w} w是一个向量,为了简单起见这里认为是实数,b也是实数。可以看到成本函数 J J J是一个凸函数(注意是这里是西方的说法,开口向上的曲线,称为上凹,或称为下凸。视频中讲上凸或下凸)。

梯度下降在图像上直观理解图片中红色部分,从任意一点沿着某条路径到达最小值。
在这里插入图片描述
对于一维的成本函数
在这里插入图片描述
使用梯度下降 w : = w − α d J ( w ) d x w:=w-\alpha\frac{\mathrm{d}J(w)}{\mathrm{d}x} w:=wαdxdJ(w)反复计算来更新 w w w的值(:=表示更新 w w w的值)。
在这里插入图片描述
在这里插入图片描述

计算图

举例 J ( a , b , c ) = 3 ( a + b c ) J(a,b,c)=3(a+bc) J(a,b,c)=3(a+bc)计算过程如下
u = b c u=bc u=bc v = a + u v=a+u v=a+u J = 3 v J=3v J=3v
画出流程图,从左到右是正向传播,可以计算出 J J J的值。在这里插入图片描述
从右到左是反向传播,可以求导(链式法则)。
d J d v = ( 3 v ) ′ = 3 \frac{\mathrm{d} J}{\mathrm{d} v}=(3v)'=3 dvdJ=(3v)=3 d J d a = d J d v d v d a = ( 3 v ) ′ ( a + u ) ′ = 3 \frac{\mathrm{d} J}{\mathrm{d} a}=\frac{\mathrm{d} J}{\mathrm{d} v}\frac{\mathrm{d} v}{\mathrm{d} a}=(3v)'(a+u)'=3 dadJ=dvdJdadv=(3v)(a+u)=3 d J d u = d J d v d v d u = ( 3 v ) ′ ( a + u ) ′ = 3 \frac{\mathrm{d} J}{\mathrm{d} u}=\frac{\mathrm{d} J}{\mathrm{d} v}\frac{\mathrm{d} v}{\mathrm{d} u}=(3v)'(a+u)'=3 dudJ=dvdJdudv=(3v)(a+u)=3 d J d b = d J d v d v d u d u d b = ( 3 v ) ′ ( a + u ) ′ ( b c ) ′ = 3 c \frac{\mathrm{d} J}{\mathrm{d} b}=\frac{\mathrm{d} J}{\mathrm{d} v}\frac{\mathrm{d} v}{\mathrm{d} u}\frac{\mathrm{d} u}{\mathrm{d} b}=(3v)'(a+u)'(bc)'=3c dbdJ=dvdJdudvdbdu=(3v)(a+u)(bc)=3c d J d c = d J d v d v d u d u d c = ( 3 v ) ′ ( a + u ) ′ ( b c ) ′ = 3 b \frac{\mathrm{d} J}{\mathrm{d} c}=\frac{\mathrm{d} J}{\mathrm{d} v}\frac{\mathrm{d} v}{\mathrm{d} u}\frac{\mathrm{d} u}{\mathrm{d} c}=(3v)'(a+u)'(bc)'=3b dcdJ=dvdJdudvdcdu=(3v)(a+u)(bc)=3b
为了编程的方便,定义 d v = d J d v \mathrm{d}v=\frac{\mathrm{d} J}{\mathrm{d} v} dv=dvdJ d a = d J d a \mathrm{d}a=\frac{\mathrm{d} J}{\mathrm{d} a} da=dadJ

逻辑斯蒂回归中的梯度下降法

单个样本下的梯度下降

对于Logistic回归的公式
在这里插入图片描述
假设样本只有两个特征 x 1 x1 x1 x 2 x2 x2。为了计算 z z z,需要输入 w 1 w1 w1 w 2 w2 w2 b b b
反向传播进行计算,有 ′ ′ d a ′ ′ = d L d a = − y a + 1 − y 1 − a ''\mathrm{d}a''=\frac{\mathrm{d}L}{\mathrm{d}a}=-\frac{y}{a}+\frac{1-y}{1-a} ′′da′′=dadL=ay+1a1y d a d z = e − x ( 1 + e − x ) 2 = a ( 1 − a ) \frac{\mathrm{d}a}{\mathrm{d}z}=\frac{e^{-x}}{(1+e^{-x})^2}=a(1-a) dzda=(1+ex)2ex=a(1a) ′ ′ d z ′ ′ = d L d z = d L d a d a d z = ( − y a + 1 − y 1 − a ) ( a ( 1 − a ) ) = a − y ''\mathrm{d}z''=\frac{\mathrm{d}L}{\mathrm{d}z}=\frac{\mathrm{d}L}{\mathrm{d}a}\frac{\mathrm{d}a}{\mathrm{d}z}=(-\frac{y}{a}+\frac{1-y}{1-a})(a(1-a))=a-y ′′dz′′=dzdL=dadLdzda=(ay+1a1y)(a(1a))=ay d L d w 1 = d L d a d a d z d z d w 1 = d L d z x 1 = x 1 d z \frac{\mathrm{d}L}{\mathrm{d}w_1}=\frac{\mathrm{d}L}{\mathrm{d}a}\frac{\mathrm{d}a}{\mathrm{d}z}\frac{\mathrm{d}z}{\mathrm{d}w_1} =\frac{\mathrm{d}L}{\mathrm{d}z}x_1=x_1\mathrm{d}z dw1dL=dadLdzdadw1dz=dzdLx1=x1dz d L d w 2 = d L d a d a d z d z d w 2 = d L d z x 2 = x 2 d z \frac{\mathrm{d}L}{\mathrm{d}w_2}=\frac{\mathrm{d}L}{\mathrm{d}a}\frac{\mathrm{d}a}{\mathrm{d}z}\frac{\mathrm{d}z}{\mathrm{d}w_2} =\frac{\mathrm{d}L}{\mathrm{d}z}x_2=x_2\mathrm{d}z dw2dL=dadLdzdadw2dz=dzdLx2=x2dz d L d b = d L d a d a d z d z d b = d L d z = d z \frac{\mathrm{d}L}{\mathrm{d}b}=\frac{\mathrm{d}L}{\mathrm{d}a}\frac{\mathrm{d}a}{\mathrm{d}z}\frac{\mathrm{d}z}{\mathrm{d}b} =\frac{\mathrm{d}L}{\mathrm{d}z}=\mathrm{d}z dbdL=dadLdzdadbdz=dzdL=dz
梯度下降计算,有 w 1 : = w 1 − α d w 1 w_1:=w_1-\alpha\mathrm{d}w_1 w1:=w1αdw1 w 2 : = w 2 − α d w 2 w_2:=w_2-\alpha\mathrm{d}w_2 w2:=w2αdw2 b : = b − α d b b:=b-\alpha\mathrm{d}b b:=bαdb

m个样本的梯度下降

对于 m m m个样本,在编程时,令 J = 0 J=0 J=0 d w 1 = 0 \mathrm{d}w_1=0 dw1=0 d w 2 = 0 \mathrm{d}w_2=0 dw2=0 d w . . . = 0 \mathrm{d}w...=0 dw...=0 d b = 0 \mathrm{d}b=0 db=0
伪代码如下:
在这里插入图片描述
在这里插入图片描述
该伪代码有两层for,时间复杂度较大。因此,需要使用向量化技术来摆脱显式的for循环。

向量化

对于 z = w T x + b z=\boldsymbol{w}^T\boldsymbol{x}+b z=wTx+b,其中, w \boldsymbol{w} w x \boldsymbol{x} x都是列向量。在py中使用np.dot()方法,就可以实现向量化技术。通过代码来感受向量化与非向量化之间的差距。

import numpy as np
import time# 生成一个包含 1000000 个元素的一维数组,数组中的元素是在范围 [0, 1) 内均匀分布的随机浮点数。
a = np.random.rand(1000000)
b = np.random.rand(1000000)# 向量化
tic = time.time()
c = np.dot(a, b)
toc = time.time()print(c)
print(toc - tic)# 非向量化
c = 0
ticc = time.time()
for i in range(1000000):c += a[i]*b[i]
tocc = time.time()print(c)
print(tocc - ticc)

因此,能使用numpy库的向量化技术的就不要使用for之类的循环。

关于向量化技术部分光听理论比较抽象,最好通过吴恩达配套的作业进行编码加深理解。

向量化技术

在这里插入图片描述
训练集 X = [ ∣ ∣ ∣ x ( 1 ) x ( 2 ) x ( 3 ) ∣ ∣ ∣ ] \boldsymbol{X}=\begin{bmatrix}|&|&|\\x^{(1)}&x^{(2)}&x^{(3)}\\|&|&|\end{bmatrix} X= x(1)x(2)x(3) ,代入公式分别计算Z和a,有 Z = [ z ( 1 ) z ( 2 ) z ( 3 ) . . . ] = w T X + b = [ w T x ( 1 ) w T x ( 2 ) w T x ( 3 ) . . . ] + [ b b b . . . ] \boldsymbol{Z}=\begin{bmatrix}z^{(1)}& z^{(2)}& z^{(3)}&...\end{bmatrix}=\boldsymbol{w}^T\boldsymbol{X}+b =\begin{bmatrix}w^Tx^{(1)}& w^Tx^{(2)}& w^Tx^{(3)}&...\end{bmatrix}+\begin{bmatrix}b& b& b&...\end{bmatrix} Z=[z(1)z(2)z(3)...]=wTX+b=[wTx(1)wTx(2)wTx(3)...]+[bbb...]使用向量化技术,有 Z = n p . d o t ( w T , x ) + b \boldsymbol{Z}=np.dot(w^T, x) + b Z=np.dot(wT,x)+b在这里的+b使用到了py中的广播,是py的语法。

计算出的 Z \boldsymbol{Z} Z代入a,有 A = [ a ( 1 ) a ( 2 ) a ( 3 ) . . . ] \boldsymbol{A}=\begin{bmatrix}a^{(1)}& a^{(2)}& a^{(3)}&...\end{bmatrix} A=[a(1)a(2)a(3)...]

向量化技术计算m个训练数据的梯度

在这里插入图片描述
之前对 d w \mathrm{d}w dw做了向量化,现在要进一步消去for:在这里插入图片描述

numpy的向量

import numpy as np# 生成5个随机高斯变量,存在数组a中
# 秩为1的数组,一维数组,有5个数据
# 既不是行向量也不是列向量
a = np.random.randn(5)
print(a.shape)
print(a)
print(np.dot(a, a.T))# 5*1的列向量
b = np.random.randn(5, 1)
print(b.shape)
print(b)
print(b.T)
print(np.dot(b, b.T))

不要使用第一种方式创建数据,它是一个数组而不是向量,应该使用第二种方式创建数据。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调试Hadoop源代码

个人博客地址:调试Hadoop源代码 | 一张假钞的真实世界 Hadoop版本 Hadoop 2.7.3 调试模式下启动Hadoop NameNode 在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中设置NameNode启动的JVM参数,如下: export HADOOP_NAMENODE_OPTS"-Xdeb…

通过Ukey或者OTP动态口令实现windows安全登录

通过 安当SLA(System Login Agent)实现Windows安全登录认证,是一种基于双因素认证(2FA)的解决方案,旨在提升 Windows 系统的登录安全性。以下是详细的实现方法和步骤: 1. 安当SLA的核心功能 安…

从前端视角看设计模式之结构型模式篇

上篇我们介绍了 设计模式之创建型模式篇,接下来介绍设计模式之结构型模式篇 适配器模式 适配器模式旨在解决接口不兼容的问题,它通过创建一个适配器类,将源对象的接口转换成目标接口,从而使得不兼容的接口能够协同工作。简单来说…

彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构

目录 什么是系统架构 单体架构 介绍 示例图 优点 缺点 集群架构 介绍 示意图 优点 缺点 分布式架构 示意图 优点 缺点 生态扩展 介绍 示意图 优点 缺点 扩展:分布式服务解析 纵切拆服务 全链路追踪能力 循环依赖 全链路日志(En…

编辑器Vim基本模式和指令 --【Linux基础开发工具】

文章目录 一、编辑器Vim 键盘布局二、Linux编辑器-vim使用三、vim的基本概念正常/普通/命令模式(Normal mode)插入模式(Insert mode)末行模式(last line mode) 四、vim的基本操作五、vim正常模式命令集插入模式从插入模式切换为命令模式移动光标删除文字复制替换撤销上一次操作…

ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认

OpenAI的ChatGPT爬虫似乎能够对任意网站发起分布式拒绝服务(DDoS)攻击,而OpenAI尚未承认这一漏洞。 本月,德国安全研究员Benjamin Flesch通过微软的GitHub分享了一篇文章,解释了如何通过向ChatGPT API发送单个HTTP请求…

成就与远见:2024年技术与思维的升华

个人主页:chian-ocean 前言: 2025年1月17日,2024年博客之星年度评选——创作影响力评审的入围名单公布。我很荣幸能够跻身Top 300,虽然与顶尖博主仍有一定差距,但这也为我提供了更加明确的发展方向与指引。展望崭新的2025年&…

【前端】CSS学习笔记(2)

目录 CSS3新特性圆角阴影动画keyframes 创建动画animation 执行动画timing-function 时间函数direction 播放方向过渡动画(transition) 媒体查询设置meta标签媒体查询语法 雪碧图字体图标 CSS3新特性 圆角 使用CSS3border-radius属性,你可以…

基于.Net Core+Vue的文件加密系统

1系统架构图 2 用例图 管理员角色的用例: 文件分享大厅:管理员可以访问文件分享大厅,下载文件。个人信息管理:管理员可以更新自己的个人信息,修改密码。用户管理:管理员负责创建、更新或删除用户账户&…

Python从0到100(八十四):神经网络-卷积神经网络训练CIFAR-10数据集

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

YOLOv9改进,YOLOv9检测头融合RFAConv卷积,适合目标检测、分割任务

摘要 空间注意力已广泛应用于提升卷积神经网络(CNN)的性能,但它存在一定的局限性。作者提出了一个新的视角,认为空间注意力机制本质上解决了卷积核参数共享的问题。然而,空间注意力生成的注意力图信息对于大尺寸卷积核来说是不足够的。因此,提出了一种新型的注意力机制—…

大模型LLM-微调 RAG

RAG小结 这篇文章是一篇关于大型语言模型(LLMs)增强技术的综述论文,特别聚焦于检索增强生成(Retrieval-Augmented Generation, RAG)这一领域。详细考察了RAG的发展、技术基础、关键技术、评估框架以及未来的研究方向。…

【专题】为2025制定可付诸实践的IT战略规划报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p39055 在当今瞬息万变的商业环境中,制定有效的 IT 战略规划对于企业的成功与可持续发展至关重要。本报告深入探讨了制定 IT 战略规划的关键活动,旨在为企业和决策者提供全面且实用的指导。 Gartner的《为202…

CBAM-2018学习笔记

名称: Convolutional Block Attention Module (CBAM) 来源: CBAM: Convolutional Block Attention Module 相关工作: #ResNet #GoogleNet #ResNeXt #Network-engineering #Attention-mechanism 创新点: 贡献: 提…

Invicti-Professional-V25.1

01 更新介绍 此更新包括对内部代理的更改。内部扫描代理的当前版本为 25.1.0。内部身份验证验证程序代理的当前版本为 25.1.0。#新功能现在,单击扫描摘要屏幕中的预设扫描图标会将您重定向到具有过滤视图的 “最近扫描” 页面,从而改进导航和对相关扫描…

React 中hooks之useDeferredValue用法总结

目录 概述基本用法与防抖节流的区别使用场景区分过时内容最佳实践 概述 什么是 useDeferredValue? useDeferredValue 是 React 18 引入的新 Hook,用于延迟更新某个不那么重要的部分。它接收一个值并返回该值的新副本,新副本会延迟更新。这种延迟是有…

TMC2208替代A4988

前言 TMC2208 是一款先进的 1 轴步进驱动器,支持 stealthChop ™和 256 微步。本应用说明介绍了如何设置 TMC2208 以替代 A4988(传统模式)。 引脚比较 与其他电机驱动器相比,TMC2208 具有附加功能:256 微步。 自动…

ComfyUI 矩阵测试指南:用三种方法,速优项目效果

在ComfyUI中,矩阵测试也叫xyz图表测试,作用是通过控制变量的方式来对Lora模型以及各种参数开展测试,并进行有效区分。其中测试方法有很多种,可以通过借助插件也可以自行搭建工作流实现,下面介绍3种方式: 1…

图数据库 | 19、高可用分布式设计(下)

相信大家对分布式系统设计与实现的复杂性已经有了一定的了解,本篇文章对分布式图数据库系统中最复杂的一类系统架构设计进行探索,即水平分布式图数据库系统(这个挑战也可以泛化为水平分布式图数据仓库、图湖泊、图中台或任何其他依赖图存储、…

基于Python的多元医疗知识图谱构建与应用研究(上)

一、引言 1.1 研究背景与意义 在当今数智化时代,医疗数据呈爆发式增长,如何高效管理和利用这些数据,成为提升医疗服务质量的关键。传统医疗数据管理方式存在数据孤岛、信息整合困难等问题,难以满足现代医疗对精准诊断和个性化治疗的需求。知识图谱作为一种知识表示和管理…