- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 《RethinkFun深度学习》8.10 为什么神经网络可以拟合任意函数
有研究论文发现,同等参数量的模型,一个浅而宽的神经网络效果是远不如一个窄而深的神经网络的。当然每一层的神经元也不能太少,至少要能学习到这一层的所有模式才行,这一层是学习的人脸的器官,那必须有神经元分别是识别眼睛、眼镜、眉毛、额头、嘴巴、鼻子、耳朵、脸颊、下巴等等。但是有一个问题,就是函数的值域一直是0到1,为了调整图像在y轴上的变化,我们对Sigmoid函数的输出也加上两个参数来进行线性控制,这里我们用大写的。也就是说只要我们能找到拟合阶梯图像的函数,通过把三个阶梯函数加和,我们就可以拟合上边的折线。
2025-07-24 09:15:23
1026
原创 《RethinkFun深度学习》8.9 用PyTorch实现多分类神经网络
nn.ReLU(),nn.ReLU(),nn.ReLU(),nn.ReLU(),可以看到定义了一个神经网络的类,它继承自nn.Module,我们就可以直接利用PyTorch定义好的Linear和ReLU。在初始化函数里,我们定义了一个的对象,它会顺序链接内部各个模块。forward方法就是直接调用我们定义的model。
2025-07-24 09:11:30
343
原创 《RethinkFun深度学习》8.8 手动实现多分类神经网络
layer_sizes = [28*28, 128, 128, 128, 64, 10] # 可根据需要修改,例如 [输入, 隐层1, 隐层2, ..., 输出]# 手动初始化参数通过上边的代码我们定义和初始化了每一层的权重和偏置参数。注意权重参数我们是在标准的正态分布基础上,乘以2insizeinsize2来进行初始化。####8.8.3.2函数定义ReLUsoftmax。
2025-07-24 09:10:01
936
原创 《RethinkFun深度学习》8.7 梯度消失和梯度爆炸
一般神经网络的输入都经过了标准化,输入都是均值为0,方差为1的变量。很多数的连乘有个问题,就是如果这些数都小于1,比如为0.7,100个0.7的连乘就为2的负16次方,导致梯度非常小,几乎消失,让参数无法更新。因为对于同一层的不同神经元,它们的输入是相同的,如果参数也相同,则输出也相同,反向传播的梯度也相同,每次参数更新后的值也一样,多个神经元就失去了差异性。上边的例子还只是一个3层的神经网络,如果是100层的神经网络,对于第一层的权重的梯度值,就有99个激活函数的导数值连乘,99个权重值连乘。
2025-07-24 09:08:16
1038
原创 《RethinkFun深度学习》8.6 亲手推导神经网络的反向传播
虽然在PyTorch里你只需要定义模型的前向传播过程并给出损失函数。PyTorch框架会帮你在后向传播时自动计算梯度并使用优化器更新参数。但是我们还是需要自己推导一次神经网络反向传播的梯度计算。这将帮助你彻底了解神经网络的训练原理,消除它的神秘感。而且了解反向传播的具体过程也可以帮助我们理解后边一系列神经网络的训练优化技术。这一节是我们这个课程里数学含量最高的一节,请你给自己倒一杯咖啡,拿出纸和笔。我们一起来推导一次神经网络的反向传播过程。相信我,这个过程对你会非常有意义。我现在还能清楚的回忆起自己当年第一
2025-07-24 09:05:44
490
原创 《RethinkFun深度学习》8.5 神经网络的多分类
但是更常用的方式还是让神经网络最后输出一个值,用sigmoid函数转化为0-1之间的概率,用1表示正例,0表示负例。其中p是这个样本经过神经网络的softmax激活输出,它的值是一个向量,有C个元素,这C个元素因为是softmax的输出,代表概率,满足。你可能有一个直接的想法,那就是用每个神经元logits的值,除以所有神经元logits值的和作为最终的概率值。如果样本的真实类别为2,则这个样本的损失值就为。其中y是一个样本的标签值,它的值是一个向量,有C个元素,里边只有一个元素。
2025-07-24 08:56:55
955
原创 《RethinkFun深度学习》8.4激活函数
但是不适合作为隐藏层的激活函数,因为Sigmoid输出总是正数。它非常适合作为二分类问题的神经网络的最后一层唯一神经元的激活函数。ReLU函数有个问题,就是当x小于0时,ReLU(x)值为0,它的梯度为0,参数无法更新。正是因为引入激活函数,模拟了大脑神经元里的抑制和激活。如果没有激活函数,不论几层的神经网络都是一个线性回归。以上边1个隐藏层,一个输出层的简单神经网络为例,如果没有激活函数,只进行线性回归。这说明,如果没有激活函数,不论有几层线性回归,最终都等价于一层的线性回归。后边我们会详细介绍。
2025-07-24 08:54:34
824
原创 《RethinkFun深度学习》8.3 神经网络与矩阵运算
另外,随着人工智能的兴起,GPU也专门加强了GPU在人工智能领域的计算能力,从硬件层面做出优化,比如Tensor Core,它就是专门为了矩阵乘法设计的硬件单元。GPU与CPU最大的不同是GPU拥有大量的上千个计算核心,这些核心可以同时处理大量简单的计算任务。这是对一个样本的4个特征进行计算,我们可以对多个样本进行计算,这样就变成两个矩阵相乘。,就表示第2层的第3个神经元对第1个输入的权重参数。表示线性回归的结果,上标1表示第1层,下标1表示第一个神经元。是一个样本的4个特征值,也就是输入层的输入。
2025-07-24 08:52:07
301
原创 《RethinkFun深度学习》8.2 大脑与神经网络
一个神经元接收其它神经元的输入,然后经过自己的处理,决定要不要激活输出,也就是释放电信号给其他神经元。然后经过逻辑回归,产生一个输出,同样的输出又作为多份输入进入第二层的所有神经元。上一节,我们讲从逻辑回归到神经网络,中间只有一层隐藏层来抽取高级特征,不难想象,你可以在这些高级特征的基础上继续抽取更高级特征,这样我们就可以定义任意层的隐藏层。神经元的计算中心,负责处理来自其他神经元的输入信号,并生成神经元的输出。我们计算神经网络的层数时,是不计算输入层的,因为输入层是特征,没有需要学习训练的参数。
2025-07-24 08:39:29
412
原创 《RethinkFun深度学习》8.1 换个角度理解神经网络-逻辑回归的组合
像上图中,我们只是设计了模型的架构,让模型在学习过程中,抽象出3个高级特征,具体这3个高级特征是什么?上边的顾客是否满意一个苹果的模型里,我们通过先验知识,抽象出来3个更高级的特征,那就是外观,口感和实惠。根据之前我们学过的知识,我们可以直接利用特征,通过逻辑回归模型来建模预测用户是否对一个苹果满意。最终,我们根据外观,口感,实惠的三个逻辑回归的输出值,再构建一个逻辑回归模型,判断用户是否对这个苹果满意。针对一个苹果,我们收集了以下特征,利用这些特征,我们希望预测用户购买并品尝这个苹果后是否满意。
2025-07-24 08:37:44
742
原创 《RethinkFun深度学习》 7.11 用逻辑回归对Titanic数据进行训练
你下载的数据集里有train.csv, test.csv, gender_submission.csv,其中trian.csv是训练数据集,test.csv是测试数据集,其中只有feature,不包含Label。我们在上边的代码里增加了一些特征的二次项,并对这些新的特征也进行了标准化,然后我们再次训练模型,查看模型在训练集和验证集上的表现。对于少量参数还可以,如果有几十亿参数需要你管理,那还是有不少工作的,另外我们之前学过的梯度更新算法还很简单,后边还有更负责的梯度更新策略。你可能会疑惑,这里做一下解释。
2025-07-23 10:03:44
1070
原创 《RethinkFun深度学习》7.10 利用PyTorch定义逻辑回归模型
本小节,我们将利用PyTorch定义一个逻辑回归模型。首先我们从PyTorch里的nn.Module类讲起。
2025-07-23 10:02:34
679
原创 《RethinkFun深度学习》7.9 PyTorch里的Dataset和DataLoader
Dataset负责数据的读取和预处理,而DataLoader则负责将数据分成小批量,支持多线程加速,以及数据的打乱等。本节,我们就以Titanic数据集为例,讲解如何使用PyTorch里的Dataset和DataLoader类来处理数据。PyTorch里默认实现的DataLoader就可以满足我们的使用,它定义了如何批量读取数据的功能。这样我们的TitanicDataset就是一个合格的PyTorch里的。另外一般情况下,我们也把对数据的预处理工作放在自定义的Dataset类定义里。
2025-07-23 10:01:20
315
原创 《RethinkFun深度学习》7.8 泰坦尼克号生存预测
每个样本在这几个列的取值,只能是0或者1。比如原始Sex列,就转化为Sex_male和Sex_female两列,如果某个乘客是男性,则Sex_male列的值就是1,Sex_female列的值就是0。如果一个乘客是从Cherbourg登船的,则Embarked_C列值为1,Embarked_Q,Embarked_S列取值为0。而且对于每个样本,在这N个列里,只有一列取值为1,其他列取值都为0,这也是为什么它被叫做独热编码的原因。有很少部分的乘客的年龄是缺失的,我们去除这些数据样本,删除缺失年龄数据的样本。
2025-07-23 10:00:04
1096
原创 《RethinkFun深度学习》7.7 梯度下降算法的改进
这是和底层硬件结构相关的。如果batch size也是2的幂,则数据在存储中更容易对齐,减少读取次数,读取效率更好。当时我们使用的是用全部训练数据计算平均loss,然后计算所有参数的梯度,更新参数,然后进行多次训练。它的优点是计算快,而且因为单个数据随机性很强,每次都是不同的数据在更新参数,可以帮助模型训练快速逃出局部最小值。它每次只从训练集里取一个样本,然后计算loss,反向传播,计算梯度,更新模型参数。这个梯度是利用所有训练数据求得每个参数的平均梯度,它准确的反应了模型在整个训练数据集上的改进方向。
2025-07-23 09:58:34
325
原创 《RethinkFun深度学习》7.6 二分类模型的评价指标
假设你是一个开在办公楼下饭店的老板,你每天会做不同的菜品,按份放在盘子里,不同的菜不同的标价。因为要邮寄试用品,活动是有成本的,你希望你的模型预测会购买的用户,实际真正购买的比例越高越好。选择精确率作为项目的目标,可以保证你得到的正例,实际为正例的比例很高。还是以对罕见病预测的例子,10万个人中,只有1个是正例,你预测10万个人都是正例,召回率是1,但是这个模型也没有什么用。精确率的定义为:被预测为正例的样本中,真正正例的比例。召回率的定义为真实为正类的样本中,被正确预测为正类的比例。
2025-07-23 09:57:24
983
原创 《RethinkFun深度学习》7.5 欠拟合和过拟合
当模型在训练数据集上表现达到你的预期时,你应该同步考虑模型在验证集上的表现,如果此时模型在验证集上的表现你也满意,那么恭喜你,你已经得到一个好的模型。首先你应该关注的是模型在训练数据集上的表现,如果模型在训练数据集上的表现不佳,那么就证明模型目前处于欠拟合的状态。模型在训练中的状态分为三种,一种是欠拟合,一种是适度拟合,一种是过拟合。在模型的训练过程中,每过一些训练周期,你需要计算模型在训练数据集和验证数据集上的指标值。评价一个模型过拟合的标准就是模型在训练数据集上表现很好,但是在验证数据集上表现很差。
2025-07-23 09:55:33
518
原创 《RethinkFun深度学习》7.4 数据集的划分
他会基于训练集来训练模型,在训练过程中利用测试集来评价模型,利用评价结果来调整模型的超参数,最终选择一个在测试集上表现最好的模型。保证训练集,验证集,测试集数据分布的一致是非常重要的,这样验证集才能正确指导模型训练的方向,测试集才能客观评价模型的表现。验证集和测试集的作用是不同的,你可以使用模型在验证集上的结果取调整模型,比如改变batch size,学习率,特征的最高次项等。而测试集完全不会影响模型的任何方面,你不能根据测试集的结果去调整模型的超参数,也不能根据测试集的结果去选择模型。
2025-07-23 09:54:16
1047
原创 《RethinkFun深度学习》7.3 多元逻辑回归
在逻辑回归里,Sigmoid函数的输入是线性回归的结果,所以线性回归的作用,就是将Feature通过参数w和b的线性变化,让正例的线性变化结果大于0,让负例的线性变化结果小于0。逻辑回归内部是一个线性回归,然后通过Sigmoid函数,线性回归大于0的结果,映射到1,小于0的结果映射到0。多元逻辑回归中,多元线性回归部分,将多个Feature通过对应的参数w以及b进行线性变化,让正例的多元线性变化结果大于0,让负例的多元线性变化结果小于0。逻辑回归也是可以用来多分类的,最常用的方法,就是1对多方式。
2025-07-23 09:44:14
1899
原创 《RethinkFun深度学习》7.2 逻辑回归的损失函数
对于上边的以气温数据预测小明是否出门的二分类例子,我们代入实际的feature和label值,构建MSE loss函数,最终的MSE loss函数表达式是由参数w和b构成的。从Loss曲线可以看到,当预测值越接近0,Loss值越大,越接近1,Loss值越小。从Loss曲线可以看到,当预测值越接近1,Loss值越大,越接近0,Loss值越小。当预测值和Label相等,等于0时,Loss值为0。你可以分别将y=1和y=0的两种情况y的值分别带入,BCELoss的表达式和上边分情况讨论的表达式是完全一样的。
2025-07-23 09:42:31
631
原创 《RethinkFun深度学习》7.1 一元逻辑回归
这个非线性的函数我们就叫做激活函数。当你有一个训练好的逻辑回归模型,它的输出是Sigmoid函数的输出,范围是0-1之间,正好是概率值的范围。如果用简单的一元一次线性方程,它预测的Label会一直变化,突破[0,1]的范围,所以是不能拟合这个图像的。首先我们发现,这些数据点是左高右低,也就是x取值较小的部分,Label值为1,x取值较大的部分,Label值为0。可以看到Sigmoid函数有很好的特性,它的输出值区间为[0,1],而且只有x取值在0附近时,函数值有明显的变化,其他区间都很非常接近0或者1。
2025-07-23 09:39:58
712
原创 《RethinkFun深度学习》6.8 深度学习为什么要对数据做归一化?
的训练,它们共用学习率,但是因为它们对应feature的取值范围不同,导致他们对loss函数的影响不同,进而导致它们对loss的梯度的取值范围不同。如果我们让所有feature的取值范围相同,这样所有训练参数对loss函数的影响就相同了,计算得到的梯度都差不多,就可以用统一的学习率来进行调整了。的梯度值非常大,如果学习率稍微大一些,1减去学习率乘以梯度值,就跨过了需要调整到的0.01。我们希望利用我们构造的数据,和随机初始化的线性回归参数,经过训练后,能够拟合出我们上边给定的线性回归的参数。
2025-07-22 09:50:41
869
原创 《RethinkFun深度学习》6.7 TensorBoard里优美的Loss曲线
如果你发现你的loss曲线并不下降,那么有以下几种可能。1.你的代码有bug,你需要检查你的代码。在模型训练过程中,有一个最重要的指标,就是loss值。而通过观察loss值变化的曲线,可以得到很多有用的信息。根据loss曲线,你也可以判断什么时候终止训练,那就是loss几乎不变,看起来是一条平行于x轴的直线。此时,我们就得到了最优的模型。这是一个非常理想的loss曲线,前边一段训练过程loss快速下降,到后边loss逐渐变化很小,证明已经收敛。其中传入的3个参数分别为:标签名,loss值,训练的步数。
2025-07-22 09:48:55
525
原创 《RethinkFun深度学习》6.6 用PyTorch实现线性回归
具体值是随机产生的0-1之间的值。接着通过我们人为设定的weight和bias,对随机生成的inputs经过线性变化,再加上一些小的随机误差。最终能调整训练的权重和偏置参数,达到和我们人为设置的weights和bias接近的值。上边的代码,首先必须将inputs和targets也移动到和参数同样的设备上,不同设备上的tensor是无法进行计算的。经过多次迭代后,可以打印出模型训练后的参数值,看看和我们生成数据时预设的参数值是否接近。还需要注意的是,需要对更新后的参数的梯度进行清零,不然梯度值会一直累积。
2025-07-22 09:47:26
251
原创 《RethinkFun深度学习》6.5 PyTorch里的计算图与自动求梯度
仔细分析PyTorch的代码可以发现,我们定义了x,y需要计算梯度,然后定义了计算的流程。我们只要调用结果z的反向传播方法,PyTorch内部会根据计算图反向传播,计算梯度。最终打印出的x和y在(1,1)点的梯度和我们手动计算的梯度值是完全一致的。再回顾一下上边这个简单的例子,我们需要分析自变量和因变量的关系,保存计算图。下边,我们需要计算梯度,分别对x和y求偏导。利用PyTorch里的自动求梯度的能力,可以大大简化我们利用梯度下降方法对模型的训练。我们在PyTorch里完成上边这个简单的例子。
2025-07-22 09:45:56
979
原创 《RethinkFun深度学习》6.4 一次学懂PyTorch里的Tensor
这种机制,就是广播机制。需要特别注意的是,扩展维度时会对两个tensor的每个维度的维度值进行检查,如果在某个维度上两个tensor的维度值不同,那么必须有一个tensor在这个维度的维度值是1,否则广播就会失败,整个计算就失败。通过上边的学习,我们知道一个tensor有几个常用的关键属性,第一个是tensor的形状,第二个是tensor内元素的类型,第三个是tensor的设备。结果的shape为(2,),也就是有本来的2维tensor,“消灭”了行的维度,变为1维tensor,这个维度为列的维度数:2。
2025-07-22 09:42:47
853
原创 《RethinkFun深度学习》6.3 GPU换将下PyTorch开发环境配置
进入之前版本页面后,我们找到我们想要安装的PyTorch版本,比如V2.4.0,我们寻找pip安装命令模块,并选择对应CUDA版本下的安装命令,这里注意,选择的CUDA版本不能大于上边我们确认的硬件驱动支持的最高版本。如果这里支持的CUDA版本都大于你显卡驱动支持的最高CUDA版本,说明你的显卡驱动太旧了,你可以安装最新的显卡驱动。通过 Anaconda,你可以在一台电脑上轻松创建多个独立的 Python 开发环境,每个环境可以配置不同的 Python 版本和依赖库,互不干扰。点击并重启VS Code。
2025-07-22 09:41:15
1780
原创 《RethinkFun深度学习》6.2 CPU环境下PyTorch安装
通过 Anaconda,你可以在一台电脑上轻松创建多个独立的 Python 开发环境,每个环境可以配置不同的 Python 版本和依赖库,互不干扰。执行后,输出为我们安装的CPU版本的PyTorch的版本号,代表我们VS Code也配置成功了。进入之前版本页面后,我们找到我们想要安装的PyTorch版本,比如V2.4.0,我们寻找pip安装命令模块,并选择。下的安装命令,并复制,然后在Anaconda Prompt里输入我们复制的pip 安装命令。下载后进行安装,需要注意的是安装路径中不能包含空格。
2025-07-22 09:38:38
765
原创 《RethinkFun深度学习》6.1 PyTorch简介
深度学习模型的开发往往涉及复杂的数学运算和大量的代码编写,这对开发者来说是一个巨大的挑战。PyTorch 的出现,为深度学习开发带来了福音,它以其简洁易用、功能强大、灵活高效的特点,成为了深度学习领域的主流框架。
2025-07-22 09:36:32
327
原创 《RethinkFun深度学习》5.6 线性回归只能拟合直线吗?
通过本节的学习,我们知道对于特征和Label之间的非线性问题,我们可以通过构造高次特征来解决。假如你在构造特征的二次项,需要注意的是,构造的特征不光可以是一个特征的平方,也可以是任意两个特征之间的乘积。这意味着,即使我们面对的函数关系非常复杂,只要我们选择足够高的多项式次数,就可以用线性回归模型在局部范围内很好地拟合它。比如你要预测房价,你收集的feature里有房子的长度,有房子的宽度。下边我们看个例子,比如对于y=sin(x)的曲线,也可以通过构造x的高次项,转化为一个线性问题。是我们要优化的参数。
2025-07-21 14:51:16
2074
原创 《RethinkFun深度学习》5.5 动手实现多元线性回归
你可以尝试调整学习率,迭代次数。学习率太大的话,训练过程不会收敛,loss值可能会越来越大,直到程序出错。本节我们将用python代码,利用梯度下降算法,实现一个多元线性回归。也是时候写一些代码了。你完成了你第一个模型的训练。我们用梯度下降算法逐步来更新参数。表示温度对应的权重,表示价格对应的权重。
2025-07-21 14:45:36
599
原创 《RethinkFun深度学习》5.4 多元线性回归
现在我们就有了2个feature,一个偏置,一共3个参数需要优化。因为我们已经学了梯度下降算法,所以并不需要担心。下一节我们就动手实现梯度下降算法来找出最优的参数。之前我们举的根据气温预测冰激凌销量的例子里,只有一个feature,那就是气温。但实际情况中,影响冰激凌销量的因素还有很多,比如价格。,它将偏置和特征系数进行了合并。
2025-07-21 14:40:30
841
原创 《RethinkFun深度学习》5.3 梯度下降算法
带动量的优化算法你可以理解为从山上滚下的小球是带有惯性的,可以帮助它冲过一些小的坑,不会陷入下降过程中的局部小坑中。梯度下降的做法是选择沿最陡峭的路向下走一段,然后再观察,再选择最陡峭的路向下。通过上边的例子,我们可以看到,直接以导数值的大小作为步长看起来不错,但是实际上还需要乘以一个步长的系数。不断接近全局最低点,曲线也变的平缓,导数值变小,每次步长也变小,这有利于我们在全局最低点附近进行精细调整。深度学习里需要优化的参数非常多,比如对于大语言模型,一般都有几百亿参数,这么多参数联立方程求解是不可能的。
2025-07-21 14:37:31
733
原创 《RethinkFun深度学习》5.2 给线性回归加上偏置
通过观察图像可知,loss有最小值,根据之前学习偏导数的知识可知在loss取最小值时,loss对w和对b的偏导数都为0。所以,我们用loss分别对w和b求偏导,并让偏导数等于0。在机器学习里,有时也将用来拟合数据的函数称为假设函数,因为这个函数包含了你的假设,比如这里,你认为feature(温度)和label(销量)之间满足线性关系。上一节,为了简化计算,我们的线性回归假设b等于0,也就是直线肯定通过原点。这一节,我们将b也设置为一个可以训练的参数。通过给w和b设置不同的值,可以生成不同的直线。
2025-07-21 14:31:45
750
原创 《RethinkFun深度学习》5.1 一元线性回归
然后将所有点的误差都累积起来,通过调节参数w的值,能让累积误差最小的直线,就是最好拟合我们数据的直线。当模型训练好之后,就可以只输入新的样本的feature,模型根据学习到的内部参数,计算出预测值了。无监督学习最常见的模型就是聚类模型,比如电信运营商根据所有用户的消费数据,让模型自动发现用户的消费习惯,有的是电话多,有的是流量多,从而聚类出很多套餐类别。有了这条直线,我们就可以进行预测了, 如果天气预报明天气温为15℃,那么我们就可以看在我们拟合的这条直线上,x取15,对应的y值为65。
2025-07-21 14:29:13
1145
原创 《RethinkFun深度学习》4.8 极大似然估计
你连续抽了10次,8次是黑球,2次是白球。上边我们列出了连续抽了10次,8次是黑球,2次是白球这个事件的似然函数,式4-5。极大似然估计(Maximum Likelihood Estimation,简称 MLE)是一种统计方法,用于估计模型参数,使得在已知数据样本的情况下,模型生成这些数据的概率最大。而我们上边的例子是已知一个事情发生了(抽到8次黑球,2次白球),求概率分布(箱子里黑球和白球的分布)。的函数曲线,我们可以发现对原来的似然函数取对数,对数似然函数取得极值时的自变量并没有改变,还是0.8。
2025-07-21 14:19:40
1082
原创 《RethinkFun深度学习》4.7 中心极限定理和正态分布
上边我们说的是严格的中心极限定理,拓展的中心极限定理,不要求所有的随机变量都是同分布的,只要这些随机变量是独立的,且具有有限的均值方差,没有占主导因素的随机变量,在样本量足够大的情况下,这些随机变量的和或者均值构成的分布也趋于正态分布。但还需要进行一些拓展,我们上边的随机实验里,钢珠碰到每个钉子,向左和向右的概率是相等的,是一个均匀分布。无论单个随机变量的原始分布是什么样的,只要随机变量是独立同分布的,且具有有限的均值和方差,那么这些随机变量的和(或均值)在样本量足够大的情况下,其分布将趋近于正态分布。
2025-07-21 14:14:26
653
原创 《RethinkFun深度学习》4.6 条件概率与全概率
先看一个例子,假如我每天上班有0.3的概率开车,0.5的概率骑自行车,0.2的概率步行。开车有0.1的概率迟到,骑自行车有0.2的概率迟到,步行有0.05的概率迟到。那么我上班迟到的概率就应该是开车并且迟到的概率+骑自行车并且迟到的概率+步行并且迟到的概率。根据定义 P(A|B) 也是求A事件发生的概率,不过是给事件A发生提供了额外的信息,也就是B发生。可见 P(A) 和 P(A|B) 的大小是没有关系的,也就是说提供B事件发生的信息,对于A事件发生可能是有帮助作用,也可能是反作用,也可能没有作用。
2025-07-21 14:12:33
1085
原创 《RethinkFun深度学习》4.5 大数定律
X1X2XnX1X2...Xn为来自总体X的随机样本,X的数学期望为E[X],XˉX1X2XnnXˉnX1X2...Xnlimn→∞XˉEXn→∞limXˉEX。
2025-07-21 14:08:14
500
原创 《RethinkFun深度学习》4.4 数学期望与方差
在概率论里它表示随机变量与其期望值之间差的平方的期望,因为随机变量与其期望的差值有正有负,直接相加会互相抵消,所以这里用随机变量与其期望差的平方来衡量差异大小。比如,当我们说「火星石头的标准差为5厘米」时,就能直观感受到大部分石头的大小与均值相差在5厘米左右(如果数据分布比较集中时),而不必去理解平方后的方差值是多少。那么你可以计算总体方差。因为样本方差只采集了部分样本,不是整体样本,利用部分样本来评估总体方差,如果除以n是会产生偏差的,需要通过除以n-1来对偏差进行纠正。这是整体样本,它的真实均值为5。
2025-07-21 14:06:26
1122
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅