计算机视觉
文章平均质量分 76
计算机视觉领域的基础专业知识学习笔记
JM-0808
本科在读
-AI算法实习生ing
展开
-
torch.bmm()函数详解
【代码】torch.bmm()函数详解。原创 2023-07-13 17:06:03 · 268 阅读 · 1 评论 -
14_感受野的概念及其计算方法
但这种方法还是可以应对面试时候的感受野计算问题的,若是研究过程中要计算非常准确的感受野大小的话,还是得再深入研究下,大家可以看看下面的两个参考资料。上面说了感受野的计算是与卷积计算相反的过程,卷积是从低层慢慢一层层卷积到高层的,所以感受野的计算采用的是Top-Down方式,即从最高层向低层迭代计算。根据感受野的概念,大家可以体会到感受野的计算应该与卷积的计算是相反的过程,所以先回顾下卷积输入输出的大小关系公式:(以高度为例)其中F为滤波器的边长,P为padding的大小,S为步长。原创 2023-06-04 01:30:41 · 119 阅读 · 0 评论 -
13_各种卷积方式串讲
CNN 从 2012 年的 AlexNet 发展至今,各种网络结构层出不穷,尝试了几乎所有可能性的结构搭配以试图找到效果更好的那种,再通过结果去解释过程,这大概就是做深度学习的人的无奈之处吧,每天都有新论文发出,每天都会有新的网络结果,网络结构如此,卷积 (Convolution) 方式也不例外,各种可能性的卷积过程改变方式都出现了(以后大概还有出现新的卷积方式的),效果各异,特点不同,所以想通过这篇文章将各种卷积方式捋一捋,体会下大牛们的智慧!空间可分离卷积简单地将卷积核划分为两个较小的卷积核。原创 2023-06-03 22:38:11 · 110 阅读 · 0 评论 -
12_CNN在图像上表现好的原因
为什么图像识别领域要使用 CNN ,其实潜在意思是在问 CNN 中的卷积层与全连接层相比好在哪里?为什么这么说,因为在卷积神经网络之前,一般的网络都采用的是全连接的方式,前一层的每一个单元都对下一层的每一个单元有影响,而 CNN 中虽然存在全连接层,但是更核心的是前面用于提取特征的卷积层,所以这个问题便转换成了卷积层和全连接层的比较问题。在transformer火起来之前,图像识别、语义分割、目标检测等相关工作中绝大部分是将CNN作为BackBone的,那为什么CNN能在图像上表现得那样出色呢?原创 2023-05-31 17:18:36 · 202 阅读 · 0 评论 -
11_梯度消失和爆炸以及解决方法
靠近输出层的 hidden layer 3 的权值更新正常,但是靠近输入层的 hidden layer 1 的权值更新非常慢,导致其权值几乎不变,仍接近于初始化的权值。梯度爆炸则是与梯度消失相对的一种情况,指的是误差梯度在反向传播过程中变得非常大,以至于误差梯度超过了计算机可以表示的范围,这会使得权重的更新变得不可控,最终导致模型无法训练或者出现梯度异常的情况。根据反向传播的计算规律,层数越多,越是前面的层的参数的求导结果越小,于是便导致了梯度消失情况的出现。为 sigmoid 函数,原创 2023-05-31 16:56:32 · 384 阅读 · 0 评论 -
10_理清深度学习优化函数发展脉络
SGD只计算当前梯度更新参数,完全没有考虑历史梯度,但这样有一个问题是假如当前参数处在损失函数的局部最低点处,即梯度为0,因为梯度为0,所以参数不再更新,也就是说不管你之前历史梯度多大,下降地多快,只要你当前梯度为0,那就只能停在这里,也就意味着冲不出这个局部最低点。在Momentum算法中,一个动量项被引入到梯度下降的更新公式中:使用上一次梯度的方向和当前时间步的梯度的方向的加权平均作为更新方向,从而减少振荡,增加在参数空间中的移动速度。Nadam是Adam的变体之一,是一种基于梯度下降算法的优化器。原创 2023-05-31 16:07:42 · 108 阅读 · 1 评论 -
09_为什么图像输入网络前要进行归一化
我的回答是“特征归一化可以消除特征之间量纲不同的影响,不然分析出来的结果显然会倾向于数值差别比较大的特征,另外从梯度下降的角度理解,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解”。接着他又抛出了一个问题“图像的像素值都是在0到255之间,并不存在量纲的差别,那为什么还需要做归一化呢?:根据求导的链式法则,w的局部梯度是X,当X全为正时,由反向传播传下来的梯度乘以X后不会改变方向,要么为正数要么为负数,也就是说w权重的更新在一次更新迭代计算中要么同时减小,要么同时增大。原创 2023-05-30 14:23:51 · 434 阅读 · 0 评论 -
08_Pooling层的作用以及如何进行反向传播
pooling层没有可学习的参数,在CNN的反向传播中,pooling层需要做的仅仅是将误差传递到上一 层,而没有计算梯度的过程。原创 2023-05-30 12:39:34 · 94 阅读 · 1 评论 -
07_ReLU函数在0处不可导,为什么还能用
训练神经网络的时候,一旦学习率没有设置好,第一次更新权重的时候,输入是负值,那么这个含有ReLU的神经节点就会死亡,再也不会被激活。因为:ReLU的导数在x>0的时候是1,在x<=0的时候是0。如果x<=0,那么ReLU的输出是0,那么反向传播中梯度也是0,权重就不会被更新,导致神经元不再学习。其实我们可以人为提供一个伪梯度,例如给它定义在0处的导数为0,其实tensorflow在实现ReLU的时候也是定义ReLU在0处的导数为0的。来近似,这个函数是连续的,它在0点的导数是0.5。原创 2023-05-30 11:11:04 · 983 阅读 · 1 评论 -
06_在机器学习中,为什么使用均方误差而不使用绝对值误差
在实际的应用中,由于均方误差对于离群点更具鲁棒性,所以通常在数据中存在离群点的情况下,MSE 会比 MAE 更优秀,可以看到,对于真实标签为负数的情况,使用 MAE 的误差度量方法产生了一个较大的误差值(0.5),而使用 MSE 的误差度量方法产生了一个较小的误差值(0.375)。均方误差的理论基础是假设误差服从高斯分布。也就是说,我们假设预测值的误差服从正态分布,并且使用均方误差最小化误差,可以从概率最大化的角度来认为我们假定预测值的误差是正常的,这是一个典型的高斯分布下的最大似然估计问题。原创 2023-05-30 10:42:58 · 526 阅读 · 1 评论 -
05_三种常见的激活函数
激活函数原创 2023-05-28 18:49:40 · 51 阅读 · 0 评论 -
03-手动实现卷积
在这个例子中我们只是简单的进行了卷积操作,输出1通道的特征图,而在卷积网络之中,我们会经常涉及到通道映射的操作,若想实现此操作,只需要初始化对应通道数的卷积核即可,如想将32×256×256的特征图映射到64×H×W,我们可以初始化64×32×H_×W_个卷积核进行卷积。投影到输出特征图:将结果值填充到输出特征图的相应位置上,输出特征图形状由输出通道数、步幅和填充方式决定。滑动卷积核:卷积核在输入特征图上滑动,对输入数据的每个位置进行元素乘法操作并求和,得到一个输出标量值。原创 2023-05-25 13:59:38 · 307 阅读 · 0 评论 -
04_BN层的深入理解
BN层,手动实现原创 2023-05-27 16:18:16 · 288 阅读 · 2 评论 -
02-过拟合和欠拟合的表现与解决方法
同时,模型的拟合能力是非常强的,如果只根据较少的数据进行训练,模型会专门追求拟合这些数据,而不是追求对整个数据集的更好的泛化能力,从而导致过度拟合。批量归一化(Batch Normalization,BN)是一种常见的神经网络技术,其主要作用是在网络中每一层输入的数据进行归一化,从而使得输入数据具有更加标准的分布,增强了模型的稳定性和泛化性能,在一定程度上可以抑制过拟合。因为输入数据被归一化,最终的输出更加稳定,使得模型更容易收敛,从而可以使用更大的学习率,加速训练的过程。BN层增加了模型的随机性。原创 2023-05-24 21:00:30 · 4571 阅读 · 3 评论