基本理论知识的学习
概念的辨析
欠拟合:
模型学习能力不足
过拟合:
单纯只对一部分数据处理能力较强,对于其他数据无处理能力
泛化能力:
指处理未被观察过的数据的能力
损失函数:
交叉熵误差和均方误差
激活函数:
主要是提供非线性因素,避免单纯线性组合
梯度:
各个量的偏导数的集合
计算图:
只需要局部计算,通过传递计算结果,可以获得全局的复杂的计算结果
误差反向传播算法:
就是反向链式求导法则
四维数组:
x = np.random.rand(10, 1, 28, 28)对应10个高为28,长为28,通道数为1的数据
学习心得:
- 全连接层的数据的形状会被忽视,而卷积神经网络可以解决这一问题,比如minist手写字体的识别全连接层会把28*28变成一个长度为784的数据。
- 通过加深神经网络,可以减少学习数据,通过叠加小型滤波器叠加非线性函数,可以表现更加复杂的东西
3.卷积:卷积核的通道数(层数)就是输入通道的数量,卷积核的数量就是输出通道的数量,深度改变很简单,卷积核深度和输入深度一样,卷积核数量和输出数量一样就行了。
反向传播过程
基本流程:
loss,gard,梯度更新,其中loss函数本身就是由w11到wxy这么多参数组成的一个函数,所以数值微分可以直接求导
gard计算方法
数值微分:直接对loss函数对于权值参数求导来算梯度比如L对w11求导为0.2,则w11增加h,L增加0.2h,所以w11向负方向更新
反向误差传播:基于链式法则,反向传播时,先将节点的输入信号(右边的)乘以节点的局部导数(偏导数),然后再传给下一个节点
梯度更新:
采用优化器进行更新
深度学习基本流程:
前提
神经网络存在合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为“学习”。神经网络的学习分成下面4个步骤。
步骤1(mini-batch)
从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减小mini-batch的损失函数的值。
步骤2(计算梯度)
为了减小mini-batch的损失函数的值,需要求出各个权重参数的梯度。梯度表示损失函数的值减小最多的方向。
步骤3(更新参数)
将权重参数沿梯度方向进行微小更新。
tensorflow笔记
卷积是什么,卷积就是特征提取器CBAPD
池化层的作用总结:
在卷积神经网络中通常会在相邻的卷积层之间加入一个池化层,池化层可以有效的缩小参数矩阵的尺寸,从而减少最后连接层的中的参数数量。所以加入池化层可以加快计算速度和防止过拟合的作用。
BN层总结:
最重要的作用是让加速网络的收敛速度,调整归一化力度
pytorch学习笔记
dataset:提供一种方式去获取数据及其label
1、如何获取每一个数据机器label
2、告诉我们总共有多少数据
dataloader:为后面的网络提供不同的数据形式
tensorboard:用于导入图片,查看要用于深度学习的图片的性质
transform:改变图片的格式,大小,形式(总的来说,就是图片变换)
torch.size:
torch.size(x,x,x,x)分别为batchsize,channel,长,宽,reshape函数也有这四个参数,把其中一个设置为-1,其他的设置为你想要的,它就会自动调整好shape
lossfuction
L1loss:每个相减,比如X=1,2,3 Y=2,2,5, L1loss=((2-1)+(2-2)+(5-3))/3=1
还有均方误差(减一减在平方),交叉熵(tlogy)
优化器(参数更新):
主要分层
卷积层,池化层,非线性激活层,正则化层,dropout
正则化层和dropout层作用:防止过拟合,第一个(权值衰减)通过在损失函数上加上权重的平方范数,第二个通过随即删除神经元
yolov5部分
检测部分
img_size:例如img_size设置为640,假设图片原来尺寸为(1080, 1920),我们想要resize的尺寸为(640,640)。要想满足收缩的要求,应该选取收缩比例640/1920 = 0.33.则图片被缩放为(360,640).下一步则要填充灰白边至360可以被32整除,则应该填充至384,最终得到图片尺寸(384,640)