(完全针对我本人的学习记录) 1.学习步骤: 刘老师视频《PyTorch深度学习实践》完结合集-----李沐老师的书《动手学深度学习》-----李沐老师视频B站主页 2.下一阶段任务: mtcnn模型原理,facenet原理及训练 mtcnn+facenet学习 动手实现:anoconda安装,先看看需要anoconda里的python版本,需要python37/38 python与anaconda安装 安装pytorch 学习训练facenet模型,yolov3(毕设)/yolov5(很多案例) 3.一些术语: 1.LFW :是数据集 2.CNN的知识: 基本流程:卷积-ReLU-池化 (1)卷积 卷积核(特征提取器) 卷积运算,不同的卷积核对原图进行运算就能提取出不同的特征 (2).池化 将得到的FeatureMap缩小,池化要求一定要保留原特征图的特征 最大池化:选择被扫描区域内的最大值,平均池化:取被扫描区域内的平均值 在处理边缘时的操作称为(Padding)如果对图像采用最大池化,则在边缘补零来提取边缘特征 (3)ReLU激活函数(修正线性单元) 把负数抹成零 (4)全连接层 特征图们展开得到一条特征数组,对数组按目标图的数组权值操作得到一个判断是否为目标的概率数。 3.一些神经网络可视化图像 4.模型性能评测 MAP值,ROC 5.深度可分离卷积块— 各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)
6.输入通道:输入通道指的是输入了几个二维信息,也就是很直观的rgb图有r,g,b三个通道,这决定了卷积核的通道数,即输入图像的通道数决定了卷积核通道数。 输出通道:输出通道是指卷积(关联)运算之后的输出通道数目,它决定了有几个卷积核,即需要输出通道数为几,就需要几个卷积核。 在卷积层的计算中,假设输入是H x W x C, C是输入的深度(即通道数)【由通道数形成一个类似三维的结构】,假设卷积核的大小为K x K,一个卷积核就为K x K x C,如果有P个K x K x C的卷积核,这样每个卷积核应用于输入都会得到一个通道,所以输出有P个通道。如下图 卷积计算:每次滑动的位置,对应位置相乘再求和,然后将3层操作求和+偏置b 详见如何确定CNN的卷积核通道数和卷积输出的通道数(深度) 输入通道个数 = 卷积核通道个数 卷积核个数 = 输出通道个数
6.搭建网络:即搭建神经网络 在机器学习中,搭建网络主要是分建立函数模型,建立损失函数和寻找最优值三步。在搭建深度学习网络时,主要步骤为初始化参数,加载数据,搭建网络,训练网络和保存网络。在完成深度学习网络搭建后,我们需要了解网络中的参数以及如何调参以提高网络的准确率。在深度学习网络中的参数有一类是可以通过梯度下降算法进行调节,以找到对应于网络最优效果的参数值;另一部分不可以通过网络优化,不能自动收敛到最优值,但是其数值同样对深度网络的性能产生影响,这种参数被称为超参数。超参数主要有layer层数,epoch数,学习率和batchsize等等。 所以我们在给定数据上搭建模型,并通过网络训练拟合出很好的函数模型时,我们需要注意超参数的选择。同时在判断模型优劣时不仅需要考虑模型在训练数据集上的准确率,同时需要考虑模型在测试数据集上准确率,从而避免过拟合现象发生。(不确定是否正确)
7.tensorboard 8.SVM分类器 9.数据集格式VOC,COCO 10.云平台的使用 -colab 11.triplet_loss: triplet是一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor (记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative (记为x_n),由此构成一个(Anchor,Positive,Negative)三元组。triplet loss的目的就是通过学习,让x_a和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且要让x_a与x_n之间的距离和x_a与x_p之间的距离之间有一个最小的间隔,即Triplet loss可以帮我们学习一种人脸嵌入,使得同一个人的人脸在嵌入空间中尽量接近,不同人的人脸在嵌入空间中尽量远离。 Tensorflow实现Triplet Loss 12. L1标准化:每个元素/L1范数 L2标准化:每个元素/L2范数 12.损失函数: 损失函数的定义:衡量模型模型预测的好坏,损失函数就是用来表现预测与实际数据的差距程度。 损失函数(loss function)是用来估量你模型的预测值f(x)或叫y_hat与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。 常用的损失函数:softmax,交叉熵 详见 损失函数 13.sigmoid函数,softmax,交叉熵 深层神经网络的搭建这里面有讲到。 常用的特征层激活函数relu,输出层激活函数softmax、sigmoid,激活函数是一种非线性函数,它是衡量网络深度的标准。 14.SGD 15.
|