40、核函数设计:从理论到应用

核函数设计:从理论到应用

1. ANOVA核函数

ANOVA核函数在核函数设计中有着独特的地位。当参数 (D = N) 时,核函数 (k) 等于张量积 (k^{(1)}\otimes\cdots\otimes k^{(N)});而当 (D = 1) 时,(k) 则变为直接和 (k^{(1)}+\cdots + k^{(N)})。对于 (1 < D < N) 的中间值,核函数处于张量积和直接和之间。

ANOVA核函数通常使用适中的 (D) 值,它指定了我们感兴趣的属性 (x_{id}) 之间的交互顺序。在计算时,需要对考虑 (D) 阶交互的众多项进行求和。不过,通过利用递归过程进行核评估,可以降低计算成本。

在多维支持向量回归问题中,ANOVA核函数表现出色。例如,输入为 (N) 维向量时,所有的 (k^{(n)}) 都选择为具有无限节点的一维线性样条核函数,其形式为:
[k^{(n)}(x,x’) = \frac{\min(x,x’)^3}{3}+\frac{\min(x,x’)^2|x - x’|}{2}+1+xx’,\quad n = 1,\cdots,N]
需要注意的是,建议为 (k^{(n)}) 选择一个很少或从不取零值的核函数,因为单个零项会消除乘积项。此外,ANOVA核函数是 (R) - 卷积的特殊情况。

2. 字符串核函数

支持向量机在文本分类中常用的一种方法是词袋表示法。它将给定文本映射为稀疏向量,向量的每个分量对应一个单词,当相关单词出现在文本中时,该分量设为 1(或其他数字)。利用高效的稀疏表示,两个这样的向量之间的点积可以快速计算,这个点积就是一个有效的核函数,称为稀疏向量核。然而,它的一个缺点是没有考虑文档的词序。

为了更有效地处理字符串数据,提出了一种更复杂的方法。其基本思想是通过比较字符串包含的子串来衡量它们的相似性,子串不必连续,且子串首尾元素距离越远,相似性权重越低。

下面详细介绍这种核函数:
- 定义相关集合和符号 :考虑有限字母表 (\Sigma),长度为 (n) 的所有字符串集合 (\Sigma_n),以及所有有限字符串集合 (\Sigma^ =\bigcup_{n = 0}^{\infty}\Sigma_n)。字符串 (s\in\Sigma^ ) 的长度记为 (|s|),元素记为 (s(1),\cdots,s(|s|)),(s) 和 (t\in\Sigma^ ) 的连接记为 (st)。
-
构建子序列 :给定索引序列 (i=(i_1,\cdots,i_{|u|})),其中 (1\leq i_1<\cdots < i_{|u|}\leq|s|),定义子序列 (u = s(i)=s(i_1)\cdots s(i_{|u|})),子序列在 (s) 中的长度 (l(i)=i_{|u|}-i_1 + 1)。
-
定义特征空间和特征映射 :长度为 (n) 的字符串构建的特征空间定义为 (\mathcal{H} n=\ell^2(\Sigma_n))。对于每个 (u\in\Sigma_n),特征映射的坐标表示为 ([\Phi_n(s)]_u=\sum {i:s(i)=u}\lambda^{l(i)}),其中 (0 < \lambda\leq1) 是衰减参数。
-
定义字符串核函数 *:由映射 (\Phi_n) 诱导的核函数形式为 (k_n(s,t)=\sum_{u\in\Sigma_n}[\Phi_n(s)] u[\Phi_n(t)]_u=\sum {u\in\Sigma_n}\sum_{(i,j):s(i)=t(j)=u}\lambda^{l(i)}\lambda^{l(j)})。为了考虑不同长度的字符串,使用线性组合 (k=\sum_{n}c_nk_n),其中 (c_n>0)。同时,建议对特征映射进行归一化,即使用 (\frac{\Phi(t)}{|\Phi(t)|}),对于核函数则使用 (\frac{k(s,t)}{\sqrt{k(s,s)k(t,t)}})。

为了实际计算 (k_n),定义 (k_i’(s,t)=\sum_{u\in\Sigma_i}\sum_{(i,j):s(i)=t(j)=u}\lambda^{|s|+|t|-i_1 - j_1+2}),并通过以下递归式计算:
[
\begin{cases}
k_0’(s,t)=1,\quad \text{对所有 }s,t\
k_i’(s,t)=0,\quad \text{如果 }\min(|s|,|t|)<i\
k_i(s,t)=0,\quad \text{如果 }\min(|s|,|t|)<i\
k_i’(sx,t)=\lambda k_i’(s,t)+\sum_{j:t_j=x}k_{i - 1}’(s,t[1,\cdots,j - 1])\lambda^{|t|-j + 2},\quad i = 1,\cdots,n - 1\
k_n(sx,t)=k_n(s,t)+\sum_{j:t_j=x}k_{n - 1}’(s,t[1,\cdots,j - 1])\lambda^2
\end{cases}
]

3. 局部改进核函数
3.1 图像处理中的局部改进核函数

在支持向量机分类器中使用核函数 (k(x,x’)=\langle x,x’\rangle^d) 会隐式地在所有可能的 (d) 个像素乘积的空间中形成决策边界。但在实际图像中,短距离的相关性比长距离的相关性更可靠。因此,定义了核函数 (k_{d_1,d_2}^p):
1. 计算第三张图像 :计算 (x) 和 (x’) 的逐像素乘积得到 ((x\odot x’))。
2. 采样 :使用直径为 (p) 的金字塔形感受野对 ((x\odot x’)) 进行采样,以所有位置 ((i,j)) 为中心,得到值 (z_{ij}=\sum_{i’,j’}w(\max(|i - i’|,|j - j’|))(x\odot x’) {i’j’})。其中,一种可能的加权函数 (w(n)=\max(q - n,0)),此时 (p = 2q+1) 是金字塔形感受野的宽度。
3. 考虑局部相关性 :将每个 (z
{ij}) 提升到 (d_1) 次幂,以考虑金字塔范围内的局部相关性。
4. 考虑长距离相关性 :将 (z_{ij}^{d_1}) 在整个图像上求和,并将结果提升到 (d_2) 次幂,以允许 (d_2) 阶的长距离相关性。

得到的核函数阶数为 (d_1d_2),但除非 (d_1 = 1),否则它不包含 (d_1d_2) 个像素的所有可能相关性。当 (d_1 = 1) 时,就恢复为标准的 (d_2) 次完全多项式核函数。

在小MNIST数据库上的实验结果表明,使用金字塔形感受野核函数 (k_{d_1,d_2}^p)(直径 (p = 9),(d_1d_2 = 4))可以提高分类性能。例如,(d_1 = d_2 = 2) 时,错误率为 (3.1\%);(d_1 = 4),(d_2 = 1) 时,错误率为 (3.4\%)。而使用图像平移生成虚拟支持向量的方法错误率为 (2.8\%),将两者结合可以得到最佳性能,错误率为 (2.0\%)。具体结果如下表所示:
| 分类器 | 测试错误率(%) |
| ---- | ---- |
| SV(4次完全多项式核) | 4.0 |
| 半局部核 (k_{2,2}^9) | 3.1 |
| 纯局部核 (k_{4,1}^9) | 3.4 |
| 带平移的虚拟SV | 2.8 |
| 带 (k_{2,2}^9) 的虚拟SV | 2.0 |

下面是图像处理局部改进核函数计算的流程图:

graph TD;
    A[输入图像x和x'] --> B[计算x⊙x'];
    B --> C[使用金字塔形感受野采样];
    C --> D[计算zij];
    D --> E[zij提升到d1次幂];
    E --> F[求和并提升到d2次幂];
    F --> G[输出核函数值];
3.2 DNA起始密码子识别中的局部改进核函数

在计算生物学中,识别翻译起始位点(TIS)是一个关键问题。可以将寻找TIS的任务建模为分类问题,使用支持向量机进行分类。在TIS识别任务中,结合生物学知识设计合适的核函数非常有用。以下是三种对核函数的修改:
- 局部改进DNA核函数 :在每个序列位置,在长度为 (2l + 1) 的小窗口内局部比较两个序列。对匹配的核苷酸进行求和,并乘以从窗口边界到中心递增的权重 (\omega_j),将结果提升到 (d_1) 次幂。
[win_p(x,x’)=\left(\sum_{j=-l}^{l}\omega_jmatch_{p + j}(x,x’)\right)^{d_1}]
其中,(match_{p + j}(x,x’)) 在位置 (p + j) 的核苷酸匹配时为 1,否则为 0。然后将 (win_p) 计算的窗口得分在整个序列长度上求和,并将结果提升到 (d_2) 次幂,得到核函数 (k(x,x’)=\left(\sum_{p = 1}^{l}win_p(x,x’)\right)^{d_2})。这种核函数强调局部相关性。
- 密码子改进核函数 :除了计算对应位置的匹配核苷酸外,还计算偏移三个位置的匹配。它反映了编码序列的密码子结构,通过显式推导单项式特征可以证明它是一个可接受的核函数。
- 使用Salzberg得分的局部核函数 :用一系列对数奇数得分表示每个数据点,对应每个位置的两个概率。然后类似于局部改进核函数进行处理,用这些得分序列替换稀疏表示,进一步提高了分类性能。

不同学习算法在起始密码子分类上的错误率比较如下表所示:
| 算法 | 核参数 | 错误率 |
| ---- | ---- | ---- |
| 神经网络 | - | 15.4% |
| Salzberg方法 | - | 13.8% |
| SVM,简单多项式((d = 1)) | - | 13.2% |
| SVM,局部改进核((d_1 = 4,l = 4)) | - | 11.9% |
| SVM,密码子改进核((d_1 = 2,l = 3)) | - | 12.2% |
| SVM,Salzberg核((d_1 = 3,l = 1)) | - | 11.4% |

综上所述,这些经过工程设计的核函数在DNA起始密码子识别任务中表现出色,优于神经网络和原始的Salzberg方法,减少了高达25%的错误分类数量。同时,在图像处理和DNA起始密码子识别等不同领域,局部改进核函数都展示了其有效性和实用性。通过结合不同类型的先验知识,可以进一步提高支持向量机的性能。在未来的研究中,可以继续探索如何更好地设计核函数,以适应更多复杂的应用场景。

核函数设计:从理论到应用

4. 自然核函数
4.1 自然核函数的基本概念

生成模型技术如隐马尔可夫模型(HMM)、动态图形模型或专家混合模型等,能为处理缺失和不完整数据、不确定性或可变长度序列提供一个有原则的框架。而判别模型如支持向量机(SVM)和其他核方法已成为应用机器学习的标准工具。将两者优势结合的一个有前景的方法是设计受生成模型启发的核函数。

为了定义从生成模型导出的一类核函数,需要引入信息几何的一些基本概念。考虑一族由 (\theta = (\theta_1,\cdots,\theta_r)) 平滑参数化的生成模型 (p(x|\theta)),这些模型在所有概率密度函数的空间中形成一个流形(称为统计流形)。关键思想是利用这个流形上的几何结构,为训练模式 (x_i) 获得一个诱导度量。

使用对数似然函数 (l(x,\theta)=\ln p(x|\theta)) 代替直接处理 (p(x|\theta))。(l(x,\theta)) 的导数映射称为得分 (V_{\theta}(x)=(\nabla_{\theta_1}l(x,\theta),\cdots,\nabla_{\theta_r}l(x,\theta))=\nabla_{\theta}\ln p(x|\theta)),其坐标被视为切向量的“自然”基。例如,若 (p(x|\theta)) 是正态分布,一种可能的参数化是 (\theta = (\mu,\Sigma)),其中 (\mu) 是均值向量,(\Sigma) 是高斯的协方差矩阵。(V_{\theta}(x)) 分量的大小指定了 (\theta) 的特定分量(即特定模型参数)的变化对生成对象 (x) 的概率的影响程度。

由于 (\ln p(x|\theta)) 的流形是黎曼流形,在其切空间(得分的空间)上定义了一个度量,其度量张量由 Fisher 信息矩阵的逆给出:
[I = E_p[V_{\theta}(x)V_{\theta}(x)^T],\quad I_{ij}=E_p[\nabla_{\theta_i}\ln p(x|\theta)\nabla_{\theta_j}\ln p(x|\theta)]]
这里 (E_p) 表示关于密度 (p) 的期望。这个度量称为 Fisher 信息度量,它通过得分映射 (V_{\theta}(x)) 和 (I^{-1}) 来衡量一对示例 (x_i) 和 (x_j) 之间生成过程的差异。

定义 13.8(自然核):设 (M) 是一个严格正定矩阵,称为自然矩阵。对应的自然核定义为 (k_{nat}^M(x,x’) = V_{\theta}(x)^TM^{-1}V_{\theta}(x’)=\nabla_{\theta}\ln p(x|\theta)^TM^{-1}\nabla_{\theta}\ln p(x’|\theta))。当 (M = I) 时,得到 Fisher 核;当 (M = 1) 时,得到一个称为普通核的核函数。

4.2 自然核函数的正则化算子

在 SVM 中,最小化一个正则化风险泛函,其中复杂度项在特征空间表示中可以写成 (|w|^2),在输入空间考虑函数时可以写成 (|\Upsilon f|^2)。核函数 (k) 和正则化算子 (\Upsilon) 之间的联系由 (k(x_i,x_j)=\langle(\Upsilon k)(x_i,\cdot),(\Upsilon k)(x_j,\cdot)\rangle) 给出。

为了分析自然核函数 (k_{nat}^I) 的性质,通过找到一个相关的算子 (\Upsilon_{nat}^M) 使得上述关系成立,来利用核函数和正则化算子之间的联系。选择在实值函数的 (L^2(p)) 空间中的点积 (\langle f,g\rangle=\int f(x)g(x)p(x|\theta)dx),因为这会导致相应正则化算子的简单形式。

命题 13.9(自然核的正则化算子):给定一个严格正定矩阵 (M)、一个生成模型 (p(x|\theta)) 和对应的自然核 (k_{nat}^M(x,x’)),(\Upsilon_{nat}^M) 是一个等价的正则化算子,如果它满足 (M=\int(\Upsilon_{nat}^M\nabla_{\theta}\ln p(x|\theta))(\Upsilon_{nat}^M\nabla_{\theta}\ln p(x|\theta))^Tp(x|\theta)dx)。

证明过程如下:将 (k_{nat}^M(x,x’)) 的定义代入 (k(x_i,x_j)=\langle(\Upsilon k)(x_i,\cdot),(\Upsilon k)(x_j,\cdot)\rangle) 中,经过一系列推导可以得到上述必要条件。

对于 (M = I) 的特殊情况(Fisher 核),将 (\Upsilon_{nat}^I = 1) 代入上述等式右边,得到 Fisher 信息矩阵的定义。这意味着 Fisher 核对应的正则化器等于估计函数的平方 (L^2(p)) 范数 (|\Upsilon f|^2=|f|^2_{L^2(p)})。

对于 (M = 1) 的情况,当 (p(x|\theta)) 属于指数族密度时,即 (\ln p(x|\theta)=\langle\theta,x\rangle-\alpha(x)+c_0)(其中 (\alpha(x)) 是任意函数,(c_0) 是归一化常数),相关的正则化算子是梯度算子 (\nabla_x),正则化项可以写成 (|\Upsilon f|^2=|\nabla_x f(x)|^2_p=\int|\nabla_x f(x)|^2p(x|\theta)dx),它通过一阶导数的平滑性来偏好平滑函数。

4.3 自然核函数的特征映射

回顾通过离散基函数集合构造核函数的方法 (k(x_i,x_j)=\sum_{n}d_n\gamma_n\varphi_n(x_i)\varphi_n(x_j)),其中 (d_n\in{0,1}) 且 (\sum_{n}d_n\gamma_n) 收敛。设置所有 (d_n = 1) 意味着选择保留由 (\varphi_n) 张成的整个空间。了解 (\varphi_n) 和 (\gamma_n) 有助于理解核函数的正则化性质。

命题 13.12(自然核的特征映射):设 (I) 是 Fisher 信息矩阵,(M) 是自然矩阵,(s_i,\Lambda_i) 是 (M^{-\frac{1}{2}}IM^{-\frac{1}{2}}) 的特征系统。核函数 (k_{nat}^M(x,x’)) 可以分解为特征系统 (\varphi_i(x)=\frac{1}{\sqrt{\Lambda_i}}s_i^TM^{-\frac{1}{2}}\nabla_{\theta}\ln p(x|\theta)) 和 (\gamma_i=\Lambda_i)。

证明过程基于 (s_i) 是正交基((1=\sum_{i}s_is_i^T))以及 (k_{nat}^M) 的定义,通过一系列计算可以证明 (\varphi_i) 是正交的。

Fisher 核 (k_{nat}^I) 的特征值都是 1,这反映了矩阵 (I) 对得分 (\nabla_{\theta}\ln(p(x|\theta))) 进行了白化处理。所有特征值相等的结果有一些重要的后果。标准的 VC 维数界表明,线性函数类的容量由 (R^2\Lambda^2) 界定,其中 (R) 是包含数据的最小球体的半径(在特征空间中),(\Lambda) 是允许的权重向量的最大长度。最近的研究表明,相关积分算子的谱和 Gram 矩阵 (k((x_i,x_j))_{ij}) 的谱可以用于制定更严格的泛化误差界。对于 Fisher 核,由于 Fisher 矩阵对得分进行了白化处理,不存在非各向同性的情况,这表明标准的各向同性 VC 界在这种情况下应该相当精确。此外,Fisher 核的平坦谱为比较不同模型提供了一种方法:如果为一组模型 (p(x|\theta_j)) 计算 Gram 矩阵,那么对于真实模型,期望所有的 (\gamma_i = 1),这可以用于模型选择。

5. 总结与展望
核函数类型 应用领域 特点
ANOVA 核函数 多维支持向量回归 通过参数 (D) 控制交互顺序,计算可利用递归过程降低成本
字符串核函数 文本分类 考虑字符串子串相似性,可处理不同长度字符串,有递归计算方法
局部改进核函数 图像处理、DNA 起始密码子识别 强调局部相关性,结合先验知识可提高性能
自然核函数 结合生成模型和判别模型优势 基于生成模型的几何结构,有特定的正则化和特征映射性质

从上述不同类型的核函数可以看出,核函数的设计在机器学习的多个领域都有着重要的应用。不同的核函数适用于不同的问题场景,并且可以通过结合先验知识和优化计算方法来提高性能。

在未来的研究中,可以进一步探索以下方向:
- 更复杂的应用场景 :随着数据的复杂性不断增加,如高维数据、多模态数据等,需要设计更合适的核函数来处理这些数据。
- 核函数的组合与融合 :尝试将不同类型的核函数进行组合,以充分发挥它们的优势,提高模型的性能。
- 自适应核函数设计 :根据数据的特点和问题的需求,自动调整核函数的参数,实现自适应的核函数设计。

下面是核函数设计与应用的整体流程图:

graph LR;
    A[问题定义] --> B[选择核函数类型];
    B --> C{是否需要先验知识};
    C -- 是 --> D[结合先验知识设计核函数];
    C -- 否 --> E[使用标准核函数];
    D --> F[训练模型];
    E --> F;
    F --> G[评估模型性能];
    G --> H{性能是否满足要求};
    H -- 是 --> I[应用模型];
    H -- 否 --> J[调整核函数参数或选择新的核函数];
    J --> F;

总之,核函数设计是一个充满挑战和机遇的研究领域,通过不断的探索和创新,可以为机器学习的发展带来新的突破。

相关推荐

VASP+Multiwfn+VMD静电势计算与可视化全流程解析

静电势是表征分子与材料表面电荷分布的关键物理量,它通过求解泊松方程,将电子密度与原子核电荷在空间中的贡献结合起来,直观揭示体系的电子富集与缺失区域。这一性质在理解化学反应活性、分子间相互作用(如氢键、卤键)以及材料表面性质方面具有重要价值。在计算材料科学与量子化学领域,基于第一性原理计算获得高精度电子结构数据后,如何将其转化为可直观分析的静电势图,是连接理论计算与物理解释的关键技术环节。本文聚焦于构建一条高效、可控的端到端工作流,详细解析如何利用VASP进行高精度电子密度计算,通过专业波函数分析软件Mult

weixin_33733810的博客 431

C#上位机与VisionPro通用框架:视觉标定、通信联动与现场排坑实战

工业自动化设备的上位机开发,往往面临流程控制、视觉检测、通信交互等环节的重复搭建。C#作为主流工业语言,配合VisionPro视觉软件,可通过通用框架设计将状态机调度、相机采集、标定算法与串口/扫码枪通信等底层能力模块化,从而大幅降低项目交付成本。其核心原理在于:将设备工艺差异封装至配置层,视觉流程通过CogToolBlock工具链与VPP模板复用,九点标定建立像素与机械坐标系的映射关系。该方案已在螺丝锁付、点胶定位等多类产线落地,尤其适用于批量交付、换型频繁的视觉设备场景。这套从实践中沉淀的框架思路,以及

weixin_31102231的博客 339

用Python实现斗地主游戏(终端版)

马上就要过年了 大家也都放假了吧 过年必不可少的活动 打牌! 今天带大家来写一份斗地主 (又是好多天没怎么更新,忙成狗啊) 那么实现一个斗地主呢 我们肯定要先完善卡牌系统 from collections import Counter import numpy as np import itertools def cmp_to_key(mycmp): 'Convert a cmp= function into a key= function' class K: def _

Miku_wx的博客 9856

GEOPHYSICS 投稿避坑指南:从格式规范到双盲评审的实战解析

本文详细解析了GEOPHYSICS期刊投稿的全流程避坑指南,从格式规范、数据声明到双盲评审的实战策略。特别强调了数学公式排版、图表制作标准以及投稿系统的隐藏关卡,帮助作者避免常见错误,提升投稿成功率。

weixin_30606461的博客 236

GameFramework框架详解之 Network网络框架

NetworkManager只负责维护NetworkChannel,实际的有种我们简历网络连接的也是NetworkChannel作为一个网路频道,这样管理起来比较方便,比如:一个游戏可能有多个网络连接,那么我们建立多个网络频道即可,或者当我们一个网络频道断线后,我们可以直接再新建一个,防止数据混乱。/// /// 网络管理器。/// /// 网络频道。/// 用户自定义网络错误事件。/// 检查是否存在网络频道。/// 获取网络频道。/// 获取所有网络频道。

TxNet 3366

YOLOv8安防监控实战:跌倒/闯入/徘徊实时检测(附TensorRT加速+声光报警部署代码)

精准性:针对跌倒/闯入/徘徊的行为特征优化,准确率达89.3%,误报率低于5次/天;实时性:TensorRT加速到50+FPS,报警延迟<1秒,满足安防“黄金响应时间”;低成本:无需专用AI芯片,RTX 3060或Jetson Orin就能跑,硬件成本比传统方案低60%;易部署:代码全开源,提供从模型训练到硬件联动的完整流程,2天即可搭起原型系统。如果你的安防监控还在“漏报误报”“响应慢”,建议先从跌倒检测的姿态过滤改起——用100张样本测试,再集成TensorRT加速,90%能看到明显改善。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 680

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 450

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能。本篇文章主要介绍如何使用xlwings对Excel表格进行多行多列数据设置和操作,并给出相应的源代码。接着,我们可以对这个范围内的所有单元格进行操作,如设置字体颜色、填充颜色、对齐方式等。以上就是使用xlwings对Excel表格进行多行多列数据操作和设置字体颜色、填充色和对齐方式的全部内容。最后,我们可以将数据写入到单元格中,也可以从单元格中读取数据。在Excel中,可以通过。

BUG?不存在的! 713

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 21、物联网网络的物理层安全技术详解
下一篇: 6、数字取证:挑战与解决方案深度剖析
sql99
博客等级 码龄19年 168粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值