《深度学习基础与概念》笔记(2)

四、单层网络:回归

本章核心是线性回归模型,具有单层可学习参数的神经网络。虽然应用十分有限,但是奠定基础

4.1基函数

核心作用:把简单的直线回归,升级成能拟合任意曲线的模型,而且形式上还是 "线性模型"。

关键理解:模型被称为 "线性",是因为它对参数w是线性的, 只要 w 是一次方(没有 w²、w₁w₂等),基函数可以是非线性的(如多项式、高斯函数),就是线性模型。

基函数优势:

  1. 普通线性回归(无基函数):只能拟合直线(y=w₀+w₁x),适用范围窄;

  2. 带基函数的线性回归:换一套基函数,就能拟合对应曲线,且由于上述是线性回归模型,我们还是可以使用求解公式(最小二乘)

4.2最小二乘法与最大似然函数

我们都知道,平方和误差是用来计算模型与数据之间的误差值的

什么是最小二乘法?

复制代码
 最小二乘法是为了最小化误差而存在的一种数学解题思路
 数学操作:求导、令导数 = 0、解方程、算出最优的权重 w1,w2...

假设数据 = 模型预测 + 高斯噪声(服从均值为0、方差为σ² 的高斯分布)

那从概念角度来说,为什么最小二乘法=最大似然估计函数呢?

复制代码
最大似然估计:找一组参数,让 “真实数据” 在你的模型里最有可能出现。
最小二乘法:是为了最小化误差==等价于减少模型与数据之间的误差==误差就越小,数据出现的概率就越高

(其实这里还有一个问题,那就是为什么「误差越小,概率越高」?这是因为我们假设噪声是高斯分布(钟形曲线):误差为 0(预测值 = 真实值)时,概率最高;误差越大,离中心越远,概率就越低。)

从公式推导的角度,为什么最小二乘法=最大似然估计函数 呢?

4.3序贯学习

最大似然解式可以采用批处理的方法一次性处理整个训练集,但是成本很高,所以我们可以使用序贯学习的方法,一个一个考虑数据,模型实时更新。

那具体怎么实现呢?(采用了随机梯度下降技术)

更新参数公式如下

新参数 = 旧参数 - 学习率x误差值

复制代码
每次来一个样本 (xn,tn),计算当前模型的预测误差,用误差乘以学习率 η,去更新权重 w
4.4正则化最小二乘法

正则化思想在最小二乘法里的具体落地实践

  • 普通最小二乘:只看 "和训练数据贴不贴",不管权重多大。

  • 正则化最小二乘:在 "贴数据" 和 "权重不要太大" 之间找平衡,防止模型学过头。

实现方式如1.4.5,让

EW(w):衡量权重 w 的大小,越大的权重惩罚越重

λ:正则化系数,控制惩罚的强度,越大对权重的约束越强。

4.5多重输出

多输出回归就是把权重向量升级成权重矩阵 W,公式变成 y=WTϕ(x);

这种方式可以共享基函数,一次性建模所有输出,比单独做 K 次回归更高效

4.6决策理论

推理阶段 :通过训练数据确定预测分布(真实值可能的范围、均值和不确定性)。

决策阶段:从这个预测分布里,根据某些准则挑一个具体的数值

注意区分以下两个定义:

损失函数 :定义「单个样本预测有多差」的规则,用来定理论最优;

误差函数 :把所有样本的损失加起来,用来训练模型、更新参数的 "训练工具"。

损失函数(决策规则)和误差函数(训练目标)一样时,这两个函数就是同一个,训练+选择。

当决策规则与训练目标不一样时,那两者不必绑定。

平方损失 ➜ 数学规定:选【均值】

绝对值损失 ➜ 数学规定:选【中位数】

分类 0-1 损失 ➜ 数学规定:选【概率最大的值】

4.7偏差 - 方差权衡

当我们在正则化时,不能同时优化参数与正则化惩罚系数,这会导致系数为0

通过偏差 - 方差权衡

  • 偏差(Bias):模型的期望预测与真实函数的差异,反映模型的拟合能力。

  • 方差(Variance):模型在不同训练集上的预测波动,反映模型对数据的敏感程度。

目标是找到一个复杂度,使偏差 + 方差的总和最小,平衡欠拟合与过拟合。

权衡的本质

  • 模型变复杂:偏差会降低(拟合更好),但方差会升高(过拟合风险变大)。

  • 模型变简单:方差会降低(更稳定),但偏差会升高(欠拟合)。

五、单层网络:分类

5.1判别函数

判别函数有如下两种:

1、二分类

用一条「线性判别函数」把两类数据分开

判别函数:y(x)=w^Tx+w_0

决策规则:

  • y(x)<0→ 归为 C_1 类

  • y(x)≥0→ 归为 C_2 类

2、多分类

多分类如果还是采用上述规则(使用K-1条或者K(K-1)条线划分),很容易出现模糊区,即一个输出被判为多个C类

所以多分类可通过K个线性函数组成的单个K类判别式,y_k(x)=w_k^Tx+W_{k0}

决策规则:

  • 对输入点 x,计算所有y_k(x) 的值,

  • 选择值最大的那个 y_k 对应的类别 C_k

多分类变量存储采用1-of-K编码方案,t=(0,1,0,0,0)^T

5.2训练方式

1、最小二乘法

同样采用第四章的最小二乘法形式应用于分类问题,通过用1-of-K 编码和最小化平方误差来训练线性判别函数。形式简单但近似效果差,存在明显局限性。

局限性:对异常值很敏感,鲁棒性差。解释如下:↓

由于采用的是平方和误差函数,对离决策边界远的点赋予了过高的权重。加了几个离群点后,就会被 "过度惩罚",决策边界被拉歪了

最小二乘法失败的根本原因是高斯分布假设和分类问题的二进制目标分布不匹配

5.3决策理论

类似第四章的决策,会把预测分为「推理」和「决策」两个阶段

  1. 如果只是为了减少错误率,决策时应选择后验概率最高的类。

  2. 当分类的目标还要考虑不同错误的后果差异,通过损失函数 来形式化这个问题,最优解是最小化预期损失

  3. 对于后验概率很低的样本,设置阈值 θ,不强行分类,而是选择 "拒绝",以此提高最终分类的准确率。

5.4推理与决策

分类问题有三种解决方式:

  • 1、判别函数方法:不建模任何概率,直接输出类别

    • 输入 x → 经过一个函数 f(x) → 直接输出类别标签(比如 0/1)
  • 2、判别式模型:直接建模条件概率 p(C_k|x),再决策

    • 输入 x → 输出每个类别的概率 → 选概率最大的类别
  • 3、生成式模型:建模每个类的件概率密度分布p(x|C_k) 和先验概率 p(C_k),再用贝叶斯求后验p(C_k|x),再决策

因为后两种方法(概率模型),都有后验概率,优势如下:

  • 降低风险:后验概率支持灵活修改损失矩阵(如不同错误代价变化),只需调整决策规则即可; 而判别函数方法一旦损失矩阵变化,必须重新训练整个模型。

  • 实现拒绝选项:利用后验概率可设置拒绝准则,使误分类率或预期损失最小化 判别函数方法无法判断样本置信度,无法实现这一功能。

  • 补偿不平衡的类先验

    解决训练数据和真实场景数据分布不一致的问题,比如癌症筛查,真实人群中癌症的患病率很低,但为了训练模型,我们可能会用一个 "平衡数据集"(正常和癌症样本各一半)来训练,直接用这个平衡数据集训练出来的模型,会把 "先验概率" 当成 50%。只有知道后验概率 (p(C_k|x)),我们才能通过贝叶斯定理,把模型在平衡数据集上学到的概率,修正回真实世界的概率分布。 判别函数方法做不到这一点。

  • 模型整合

    后验概率方便我们把多个子模型的结果组合起来。复杂任务有多个数据源,需要分别用不同的模型处理,每个模型都输出一个后验概率p(C_k|x_I) 和 p(C_k|x_B),我们就可以利用概率规则,把它们整合起来,得到最终的后验概率 p(C_k|x_I, x_B)。

    (概率规则:条件独立性假设(朴素贝叶斯思想)两个数据是相互独立的。基于这个假设,我们就能把两个模型的结果相乘,再结合先验概率,得到最终的后验概率。)

5.5生成分类器
5.5.1生成分类器

生成分类器用来建立生成式模型(先建模p(x|C_k) 和 p(C_k),再用贝叶斯算 p(C_k|x))

首先是二分类的生成式模型,步骤是:

  • 1、先建模类条件概率密度 p(x|C_k) 和先验 p(C_k),再用贝叶斯定理算后验概率 p(C_1|x)。

    • 分子:先验(原因C_1出现的概率) × 条件概率(原因C_1条件下结果x出现的概率)

    • 分母:两个类别的 "总证据"(结果x出现的总概率)

  • 2、把上述的后验公式化为 sigmoid 函数的形式(只是换了一种写法,本质还是后验概率)

    • 把任意实数压缩到 0,1,用于二分类的概率输出,是贝叶斯后验概率的变形形式

    • a = \ln \frac{p(x|C_1)p(C_1)}{p(x|C_2)p(C_2)}

    • 对称性:\sigma(-a) = 1 - \sigma(a),所以类别 2 的概率就是 1-\sigma(a)。完美适配二分类的概率需求。

其次考虑多个类的生成式模型:

  • 后验函数计算类似,化为sigmoix函数的形式

    • softmax 用的是归一化,观察分子分母会发现它天然满足 "所有类别的概率和为 1"
5.5.2连续输入

当我们假设每个类的样本服从同一个协方差的高斯分布:p(x|C_k) \sim \mathcal{N}(\mu_k, \Sigma)

把 p(x|C_k)代入之前的 a = \ln \frac{p(x|C_1)p(C_1)}{p(x|C_2)p(C_2)}时,相互抵消。最后剩下的 (a(x)) 就变成了 x 的线性函数:a(x) = w^T x + w_0。因此,二分类的后验概率就变成了:p(C_1|x) = \sigma(w^T x + w_0)。多分类也满足p(C_k∣x)=softmax(w_k^Tx+w_k0)

关键结论决策边界是线性的(对应第二张图)

5.5.3最大似然解

为什么需要最大似然解呢?

由上我们知道,在「共享协方差的高斯假设」下,二分类的后验概率可以写成线性回归形式

但这里的 w、w_0里,都依赖于模型的三个参数:

  • 类均值 \mu_1, \mu_2

  • 共享协方差矩阵 \Sigma

  • 类先验概率 p(C_1)=\pi、p(C_2)=1-\pi

最大似然解怎么使用呢?

最大似然估计的思路很简单:找到一组参数,使得「当前数据集被模型生成出来的概率(似然)」最大。

对应我们的场景,就是:找到 \pi, \mu_1, \mu_2, \Sigma,让所有样本的生成概率最大。

解法如下:

  1. 写出单个样本的生成概率p(x_n, C_1) = p(C_1)p(x_n|C_1) = \pi \mathcal{N}(x_n|\mu_1, \Sigma)

  2. 写出整个数据集的似然函数=所有样本生成概率的乘积

  3. 取对数,求导,针对每个参数分别求导为0 ,得到它们的最大似然估计。

如果是离散输入(朴素贝叶斯假设),把类条件概率写成每个特征概率的乘积;取对数后,得到的 a_k(x)​ 依然是 x 的线性函数

指数族分布的通用形式

p(x|\lambda_k,s) = \frac{1}{s}h\left(\frac{1}{s}x\right)g(\lambda_k)\exp\left\{\frac{1}{s}\lambda_k^T x\right\}

前面两种情况(共享协方差的高斯、朴素贝叶斯的离散)都得到了线性模型。这不是巧合,而是它们都属于指数族分布。(离散类别 C_k下的条件概率是:p(x_i|C_k) = \mu_{ki}^{x_i} (1-\mu_{ki})^{1-x_i})

为什么指数族会得到线性模型

把这个形式代入 a(x) = \ln\frac{p(x|C_1)p(C_1)}{p(x|C_2)p(C_2)}时:

  1. 非指数部分的项会抵消掉。

  2. 剩下的指数部分,取对数后就变成了 (\lambda_1-\lambda_2)^T x,这是 x 的线性项。

  3. 加上常数项,最终 (a(x)) 就是一个完整的线性函数。

  4. 因此,p(C_1|x) = \sigma(a(x)),后验概率依然由线性函数控制。

5.6判别分类器
5.6.1概述

判别分类器用来建立判别式模型(直接建模 p(C_k∣x),一步到位做分类)

人为强行设定:直接用 线性函数 + 激活函数 拟合后验

1、激活函数

线性模型的输出范围为 (-\infty,+\infty),不适合表示分类问题中的后验概率。通过引入激活函数 f(\cdot),可将线性输出映射到 0,1 区间,从而得到概率形式的预测结果。(被称为广义线性模型)

2、固定基函数

当数据是非线性的(比如环形分布的)用固定基函把数据映射到新空间,让线性模型能解决非线性问题。保留线性模型的所有优点,实现简单

5.6.2逻辑斯谛回归

对比5.6与5.5的模型训练方法

对比项 逻辑回归(判别式) 高斯生成模型(生成式)
参数数量 与特征数 M 线性相关,仅需学习权重 需要估计均值、协方差,参数为 O(M^2) 级别
高维场景 参数少、计算高效,维度越高优势越大 维度升高参数爆炸,计算代价大

怎么训练逻辑回归?(最大似然估计)

  • 写出似然函数,求解权重 w。

    • 得出模型为\quad y_i=\sigma(\boldsymbol w^\mathrm{T}x_i)。含义如下:

      复制代码
      先用线性函数给样本打一个分数
      再用 Sigmoid 压缩成 0~1 的概率
      代表:这个样本属于类别i的预测概率
    • 单个概率:p_i = y_i^{t_i}(1-y_i)^{1-t_i},(t_i只取0或1)

    • 写出全体似然:L = \prod p_i计算参数

  • sigmoid 非线性函数导致无法使用最小二乘法计算,以下是两种常用训练方法

    • 迭代重加权最小二乘法(IRLS):专门针对逻辑回归的凸损失函数设计的方法,效率很高,局限性大

    • 随机梯度下降(SGD):通用的迭代优化方法

(+依靠 sigmoid 导数的特殊性质:\sigma'(a)=\sigma(a)(1-\sigma(a))简化梯度计算,方便迭代更新参数。)

如果你的数据是线性可分 的(两类数据完全不重叠,一条直线就能完美分开)上述方法会出现过拟合的问题,所以还要在损失函数里加一个正则化项(比如 L2 正则),限制权重的大小

5.6.3多类逻辑斯谛回归

逻辑回归在多分类问题上的扩展。

  1. 多分类任务包含 K 个类别,为每一类分配独立权重参数 \boldsymbol w_1,\boldsymbol w_2,\dots,\boldsymbol w_K。

  2. 各类别的预测概率:y_{i1},y_{i2},\dots,y_{iK}。

  3. 独热标签匹配多分类输出:第 k 类 \Rightarrow\; t_{ik}=1,其余全为 0

  4. 得出 Softmax模型为y_{ik} = p(C_k|x_i) = \frac{\exp(\boldsymbol w_k^\mathrm{T}x_i)}{\sum_{j=1}^K \exp(\boldsymbol w_j^\mathrm{T}x_i)}

  5. 构造多分类单样本似然:p_i = \prod_{k=1}^K y_{ik}^{\,t_{ik}}

  6. 全体似然:L = \prod_{i=1}^N p_i

随机梯度下降SGD 完整流程:

本质:最大化似然 \boldsymbol{\iff} 最小化 负对数似然

1、把「似然」变成「损失」,全体似然取负对数,得到是总损失(多分类交叉熵损失

2、找「该往哪改权重」=求解损失函数的梯度

梯度公式:\nabla_{\boldsymbol w_j} E = \sum_{n=1}^N (y_{nj}-t_{nj})x_n(对softmax函数求导得)

\nabla_{\boldsymbol w_j} E \boldsymbol{\iff} 损失 E 对权重 w_j 的变化方向

\boldsymbol{\iff}(预测概率 - 真实答案)×第 n 个样本的原始特征数据的求和

\boldsymbol{\iff} 把所有样本的「误差 × 特征」全部加在一起得到:全局总的修正方向

3、依靠梯度,使用 SGD 迭代更新权重参数,完成模型训练。

SGD 实际操作(最简):w_{\text{新}} = w_{\text{旧}} - 学习率 \times 梯度

多分类逻辑回归本质就是一个无隐藏层的单层神经网络:输入为样本特征,输出为各类别概率,权重为待训练参数。

5.6.4 Probit 回归

除了逻辑回归(Sigmoid),我们还可以用Probit 回归来做二分类;

它和逻辑回归唯一的区别就是激活函数不同:

  • 逻辑回归:用 Sigmoid函数,尾部衰减是指数级的(e−x),对极端值没那么敏感。

  • Probit 回归:用正态分布的累积分布函数,尾部衰减是更快的高斯级(e−x2),更敏感

所以,它也属于广义线性模型,也可以用最大似然法训练参数,步骤和逻辑回归完全一样。

5.6.5 规范连接函数

这是一个更通用的框架,把逻辑回归、probit 回归等都统一起来,属于广义线性模型(GLM)的一部分。

  • 核心:规范连接函数让广义线性模型的梯度极大简化。

  • 原理:当 f^{-1}(y)=\psi(y)时,f'(a)\psi'(y)=1,消去了复杂的导数项。

5.7分类器与ROC曲线

分类器精度来评判模型好坏

由于数据不平衡(比如癌症筛查)的场景里,准确率很可能误导人

真实 \ 预测 无癌 患癌
无癌 真阴性 990 假阳性 9
患癌 假阴性 0 真阳性 1

比如1000 个人里只有 1 个患癌,使用一个 "所有人都没癌" 的分类器,准确率高达 99.9%,但完全没用。

我们不再看 "整个矩阵的比例",而是从混淆矩阵的行(真实类别)或列(预测类别)中提取指标,精准衡量模型在特定类别上的表现

  • 准确率:99.1%

  • 癌症检出率:1/1=100%

  • 检测可靠程度:1/10=10%

  • 健康人误判率:9/1000=0.9%

该模型特点:零漏诊、有误报

由于分类器可以通过调整判定阈值 ,变严格或变宽松,为了完整对比一个模型所有标准下的整体水平,引入 ROC 曲线,就是把「从极松到极严」的所有标准,对应的结果都画出来,帮你看这个分类器整体的 "底子" 好不好。

纵轴(Y 轴):癌症患者里,被成功查出来的比例。越高越好

横轴(X 轴):健康人里,被误判为患癌的比例。越低越好

对角线:瞎猜的。(曲线如果在对角线下面,说明它比瞎猜还差)

1、AUG分数

AUC 就是 ROC 曲线下面的面积,取值在 0~1 之间。ROC 曲线画得越完美,AUC 就越高,模型能力越强。

ROC、AUC 用来评价模型整体上限

2、F分数

但有时候你需要一个单一的数字来总结模型在当前阈值下的表现,这时候就用 F 分数。

它是精确率召回率 的 "调和平均数",公式如下

F 分数同时考虑这两个指标,取值 0~1,越接近 1 越好。

六、深度神经网络

6.1 固定基函数的局限性

用于回归的线性基函数模型理论上讲可以用足够多的基函数模拟出任何需要的函数。但是它存在一个重大缺陷,那就是基函数是固定的、手动定义的,和数据无关,在高维复杂场景下会失效。

6.1.1维度诅咒

当数据维度变高,这些固定基函数的数量会爆炸式增长

对于以下三阶多项式:

  • 单变量y(x) = w_0 + w_1x + w_2x^2 + w_3x^3 参数数量:4 个

  • 两变量

    y(x_1,x_2) = w_0 + w_1x_1 + w_2x_2 + w_{11}x_1^2 + w_{12}x_1x_2 + w_{22}x_2^2 + w_{111}x_1^3 + w_{112}x_1^2x_2 + w_{122}x_1x_2^2 + w_{222}x_2^3

参数除了每个变量自己的 1 次、2 次、3 次项,还多了变量之间的交叉项

参数数量为组合数,会随着维度 D 和阶数 M,会按O(D^M)的速度增长

缺点:模型很大,不仅参数都没有足够多的数据训练,甚至容易过拟合


6.1.2高维空间

高维空间里数据分布有两个关键反直觉现象,让手动设计基函数变得几乎不可能:

  1. 超球体的大部分体积,都集中在靠近表面的 "薄壳" 里

  2. 高维高斯分布的大部分概率质量,也集中在离中心特定距离的 "环形薄壳" 里

这些现象直接导致了高维数据分布的稀疏性,给传统机器学习模型带来巨大挑战。

高维空间建模的优势:原本线性不可分的数据,在更高维空间中可能变得线性可分。这是核方法、神经网络等模型的核心思路之一。


6.1.3数据流行

真实数据往往分布在低维的 "流形" 上,固定基函数很难适配这种复杂的内在结构。

第一例

一张手写数字 "5" 的图像,比如 28×28 像素,分布在 784 维空间里的一个3 维非线性流形上。

每个像素是一个维度,共784维。但有效自由度" 只有 3 个:数字的位置、大小、旋转角度

第二例

自然图像:相邻像素之间有强相关性,比如物体边缘、纹理,因此只覆盖了高维像素空间里的一小部分。

随机生成的图像:每个像素都是独立采样的,只是一团像素点。

这进一步说明:真实数据只占高维空间的极小一部分,而且分布在特定的流形上

神经网络不需要适配整个高维空间,只使用与数据流形本身相关的基函数。

这样一来,基函数不在和像素的维度相关,从而避开了维度诅咒。


6.1.4数据依赖的基函数

传统固定基函数在高维空间中受维度诅咒限制,因此需要数据依赖的基函数,即从训练数据中学习 / 生成基函数,适配数据所在的低维流形。

  • 径向基函数(RBF):以每个训练样本为中心生成基函数,自动适配数据流形,但计算成本随数据集增大而爆炸,且易过拟合。

  • 支持向量机(SVM):通过选择支持向量减少基函数数量,但仍受限于数据集规模,且无法自然处理多分类。

这类方法最终被深度神经网络取代,后者能高效利用大数据集,并学习到关键的层次化表示,实现更高的预测准确性。


6.2 多层网络

正式介绍前馈神经网络(MLP)的基础结构(前面的数据依赖基函数):

多层神经网络就是 "线性组合 + 可微非线性激活函数" 的 递归堆叠,"单个隐藏神经元" 就是一个基函数,而每一层就是一组基函数,它们会自动适配数据所在的流形。

6.2.1 参数矩阵

用矩阵形式表示网络的权重和偏置,把线性组合写成矩阵乘法的形式。

在这里为了理论推导的简洁,给每一层的输入向量,加一个固定为 1 的虚拟特征,再把偏置项当成这个虚拟特征的权重,塞进权重矩阵的第一列。

例子:

a_j = w_{j1}x_1 + w_{j2}x_2 + w_{j0} 要写成 a_j =\begin{bmatrix} 1 \\ x_1 \\ x_2 \end{bmatrix}\begin{bmatrix} w_{偏置} & w_{j1} & w_{j2} \end{bmatrix}

公式可以不写单独的偏置项,多层网络的前向传播可以简化表达式

教材的合并写法是只为了推导方便

6.2.2 通用近似

对于大部分激活函数,单隐藏层的前馈网络就可以逼近任意函数,而且精度可以做到任意高。因此,神经网络可以被视为 "通用近似器"。

但是定理只告诉我们 "这样的单层网络存在",但没有方法找到这些参数。

6.2.3 隐藏单元激活函数

隐藏单元的激活函数必须是非线性的,否则该隐藏单元会没有作用

以下是几种常见的激活函数

传统 Sigmoid /tanh :当输入绝对值很大时,梯度会指数级趋近于 0,导致梯度消失

Hard tanh:分段线性实现,计算比原版 tanh 更快,但是未解决问题

Softplus:缓解了梯度消失未解决,实际应用普及率低

ReLU : 解决梯度消失。成为现代激活函数的主流。负输入梯度为 0,易出现 "死亡 ReLU" 问题(部分神经元永久不更新)

Leaky ReLU:给负输入保留小梯度,解决 "死亡 ReLU" 问题引入超参数 α,需调参,实现略复杂

6.2.4 权重空间的对称性

讲神经网络里的权重存在冗余(比如隐藏层神经元互换,模型输出不变),这是训练时需要注意的特性。

相关推荐
甲维斯2 小时前
这个帅啊!真·无限流冒险游戏!
人工智能
勤自省2 小时前
OpenCV 30 讲学习总结:从零基础到机器人视觉
人工智能·opencv·计算机视觉·机器人
腾视科技AI2 小时前
安全驾驶 智在掌控|腾视科技ES06车载智能终端,为车辆运营赋能
大数据·人工智能·科技·安全·ai·边缘计算·车载智能终端
chsmiao2 小时前
深度学习之概率论
人工智能·深度学习·概率论
SEO_juper2 小时前
2026 五大高毛利细分赛道:关键词挖掘、建站模板、内容布局完整方案
大数据·人工智能·seo·geo·谷歌优化·2026·毛利
澹锦汐2 小时前
轻量化低代码一周交付:国外支付渠道集成实战细节
人工智能
大霸王龙2 小时前
机器人维修工程师
人工智能·数据挖掘·机器人
SLD_Allen2 小时前
同花顺Skill广场,为金融AI实战注入新动能!
大数据·人工智能·金融