torch
文章平均质量分 90
Here-We-Are
模式识别、图像处理、生物特征、深度学习
展开
-
046、注意力机制
动物需要在复杂环境下有效关注值得注意的点。人类根据随意线索和不随意线索选择关注的点。原创 2024-04-26 15:51:33 · 311 阅读 · 0 评论 -
045、seq2seq
基于RNN实现,通过RNN生成器不断获取输入,更新隐藏状态,将最后生成的隐藏状态传递给解码器,然后自循环迭代直到输出停止。原创 2024-04-23 16:43:40 · 259 阅读 · 0 评论 -
044、门控
关注一个序列,不是每个观察都同等重要,传统RNN会一直在Whh中隐含所有以前的信息,包括了很多不必要的信息。门控神经网络就是设计一定的控制单元,使得模型只关注相关需要的,忘记不相关的。原创 2023-12-26 15:43:49 · 169 阅读 · 0 评论 -
043、循环神经网络
第一个对于序列模型的网络,RNN。原创 2023-12-25 21:29:15 · 346 阅读 · 0 评论 -
042、文本与语言模型
在语言模型中,需要对文本进行预处理,进行数字化的一系列操作,而后才能进行网络的拟合。原创 2023-12-25 19:36:07 · 355 阅读 · 0 评论 -
042、序列模型
很多连续的数据都是有前后的时间相关性的,并不是每一个单独的数据是随机出现的。在时序中会蕴含一些空间结构的变化信息、先验因素、趋势与常理。而且序列数据在日常生活中是相当多的。原创 2023-12-25 09:30:09 · 65 阅读 · 0 评论 -
041、基于CNN的样式迁移
通过CNN的特征提取,可以实现将一个图片的样式模式特征迁移到另一张图像上。原创 2023-12-24 15:46:33 · 218 阅读 · 0 评论 -
040、全卷积
全卷积网络先使用卷积神经网络抽取图像特征,然后通过1×1卷积层将通道数变换为类别个数,最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸。 也就是一个类别通道预测一张类别掩膜图,因此,模型输出与输入图像的高和宽相同,且最终输出通道包含了该空间位置像素的类别预测。 主要是依靠从resnet18的卷积层提取特征,然后将最后的全连接层和全局卷积层换成全卷积层,依靠转置卷积来拟合最后的掩膜图。详情见教材。原创 2023-12-24 15:19:35 · 88 阅读 · 0 评论 -
039、转置卷积
通常来说,卷积不会增大输入的高宽,通常要么不变,要么减半;如果想要直接padding来增加高宽,在不断的卷积过程中,padding的0越来越多,最后要做像素级的判断时候,由于有效图像变得太小,将难以进行分割。所以引入转置卷积来增大输入的高宽。原创 2023-12-24 10:35:45 · 163 阅读 · 0 评论 -
038、语义分割
语义分割,语义分割是计算机视觉领域的一项重要任务,旨在将图像中的每个像素分配到其对应的语义类别中。与物体检测或图像分类不同,语义分割不仅要识别图像中的对象,还要为每个像素标注其语义类别,实现对图像的细粒度理解。在语义分割中,每个像素都被赋予一个标签,表示该像素属于图像中的哪个语义类别,例如人、车、道路、树等。这使得语义分割成为深度学习在医学图像分析、自动驾驶、农业图像处理等领域中的关键技术之一。常见的语义分割方法包括基于卷积神经网络(CNN)的深度学习方法。原创 2023-11-19 16:40:34 · 256 阅读 · 0 评论 -
037、目标检测-SSD实现
SSD原创 2023-11-19 12:44:28 · 1424 阅读 · 0 评论 -
037、目标检测-算法速览
快速过一下目标检测的各类算法。原创 2023-11-19 10:04:46 · 631 阅读 · 0 评论 -
036、目标检测-锚框
边缘框这样一个指定roi区域的操作对卷积神经网络实际上是很不友好的,这可能会对网络感受野提出一些特定的要求,所以诞生了锚框的技术:锚框(Anchor Box),也被称为先验框(Prior Box),是目标检测领域中一种用于提高模型准确性的技术。目标检测任务涉及识别图像中的对象并定位它们的位置。锚框在这方面发挥了关键作用。在目标检测任务中,模型通常需要为图像中的每个位置预测对象的存在以及其边界框(bounding box)。锚框的作用是为模型提供一组预定义的框,这些框具有不同的大小和宽高比。原创 2023-11-18 17:59:33 · 1885 阅读 · 0 评论 -
035、目标检测-物体和数据集
目标检测是计算机视觉中应用最为广泛的,之前所研究的图片分类等都需要基于目标检测完成。在图像分类任务中,我们假设图像中只有一个主要物体对象,我们只关注如何识别其类别。然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或目标识别以下是一些主流的目标检测算法。请注意,领域中的进展可能导致新的算法和方法的出现,因此建议查阅最新的文献和研究以获取最新信息。原创 2023-11-18 16:20:48 · 674 阅读 · 0 评论 -
034、test
综合方法试一下。原创 2023-11-17 22:43:39 · 1267 阅读 · 0 评论 -
033、微调
微调(Fine-tuning)是深度学习中的一种常见策略,它通常用于预训练模型在特定任务上的性能提升。微调的过程涉及在一个已经在大规模数据上进行了预训练的模型的基础上,通过使用目标任务的相关数据集进行进一步训练。在大规模的数据集上,使用一个深度学习模型进行预训练。这个数据集通常是非常庞大的,例如ImageNet包含数百万张图像。将预训练的模型应用于特定的任务,使用与该任务相关的小型数据集进行微调。这个小型数据集可能是与任务密切相关的领域或者任务本身的数据。原创 2023-11-17 11:17:54 · 82 阅读 · 0 评论 -
032、数据增广*
深度学习的数据增强(Data Augmentation)是一种技术,用于通过对原始数据进行多样性的变换和扩充,以增加训练数据的多样性,提高模型的泛化能力。这有助于减轻过拟合问题,提高深度学习模型的性能。这些案例表明,数据增强是深度学习中的一种重要技术,可以显著提高模型的性能和泛化能力。不同领域的数据增强方法可能有所不同,但它们都通过增加数据多样性来帮助模型更好地理解和泛化数据。原创 2023-11-02 10:53:18 · 324 阅读 · 0 评论 -
031、硬件篇
上层了解了一圈了,仰望星空也要脚踏实地,这次来看看地上的沙子怎么飞的。原创 2023-11-01 23:42:23 · 55 阅读 · 0 评论 -
030、Res的妙处
resnet为什么能缓解梯度下降和梯度爆炸呢:ResNet(Residual Networks)能够缓解梯度下降问题,特别是梯度消失和梯度爆炸问题,主要因为它引入了残差连接(residual connections)。梯度下降问题的根本在于深层神经网络难以训练的原因之一是梯度在反向传播过程中会逐渐减小,导致浅层的权重更新比深层的权重更新更显著,从而导致梯度消失。另一个问题是在某些情况下,梯度可以变得非常大,导致梯度爆炸。ResNet 通过引入残差连接来解决这些问题。原创 2023-10-29 17:03:53 · 73 阅读 · 0 评论 -
029、经典神经网络*-6
目录之——ResNet杂谈正文1.问题:深度不是绝对的优化方法2.实现2.1 残差快 2.2 stages小结 一味地增加模型复杂度显然是不可取的,就算运算资源足够,也可能有参数空间的偏移,依靠单纯的大和深来解决问题过于野蛮暴力。 模型的深度并不能保证模型的优秀,更复杂的模型不一定能拿到更好的参数,就是说卷错方向了: resnet核心思想就是就算增加网络也不要使得和之前的差距太大,所以用添层的输入和添加层的输出来一起影响最后输出,而对于残差块所需要学习的自然成了最原创 2023-10-28 22:29:40 · 67 阅读 · 0 评论 -
028、批量归一化
训练深层神经网络是十分困难的,特别是在较短的时间内使他们收敛更加棘手。而批量规范化是一种流行且有效的技术,可持续。再结合后面将介绍的残差块,批量规范化使得研究人员能够训练100层以上的网络。批量归一化(Batch Normalization)是一种深度学习中常用的技术,旨在加快神经网络的训练速度、提高稳定性,并有助于避免梯度消失或梯度爆炸等问题。其核心思想在于对神经网络的输入进行标准化处理,以使得每层网络的输入保持较稳定的分布。原创 2023-10-28 21:42:47 · 80 阅读 · 0 评论 -
027、经典神经网络-5
GoogLeNet是由Google于2014年提出的深度卷积神经网络架构,它在ImageNet图像分类挑战赛中取得了显著的成功,具有一些独特的特点和创新之处。GoogLeNet引入了Inception模块,这是一种由,它们,并允许网络同时学习不同层次和尺度的特征。这有助于捕捉丰富的特征,从局部特征到全局特征,提高了网络的表示能力。GoogLeNet中的各个Inception模块之间采用了密集连接的方式,即每个模块的输出都与后续模块的输入相连接,使信息能够更自由地流通。原创 2023-10-28 16:06:30 · 61 阅读 · 0 评论 -
026、经典神经网络-4
之——NiN基础杂谈NiN(Network in Network)是一种深度卷积神经网络架构,旨在改善传统卷积神经网络的特征提取能力。它由Min Lin、Qiang Chen和Shuicheng Yan于2013年提出,其主要特点如下:1. 具有微型多层感知机(MLP)结构: NiN的一个显著特点是在卷积层内部引入了微型多层感知机结构,通常称为MLPConv。传统的卷积层使用卷积核与输入特征图之间的点积操作,而MLPConv使用了一个小型的全连接神经网络(MLP)来代替卷原创 2023-10-27 23:03:56 · 136 阅读 · 0 评论 -
025、经典神经网络-3
以VGG16为例,在VGG16中,相比于AlexNet,其最大的改进是采用几个3 × 3的卷积核代替了AlexNet中的较大的卷积核,主要是11 × 11 1,5 × 5。总之,VGG网络的特点在于其深度、一致的结构和成功的性能,对于深度学习的发展和计算机视觉领域的进步产生了重要影响。相比于大的卷积核,采用多个较小卷积核的堆叠,一方面能通过多层的非线性特性增强模型的学习能力(卷积+ReLU为一个组合),同时能进一步减少模型的参数。VGG网络非常深,有16层或19层的卷积层,这在当时是一种突破。原创 2023-10-27 00:00:25 · 71 阅读 · 0 评论 -
023、经典神经网络-2
AlexNet是一个深度卷积神经网络,在2012年ImageNet图像分类赛(ILSVRC)中取得了重大突破,标志着深度学习在计算机视觉领域的崭露头角。原创 2023-10-25 18:47:10 · 66 阅读 · 0 评论 -
022、经典神经网络-1
当年为了处理邮局手写邮编信息,LeNet可以说是当时的第一个将卷积应用起来的神经网络模型,打败了当时主流的SVM模型。随之同时提出的就是我们最熟悉的MNIST数据集。原创 2023-10-24 13:05:18 · 70 阅读 · 0 评论 -
021、池化层
单有卷积层会出现什么问题呢,它对位置过于敏感了:池化层(Pooling Layer)是卷积神经网络(CNN)中的一种关键组件,其作用是对输入数据进行下采样,。池化层通过减小特征图的尺寸来降低计算复杂度。这可以在一定程度上减少需要训练和推断的参数数量,从而加速训练和推断过程。降维也有助于防止过拟合,因为减小的特征图通常包含了主要特征信息。池化层提供了平移不变性,这意味着无论特征出现在图像的哪个位置,它都会被池化层捕捉到。这有助于模型学习到图像中的特征而不受其精确位置的影响。原创 2023-10-23 17:00:01 · 172 阅读 · 0 评论 -
020、卷积层多输入输出通道
MobileNet 的核心原理是通过深度可分离卷积(Depthwise Separable Convolution)和逐点卷积(Pointwise Convolution)来减少网络的参数数量和计算复杂性,从而实现高效的模型。这是 MobileNet 的核心组件之一。这里输入和输出具有相同的高度和宽度,输出中的每个元素都是从输入图像中同一位置的元素的线性组合。总之,多输入多输出通道在卷积神经网络中的应用可以帮助网络更好地处理复杂数据,学习更丰富的特征表示,并在各种计算机视觉和深度学习任务中取得更好的性能。原创 2023-10-23 16:26:51 · 473 阅读 · 0 评论 -
019、卷积层填充和步幅
综合起来,填充和步幅是卷积神经网络中的两个重要超参数,它们可以调整输出特征图的尺寸、感受野以及网络的计算和内存需求。通过合理选择填充和步幅,可以更好地适应不同问题的需求,同时确保网络有效地提取特征。这些概念对于卷积神经网络的设计和训练非常关键。卷积神经网络(Convolutional Neural Network,CNN)中的填充(Padding)和步幅(Stride)是两个重要的概念,它们用于控制卷积层的输出大小和感受野。卷积核在有限空间的图像上会逐层减少输出元素大小。原创 2023-10-23 10:23:18 · 363 阅读 · 0 评论 -
018、卷积层
MLP是一个理论有最优的模型概念,理论上MLP对于函数非线性的升级使得一个任务一定能在模型状态空间内找到一个对应的最优模型,但实际的使用中难免会出现离谱的冗余,类似以下的例子:MLP是一个根据输入决定的相对稠密的不做特征处理的认知方式,而实际上,神经网络类脑的发展使得我们自然而然地产生思考:我们人类的学习方式是考虑所有特征的吗?原创 2023-10-22 21:14:49 · 85 阅读 · 0 评论 -
017、神经网络基础
回顾简单的感知机,已经用到了神经网络的一些概念,torch用nn.Sequential来定义module,广泛意义来说,任何一个层或者神经网络都是module的一个子类,这样可以继承到很多好用的函数,在之后构建新的网络结构时候会更加方便。是 PyTorch 中用于构建神经网络模型的一个容器类,它允许你按顺序组合不同的神经网络层。它是一种简便的方式来定义神经网络的结构,特别适用于那些由一系列层按照顺序组成的模型。原创 2023-10-17 17:21:23 · 212 阅读 · 0 评论 -
016、阶段性实验
把之前的多层感知机、权重衰退、丢弃法、xavier模型初始化都浅试一下,使用kaggle房价数据集。原创 2023-10-17 10:51:03 · 79 阅读 · 0 评论 -
015、数值稳定性和模型初始化
梯度消失和梯度爆炸是深度网络中常见的问题。在参数初始化时需要非常小心,以确保梯度和参数可以得到很好的控制。合理的初始权重与激活函数选取可以提升数值稳定性。需要用启发式的初始化方法来确保初始梯度既不太大也不太小。ReLU激活函数缓解了梯度消失问题,这样可以加速收敛。随机初始化是保证在进行优化前打破对称性的关键。Xavier初始化表明,对于每一层,输出的方差不受输入数量的影响,任何梯度的方差不受输出数量的影响。原创 2023-10-13 19:47:20 · 100 阅读 · 0 评论 -
014、丢弃法*
正则化其实就是一种规约与引导,靠模型容量与数据复杂度的匹配度来进行一个约束的引入。这个约束像是一个先验知识,具有一定引导性使得模型不至于产生过拟合。正则化方法有很多,我们上一篇所提到的权重衰退就是从模型参数范围的限制入手加以正则,而如果从从一开始投入数据时候加入噪声则可以认为是提高数据的复杂性以匹配当前模型复杂度,也可以理解为一种正则化。dropout法,动机是认为一个好的模型需要对输入数据的扰动或者噪声鲁棒,也要对模型中的扰动或噪声有鲁棒性。于是它在层之间加入噪声。原创 2023-10-12 22:41:08 · 62 阅读 · 0 评论 -
013、权重衰退*
这意味着在每次参数更新时,模型的权重会同时受到减小梯度的影响和权重衰退项的减小影响,从而鼓励模型的权重保持较小的值。权重衰退的目的是降低模型的复杂度,防止过拟合,并提高模型的泛化能力。权重衰退的效果是使模型更加偏向于学习较小的权重,从而限制了模型的复杂性。权重衰退是最常见的处理模型过拟合的方法,控制模型容量要么通过缩减模型结构,要么选择控制权重值来压缩模型参数,权重衰退就是后者。通过这种方式,L2正则化鼓励权重参数保持较小的值,因为如果 w 变得太大,L2正则化项的梯度将迫使它减小,从而减少过拟合的风险。原创 2023-10-12 17:37:19 · 106 阅读 · 0 评论 -
012、模型与评估
注意,验证集与测试集都不会出现在训练集,可以把训练集理解为平时做的题(就是平时的训练集), 验证集是模拟考(注意考试不能有原题,不能出现训练集),通过模拟考你可以不断调整自己的知识面和状态(对于模型啦来说就是优化超参数),你也可以多次模拟考,但最后你是面对期末考(测试集)。最终大考只能考一次,一锤定音,你不能再去调整自己的超参数,因为如果你凭借最终考试的感觉和经验再去调整自己再考一次的话就是作弊(怎么能把期末考当模拟考呢),也就是我们机器学习里面常说的特化训练这一常犯的错误。原创 2023-10-11 23:05:37 · 135 阅读 · 1 评论 -
011、多层感知机代码实现
这里会用到前面softmax章节的函数。原创 2023-10-10 17:30:15 · 149 阅读 · 1 评论 -
010、多层感知机原理
本科阶段很早就接触了感知机模型,模式识别也好机器学习也罢都是反复提及。如果说线性回归、logistic回归以及softmax是从数学角度对预测做解释的话,笔者感觉感知机模型更加接近于我们生物学的神经元模型,显得更为生动活泼。如果说所有的机器学习都可以抽象为模型求解问题:那么感知机无疑是今后构建神经网络或是深度神经网络的重要基石。在数学层面它就是一个单一的线性回归加上一个激活函数,logistic回归就是一个使用sigmoid函数为激活函数的感知机。原创 2023-10-10 11:20:01 · 276 阅读 · 1 评论 -
009、softmax单层神经网络手撕
逻辑很简单,但值得学习的是代码的严密框架结构与可视化的功能。原创 2023-10-08 22:58:28 · 431 阅读 · 1 评论 -
008、图像分类数据集
MNIST应用极其广泛,但太旧太老,所以这里用Fashion-MNIST不同于MNIST手写数据集,Fashion-MNIST数据集包含了10个类别的图像,分别是:t-shirt,trouser,pullover,dress,coat,sandal,shirt,sneaker,bag,ankle boot,每一个样本都是28*28的黑白图像以及其对应的标签,相对于简单手写数据集稍微复杂。原创 2023-10-08 21:25:56 · 253 阅读 · 1 评论