PRML第一章读书小结

PRML 第一章PPT 模式识别与机器学习第一章PPT,详细,可以直接作为教学使用 立即下载

PRML第一章读书小结

    第一章用例子出发,较为简单的引入了概率论、模型、决策、损失、信息论的问题,作为机器学习从业者,读PRML除了巩固已有基础,还受到了很多新的启发,下面将我收到的启发总结如下。

1. 多项式曲线拟合问题

多项式拟合问题作为全书的第一个引例,通过此说明了很多关键的概念。

给定一个训练集,训练集由\(x\)的N次观测组成,记作\(\mathbf{x} \equiv\left(x_{1}, \cdots, x_{N}\right)^{T}\),对应了相应的观测值\(t\),记作\(\mathbf{t} \equiv\left(t_{1}, \cdots, t_{N}\right)^{T}\)。它们拥有了一个内在的规律,这个规律是我们想要学习的,但是同时独立的观察会被随机噪声所干扰。我们的目标是利用这个训练集预测输入变量的新值,我们需要隐式地发现内在的函数\(sin(2\pi x)\),由于有限的观察和噪声的,发现这一函数(\(sin(2\pi x)\))很难。

概率论提供了一个框架,用精确的数学形式描述这种不确定性。决策论让我们能够根据合适的标准,利用这种概率的表示,进行最优的预测。

我们经常用多项式函数进行曲线拟合,即\(y(x, \boldsymbol{w})=w_{0}+w_{1} x+w_{2} x^{2}+\ldots+w_{M} x^{M}=\sum_{j=0}^{M} w_{j} x^{j}\),系数的值\(w\)通过拟合训练数据的方式确定,M作为多项式的阶数是模型对比(model comparison)、模型选择(model selection)的重要问题的一个特例。拟合时,我们通过最小化误差函数(error function)的方法实现,一个简单的最小化误差函数如下:
\[ E(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{y\left(x_{n}, \boldsymbol{w}\right)-t_{n}\right\}^{2} \]

我们发现过小的M拟合效果非常差,而高阶的M完美拟合了数据,但是曲线剧烈震荡,就表达函数\(sin(2\pi x)\)来说表现很差,这便是过拟合。

我们的目标是通过对新数据的预测实现良好的泛化性,于是我们考虑一个额外的训练集,生成方式和之前的训练集完全相同,但是包含的噪声不同,对于每个M的选择,我们可以利用误差函数,或者均方根误差(RMS)衡量:
\[ E_{R M S}=\sqrt{2 E\left(\boldsymbol{w}^{*}\right) / N} \]
N保证了以相同的基础对比不同大小的数据集,平方根保证了\(E_{RMS}\)与目标变量\(t\)使用相同的规模和单位进行度量。

我们发现M的值适中时,均方根误差较小。M特别大的时候,测试误差很大(即过拟合)。进一步思考这个问题,我们发现,对于一个给定的模型复杂度(M给定),数据集规模增加,过拟合问题变得不那么严重,或者说,数据集规模越大,我们能用来拟合数据的模型就越复杂(灵活)。一个粗略的启发是:数据点的数量不应该小于模型的可调节参数的若干倍。我们根据待解决问题的复杂性来选择模型的复杂性,过拟合现象是极大似然的一个通用属性,而通过贝叶斯方法,过拟合问题可以被避免。

目前,我们使用正则化(regularization)技术控制过拟合, 即增加一个惩罚项,使得系数不会达到一个很大的值,如下例是加入平方惩罚项的误差函数:
\[ \tilde{E}(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{y\left(x_{n}, \boldsymbol{w}\right)-t_{n}\right\}^{2}+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2} \]
正则化后的进行多项式拟合效果就能达到一个理想的值。

之后,作者在重新考察曲线拟合问题时,提到了最大化似然函数和最小化平方和误差函数,而最大化后验概率等价于最小化正则化的误差函数。

2. 概率论

文章首先通过简单的例子说明了概率论的基本思想,然后表示了概率论的两条基本规则:

加和规则sum rule: \(p(X)=\sum_{Y} p(X, Y)\)
乘积规则product rule: \(p(X, Y)=p(Y | X) p(X)\)

这两个规则是机器学习全部概率推导的基础。

根据乘积规则,我们得到贝叶斯定理:
\[ p(Y | X)=\frac{p(X | Y) p(Y)}{p(X)}=\frac{p(X | Y) p(Y)}{\sum_{Y} p(X | Y) p(Y)} \]
其中,\(p(Y)\)称为先验概率(\(prior\)),即根据先验知识得出的关于变量\(Y\)的分布,\(p(X|Y)\)称为似然函数(\(likelihood\)),\(p(X)\)为变量\(X\)的概率,\(p(Y|X)\)称之为条件概率(给定变量\(X\)的情况下\(Y\)的概率,\(posterior\),后验概率)。

在连续空间中,一个实值变量\(x\)的概率落在区间\((x,x+\delta x)\)的概率由\(p(x)\delta x\)给出(\(\delta x →0\)),那么\(p(x)\)称为\(x\)的概率密度(probability density),\(x\)在区间\((a,b)\)的概率由下式给出:
\[ p(x \in(a, b))=\int_{a}^{b} p(x) \mathrm{d} x \]
概率密度是处处大于0且归一化的。

离散变量的期望值(expectation)的定义为:
\[ \mathbb{E}[f]=\sum_{x} p(x) f(x) \]
连续变量的期望值:
\[ \mathbb{E}[f]=\int p(x) f(x) \mathrm{d} x \]
方差(variance)的定义:
\[ \operatorname{var}[f]=\mathbb{E}\left[(f(x)-\mathbb{E}[f(x)])^{2}\right] \]

\[ =\mathbb{E}\left[f(x)^{2}\right]-\mathbb{E}[f(x)]^{2} \]

它度量了\(f(x)\)在均值\(\mathbb{E}[f(x)]\)附近变化性的大小。

协方差(covariance)的定义:
\[ \operatorname{cov}[x, y]=\mathbb{E}_{x, y}[\{x-\mathbb{E}[x]\}\{y-\mathbb{E}[y]\}] \]

\[ =\mathbb{E}_{x, y}[x y]-\mathbb{E}[x] \mathbb{E}[y] \]

它表示在多大程度上\(x\)和\(y\)会共同变化,如果独立,协方差为0.

2.1 概率论之贝叶斯学派和频率学派

    频率学派试图从自然的角度出发,试图直接为事件建模,即事件A在独立重复实验中发生的频率趋于极限P,那么这个极限就是事件的概率。

    贝叶斯学派并不试图刻画事件本身,而是从观察者角度。贝叶斯学派并不认为事件本身是随机的,而是从观察者知识不完备这一出发点开始,构造一套贝叶斯概率论的框架下可以对不确定知识作出推断的方法。即不认为事件本身具有某种客观的随机性,而只是观察者不知道事件的结果。

    频率学派广泛使用极大似然进行估计,使得似然函数\(p(\mathcal{D} | \boldsymbol{w})\)达到最大。贝叶斯学派广泛使用先验概率。

    补充:根据知乎某大佬所言:频率学派和贝叶斯学派最大差别是产生在对参数空间的认知上。频率学派并不关心参数空间的所有细节,而相信数据都是在某个参数值下产生的,所以频率学派从“那个值最有可能是真实值”出发的。有了极大似然和置信区间。贝叶斯学派关心参数空间的每一个值,我们又没有上帝视角,怎么可能知道哪个值是真的,参数空间的每个值都有可能是真实模型使用的值,只是概率不同。

参考:https://www.zhihu.com/question/20587681

2.2 高斯分布

    高斯分布算是模式识别里面的重点难点,在第一章里面简要介绍了其一些简单性质,总结如下:

一元高斯分布:
\[ \mathcal{N}\left(x | \mu, \sigma^{2}\right)=\frac{1}{\left(2 \pi \sigma^{2}\right)^{\frac{1}{2}}} \exp \left\{-\frac{1}{2 \sigma^{2}}(x-\mu)^{2}\right\} \]

高斯分布满足恒大于0:
\[ \mathcal{N}\left(x | \mu, \sigma^{2}\right)>0 \]
高斯分布是归一化的:
\[ \int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) \mathrm{d} x=1 \]

高斯分布的期望:
\[ \mathbb{E}[x]=\int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) x \mathrm{d} x=\mu \]
二阶矩:
\[ \mathbb{E}\left[x^{2}\right]=\int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) x^{2} \mathrm{d} x=\mu^{2}+\sigma^{2} \]
方差:
\[ \operatorname{var}[x]=\mathbb{E}\left[x^{2}\right]-\mathbb{E}[x]^{2}=\sigma^{2} \]
分布的最大值被称为众数,高斯分布的众数与均值恰好相等。

假定一个观测数据集是独立从高斯分布中抽取(independent and identically distributed, i.i.d.),分布均值\(\mu\)和方差\(\sigma^2\)未知。数据集的概率:
\[ p\left(\mathbf{x} | \mu, \sigma^{2}\right)=\prod_{n=1}^{N} \mathcal{N}\left(x_{n} | \mu, \sigma^{2}\right) \]
当我们把它看做参数的函数的时候,这就是高斯分布的似然函数。之后我们利用极大似然法寻找似然函数取得最大值的参数值。同时书中提到了:给定数据集下最大化概率的参数和给定参数的情况下最大化数据集出现的概率是相关的。

高斯分布的最大似然解:\(\mu_{M L}=\frac{1}{N} \sum_{n=1}^{N} x_{n}\),\(\sigma_{M L}^{2}=\frac{1}{N} \sum_{n=1}^{N}\left(x_{n}-\mu_{M L}\right)^{2}\)

高斯分布的极大似然估计对均值的估计是无偏的,对方差的估计是有偏的(低估)。

3.模型选择

在曲线拟合中,存在一个最优的多项式阶数。实际情况中,我们可能存在多个控制模型复杂度的参数,同时存在过拟合现象,所以我们需要一个验证集。而数据有限,所以需要交叉验证,S-1组进行训练,1组进行评估,运行S次。但是存在一个问题就是训练本身很耗时。

4. 维数灾难

随着维数的变高,我们需要指数级的训练数据。对于高维数据,高斯分布的概率质量集中在薄球壳上。这对我们的模型产生了极大地困难。

5. 决策论

  1. 最小化错误分类率。把每个点分在后验概率最大的类别中,那么我们分类错误的概率就会最小。
  2. 最小化期望损失。损失函数(代价函数)最小。
  3. 拒绝选项。对于低于阈值的概率,拒绝作出识别,拒绝决策带来的损失可以放在损失矩阵中。

6.信息论

随机变量的熵:\(H[x]=-\sum_{x} p(x) \log _{2} p(x)\)

熵是传输一个随机变量状态值所需的比特位的下界。

相对熵:\(\mathrm{KL}(p \| q)=-\int p(\boldsymbol{x}) \ln \left\{\frac{q(\boldsymbol{x})}{p(\boldsymbol{x})}\right\} \mathrm{d} \boldsymbol{x}\)

相对熵也被称之为KL散度,不对称。当且仅当\(p=q\)时,等号成立。

最小化KL散度等价于最大化似然函数(p为真实分布,q为给定分布)。

互信息:
\[ \begin{aligned}I[\boldsymbol{x}, \boldsymbol{y}] & \equiv \mathrm{KL}(p(\boldsymbol{x}, \boldsymbol{y}) \| p(\boldsymbol{x}) p(\boldsymbol{y})) \\&=-\iint p(\boldsymbol{x}, \boldsymbol{y}) \ln \left(\frac{p(\boldsymbol{x}) p(\boldsymbol{y})}{p(\boldsymbol{x}, \boldsymbol{y})}\right) \mathrm{d} \boldsymbol{x} \mathrm{d} \boldsymbol{y}\end{aligned} \]
\(I[\boldsymbol{x}, \boldsymbol{y}] \geq 0\),当且仅当\(x\)\(y\)独立时等号成立。我们可以把互信息看成由于知道\(y\)值而造成的\(x\)的不确定性的减少。

7. 一些小的知识点:

  1. 严格凸函数:每条弦位于函数图像上方,即二阶导数为正
  2. 变分法
  3. 高维空间中,球的大部分体积都聚集在表面附近。
  4. 具体化一个连续变量需要大量比特位。

本文由飞剑客原创,如需转载,请联系私信联系知乎:@AndyChanCD

prml读书笔记 PRML笔记-Notes on Pattern Recognition and Machine Learning、PRML读书会合集打印版和个人prml读书报告 立即下载

相关推荐

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

【PRML 学习笔记】第一章 - 介绍 (Introduction)

一、介绍 (Introduction) 本章目的:介绍一些重要概念 模式识别的核心: 使用计算机算法,自动化地发现数据中的规律 (the automatic discovery of regularities in data) 利用这些规律去完成某些任务,例如数据分类 不同领域间关系: 泛化 (generalization): 【定义】将「不曾在训练集中出现过的数据」识别准确的能力 【意义】模式识别的核心目标 预处理 (pre-processing): 有时也称作特征提取 (feature ex

lucius-liu.cn 1188

编译原理2024期末复习(面向做题,大题速学)【太原理工大学】

归约-归约”冲突就是在项目集规范族一个状态中两个。

m0_63181421的博客 1万+

PRML学习系列——第一章 多项式拟合

转自:http://blog.ihuxu.com/prml-study-series-chapter-1-polynomial-fitting/PRML多项式拟合 pattern recognition and machine learning 简称PRML是模式识别人工智能的基础书籍,好好学习学习,打下坚实基础,这里记录学习的点滴,可能会有误解之处,在后续的学习中会及时更正,也希望广大学友

凝眸伏笔的博客 824

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 625

5分钟上手,Cursor + IntelliJ IDEA 双端开发:高效协同的终极方案

最好的工具,是让你忘记工具的存在。通过AI 的创造力(Cursor)IDE 的工程力(IDEA)无缝的上下文流转(插件协同)从此,不再手忙脚乱切窗口,不再迷失在文件树中。只需一个快捷键,专注编码本身。装上这两个插件后,日常开发体验虽然没有天翻地覆的变化, 但至少摸鱼的几个小时时间是有的!

weixin_44058951的博客 2200

Prml 第一章 读书笔记

笔者是第一次接触机器学习领域,故将自己的Prml浅显的理解记录在此。Prml第一章比较简单的介绍了在模式识别中遇到的问题的分类以及处理方法,相当于是对后面几章的概括,主要掌握的内容是机器学习中的一些简单概念。首先,对于机器学习我的理解是,计算机模仿人类通过经验去判断事物的过程,学习的对象是数据,经验方法是通过大量的重复性的计算,由人类给出的“算法”进行判别。首先机器学习分为监督学习和非监督学习。简...

ziyicong4459的博客 482

RAP 通用搜索实战:用 CDS 注解打造 Fiori Elements 的一体化检索体验

RAP应用中的通用搜索优化实践:通过CDS注解实现高效模糊匹配 摘要:本文介绍了在SAP RAP应用中优化列表搜索体验的方法。通过CDS注解配置通用搜索功能,用户无需指定字段即可在多字段中模糊匹配数据。关键实现包括:1)使用@Search.searchable启用全局搜索;2)通过@Search.defaultSearchElement标记核心搜索字段;3)利用@Search.fuzzinessThreshold设置容错阈值(0.7-1.0)处理拼写错误;4)使用@Search.ranking优化结果排序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1398

第4章 分类的线性模型(PRML读书笔记)

本章小结   本章讨论分类问题。分类的⽬标是将输⼊变量x分到K个离散的类别CkC_kCk​中的某⼀类。最常见的情况是,类别互相不想交,因此每个输⼊被分到唯⼀的⼀个类别中。因此输⼊空间被划分为不同的决策区域,它的边界被称为决策边界或者决策⾯。在本章中,考虑分类的线性模型的,即决策面是输⼊向量x的线性函数,因此被定义为D维输⼊空间中的(D − 1)维超平⾯。如果数据集可以被线性决策⾯精确地分类,那么这...

flyhigher1983的专栏 443

深度解析长鑫G5 DRAM工艺的技术逻辑与微缩边界

长鑫存储G5 DRAM平台通过多重图形化、45:1高深宽比电容与外围HKMG技术,突破先进光刻受限瓶颈,在11.95 nm有源区半间距下实现阵列微缩与电容结构优化。其核心意义不在于对标国际节点,而在于系统性解决“尺寸缩小—电荷保持—外围跟进而”三大矛盾,展现国产DRAM在无EUV条件下推进先进制程的工艺整合能力。

硬核科技 37

winform自定义控件(gdi+)(1)———设置透明背景色

本文详细讲解了如何在winform中设置控件的背景色为透明色

qq_34059233的博客 3688

4.3 概率判别式模型(PRML读书笔记)

本节小节 笔记   判别式⽅法的⼀个优点是通常有更少的可调节参数需要确定,正如我们稍后会看到的那样。并且预测表现也会提升,尤其是当类条件概率密度的假设没有很好地近似真实的分布的时候更是如此(这三个优点如何理解)。 4.3.1 固定基函数   需要注意的是,⾮线性变换ϕ(x)不会消除这些重叠。实际上,这些变换会增加重叠的程度,或者在原始观测空间中不存在重叠的地⽅产⽣出新的重叠。然⽽,恰当地选择⾮线性...

flyhigher1983的专栏 632

2.1 amdgpu BO的类型和用途

AMDGPU驱动中,amdgpu_bo_create_user和amdgpu_bo_create_kernel分别用于创建用户空间和内核空间的buffer对象(BO)。用户空间BO支持元数据、tiling flags等属性,由GEM handle管理生命周期;内核BO则用于驱动内部资源如ringbuffer,自动pin并可选CPU映射。二者在返回类型、生命周期管理和使用场景上存在根本差异,前者面向图形渲染/AI等应用,后者服务于驱动内部任务。

图形/计算GPU的驱动与虚拟化技术分享园地 2213

6.1 对偶表示(PRML读书笔记)

本节小结   许多回归的线性模型和分类的线性模型的公式都可以使⽤对偶表⽰,从而引出了核函数。本小节将正则化的平方误差函数(公式6.2)转换成对偶表示(公式6.9)。 其中,   k(x)T=(k(x1,x),...,k(xN,x))\textbf{k}(\textbf{x})^T=(k(\textbf{x}_1, \textbf{x}),...,k(\textbf{x}_N,\textbf{x...

flyhigher1983的专栏 1212

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

3.6 固定基函数的局限性(PRML读书笔记)

  困难的产⽣主要是因为我们假设了基函数在观测到任何数据之前就被固定了下来,⽽这正是1.4节讨论的维度灾难问题的⼀个表现形式。结果,基函数的数量随着输⼊空间的维度D迅速增长,通常是指数⽅式的增长(我的理解,如果基函数的数量远低于输入空间的维度D,会带来维度降低,所以基函数的数量需要随着输⼊空间的维度D增长)。   幸运的是,真实数据集有两个性质,可以帮助我们缓解这个问题。第⼀,数据向量{xn\te...

flyhigher1983的专栏 691

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2.5.1 核密度估计(PRML读书笔记)

本章小结   让我们假设观测服从DDD维空间的某个未知的概率密度分布p(x)p(x)p(x)。把这个DDD维空间选择成欧⼏⾥得空间,考虑包含xxx的某个⼩区域RRR,则这个区域的概率质量为 假设收集了服从p(x)p(x)p(x)分布的NNN次观测,很容易得出位于区域RRR内部的数据点总数KKK满足 如果假定区域RRR⾜够⼩,使得在这个区域内的概率密度p(x)p(x)p(x)⼤致为常数,那么有 ...

flyhigher1983的专栏 1606

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

4.2 概率生成式模型(PRML读书笔记)

本节小结 本小节介绍了通过生成式方式求解类的后验概率的方法。我们通过对类先验概率p(Ck)p(C_k)p(Ck​)和类条件概率p(x∣Ck)p(\textbf{x}|C_k)p(x∣Ck​)分别建模,再根据贝叶斯定理p(Ck∣x)=p(x∣Ck)p(Ck)∑jp(x∣Cj)p(Cj)p(C_k|\textbf{x})=\frac{p(\textbf{x}|C_k)p(C_k)}{\sum_{j}p...

flyhigher1983的专栏 645

【我爱NLP汇总】

国内对自然语言处理比较系统的介绍要数“我爱自然语言处理”系列文章,接下来,打算花一段时间进行全面的了解一下(顺序从下->上) 斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示 斯坦福大学深度学习与自然语言处理第二讲:词向量 斯坦福大学深度学习与自然语言处理第一讲:引言 用MeCab打造一套实用的中文分词系统(三):MeCab-Chinese 用Me

macb007的博客 3453

我爱自然语言处理网文章汇总

斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示 斯坦福大学深度学习与自然语言处理第二讲:词向量 斯坦福大学深度学习与自然语言处理第一讲:引言 用MeCab打造一套实用的中文分词系统(三):MeCab-Chinese 用MeCab打造一套实用的中文分词系统(二) 中英文维基百科语料上的Word2Vec实验 HMM相关文章索引 PRML读书会第十四章 Combining Mod

wowdd1 3642

资源整理

7.2 Daily 何红亮每日学习“日记” 6.28 国考 七仔推荐   java笔记 6.21 知乎统计学精华答案--关于深度学习的 资料整理,超级棒 6.19 可汗学院数学(小学数学 学习 以后可以用到) 网易公开课有哪些视频值得推荐?   统计学习方法 知乎 可汗学院 统计学 很棒的资料! 6.6 博客资源统计学习资料...

328

LDA好博文总结

最近在看LDA,把看到的比较好的博文粘贴过来,大家可选择性的阅读~~当然,还是要建立在对LDA有初步的了解,可先看看原著。 个人觉得如果这写文章基本上都能懂了,LDA应该也差不多了~我在努力中!!! 先看rickjin的LDA数学八卦 http://www.52nlp.cn/lda-math-%E6%B1%87%E6%80%BB-lda%E6%95%B0%E5%AD %A6

634

机器学习PRML--第一章学习问题总结

本文主要内容是讲在学习PRML这本书的第一章所遇到的问题的总结

Gloriamin的博客 800
上一篇: 异步加载css 和 谷歌浏览器各实用小工具介绍
下一篇: 基于python的分治法和例题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值