机器学习
Think@
Science flies me to the moon.
展开
-
(PyTorch)PyTorch中的常见运算(*、@、Mul、Matmul)
这个是让一个数,限制在你自己设置的一个范围内[min,max],小于min的话就被设置为min,大于max的话就被设置为max。我们可以发现的torch.div()其实就是/, 类似的:torch.add就是+,torch.sub()就是-,不过符号的运算更简单常用。上面的是对二维矩阵而言的,假如参与运算的是一个多维张量,那么只有torch.matmul()可以使用。pytorch中log是以e自然数为底数的,然后log2和log10才是以2和10为底数的运算。矩阵(张量)每一个元素与标量进行操作。原创 2023-10-24 15:45:08 · 1934 阅读 · 0 评论 -
(Note)机器学习面试题
关于A,具体推导详见《模式识别》的动态聚类算法,书中提到,这是一个局部搜索算法,不能保证得到全局最优解,算法结果受初始值和样本调整顺序的影响。直接使用0/1损失函数的话其非凸、非连续,数学性质不好优化起来比较复杂,因此需要使用其他的数学性能较好的函数进行替换,替代损失函数一般有较好的数学性质。LR,SVM,NN,KNN,KMeans,DT,NB都可以用map reduce并行.A.N(4, 7) B.N(4,√2+ √5) C.N(1 + √3,7) D.不确定。R^2越大,拟合效果越好,因此A对。原创 2023-10-02 22:08:37 · 947 阅读 · 0 评论 -
(Deep Learning)准确率和召回率的基础概念
比如:总共实际有60个男性,模型只找出了50个,那召回率=50/60=83.3%,用来衡量找出部分对实际真实部分的覆盖情况。比如:在所有样本中,模型预找出50人说他们都是男性,而找出的这波人里实际只有40人为男性,准确率=40/50=80%,用来衡量找出部分的准确度。算法模型的本质,是基于输入的各类变量因子,通过计算规则(模型or公式),得出预测结果。召回率100%,确保了正确的集合都被召回,但由于召回了大量错误集合,所以准确率很低。如下图所示,刚才4种集合,图形摊开的话,就是这个样子的。原创 2023-08-28 15:03:07 · 574 阅读 · 0 评论 -
(深度学习)类别不平衡数据集中IOU和mIOU的选择
此时,前景所占的比例太小,背景所占的比例太大,前景背景占比严重失衡。背景的IOU大大提高了mIOU,导致mIOU不再靠谱,更重要的是前景的IOU。测试集上的mIOU很高,但是实际的分割结果很差,几乎没有分割出前景,主要是因为要分割的目标占总面积之比太少,即出现样本不均衡的问题。原创 2023-04-25 20:14:40 · 857 阅读 · 0 评论 -
(Deep Learning)交叉验证(Cross Validation)
留一交叉验证是K折交叉验证的特殊情况,当K等于样本数N时,对于这N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。ps:划分之后,会存在训练集数据不足的问题,但是在公司的项目中你必然要选出一个合适的模型进行部署,不先进行训练集和测试集的划分是选不出来合适的模型的!交叉验证的方法在数据理解上较为简单,且具有说服性,但需要谨记的是,当样本总数过大时,使用留一法的时间开销极大。(2)每次将其中的一份作为测试集,剩下的9份(即K-1份)作为训练集,此时训练集就变成了(K-1)*D。原创 2023-04-17 22:22:22 · 3811 阅读 · 1 评论 -
(Note)深度学习Seed与结果的关系
在一个组里,老师为了发论文教我调seed让model有效,这是正常的吗?- 知乎 https://www.zhihu.com/question/555514972。原创 2022-10-11 21:33:18 · 652 阅读 · 0 评论 -
(Note)深度学习与人工提取的特征
(深度学习模型可能提取到一些人类不易察觉的特征,这些特征可能对结果的判定有着较大的贡献。可以把HOG特征的结果作为额外的一个Channel加入数据中让深度学习模型学习。如果仅仅给网络提供人工提取的特征,反而有可能会造成网络性能的下降。但是这种额外的工作对于模型来说不一定有很大的提高。1.略微提高 2.略微降低。原创 2022-10-05 14:41:12 · 2192 阅读 · 0 评论 -
(Note)深度学习模型的部署方式
因此,除了软件外,在硬件也上会下功夫,比如使用推理专用的NVIDIA T4、寒武纪MLU100等。相较于桌面级显卡,这些推理卡功耗低,单位能耗下计算效率更高,且硬件结构更适合高吞吐量的情况。软件上,一般部署时都不会直接上深度学习框架。OpenCV、OpenVINO都是intel的开源框架库,OpenCV的DNN模块其实调用的也就是OpenVINO,另外OpenvVINO在硬件加速方面使用了Intel自家CPU的集成显卡。模型部署的时候,我们仅需要实现数据处理、前向传播就行,不需要去管反向传播。原创 2022-10-03 10:44:03 · 2166 阅读 · 0 评论 -
(Note)影响基本K-均值算法的主要因素
3.初始类中心的选取。原创 2022-09-29 22:26:05 · 2091 阅读 · 0 评论 -
(Note)优化器Adam的学习率设置
从统计的角度看,Adam的自适应原理也是根据统计对梯度进行修正,但依然离不开前面设置的学习率。如果学习率设置的过大,则会导致模型发散,造成收敛较慢或陷入局部最小值点,因为过大的学习率会在优化过程中跳过最优解或次优解。同时神经网络的损失函数基本不是凸函数,而梯度下降法这些优化方法主要针对的是凸函数,所以在优化方面深度学习的学习率会设置的比传统机器学习小得多。如果学习率设置过高,Adam优化器只会矫正梯度,而不会影响设置的初始学习率,这时模型的Loss会出现较大的波动,这代表模型没有办法收敛。......原创 2022-07-21 21:43:49 · 15191 阅读 · 2 评论 -
(Note)神经网络中的特征融合方式(add/concate)
HengkaiGuo的回答-知乎https//www.zhihu.com/question/306213462/answer/562776112。对于神经网络中输入的两路特征图,如果通道数相同,则add融合方式等价于concate之后对应通道共享同一个卷积核。使用add融合方式相当于为网络提供了一种先验两路输入的特征图中对应通道的语义特征类似。可以看出,使用add融合方式可以避免不同通道间语义信息的混杂。1.使用add融合=对应通道的信息融合。...原创 2022-07-19 14:35:39 · 4741 阅读 · 0 评论 -
(Pytorch)BatchNorm中的track_running_stats参数
torch.nn.BatchNorm2d类:torch.nn.BatchNorm2d(num_features,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True,device=None,dtype=None)参数:Num_features:输入 (N,C,H,W)Eps: 为保证数值稳定性在分母上加入的一个极小的数,默认为:1e-5Momentum:用于计算running_mean和...原创 2021-12-10 21:48:58 · 4925 阅读 · 6 评论 -
深度学习训练数据中的特征重要性排名
查看神经网络模型特征重要性的思路:依次变动各个特征,通过模型最终预测的结果来衡量特征的重要性。神经网络特征重要性的获取步骤如下: 训练一个神经网络模型; 每次对一个特征列进行随机shuffle,并输入模型中进行预测得到Loss; 记录变动的每个特征列以及其对应的Loss; 每个Loss就是该特征对应的特征重要性,Loss越大,说明该特征对于模型越重要。 Code :import matplotlib.pyplot as pltfrom tqd...转载 2021-10-11 21:57:31 · 7711 阅读 · 3 评论 -
(Python)简单线性模型&穷举法优化
一个简单的线性模型,使用穷举法计算所有最小二乘误差,并生成分析图。import numpy as npimport matplotlib.pyplot as plt# 简单线性模型-穷举法优化x_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]# 前向传播def forward(x): return x*w# 最小二乘损失函数def loss(x,y): y_pred=forward(x) return (y_p.原创 2020-11-29 15:16:34 · 688 阅读 · 1 评论