图像识别 and Resnet 网络拆解
文章平均质量分 89
从零开始,详细介绍图像识别背景知识,拆解Resnet网络算法
董董灿是个攻城狮
阿里云社区专家博主,AI算法工程师
展开
-
什么是神经网络的非线性
大家好啊,我是董董灿。最近在写《》的小册,其中一部分说到激活函数的时候,谈到了神经网络的非线性问题。今天就一起来看看,为什么神经网络需要非线性,或者说为什么它是一个非线性系统。原创 2023-12-10 12:00:28 · 792 阅读 · 0 评论 -
一文理解什么是交叉熵损失函数以及它的作用
今天看一个在深度学习中很枯燥但很重要的概念——交叉熵损失函数。作为一种损失函数,它的重要作用便是可以将“预测值”和“真实值(标签)”进行对比,从而输出 loss 值,直到 loss 值收敛,可以认为神经网络模型训练完成。那么这个所谓的“交叉熵”到底是什么,为什么它可以用来作为损失函数呢?原创 2023-12-08 22:44:09 · 2385 阅读 · 0 评论 -
想学计算机视觉入门的可以看过来了
文章写了有一段时间了,期间不少小伙伴来咨询如何自学入门AI,或者咨询一些AI算法。90%的问题我都回复了,但有时确实因为太忙,没顾得过来。在这个过程中,我发现很多小伙伴问的问题都类似:比如如何入门计算机视觉,某某算法是做什么的,有什么作用。之前写的文章由于过于分散,不成体系,很多知识点没有串联起来。原创 2023-11-29 08:46:05 · 1634 阅读 · 0 评论 -
什么是 dropblock
那么如图 b 所示,随机丢弃激活单元的方法,仅仅是丢弃了单个单元,剩余的绿色区域中仍然包含了原来的特征(比如耳朵、嘴巴和腿的特征),因此这种单纯的 dropout 方法并不有效。而连续地将一大块区域丢弃(图c),却可以直接丢掉一些特定的区域信息(比如将左上角的耳朵信息全部丢掉,或者右下角的腿的信息),从而强制剩余的神经元去学习更重要的特征。由于图像像素局部性的存在,假设绿色区域中左上角激活的为狗子的耳朵,中间部分激活的为狗子的嘴巴,右下激活的为狗子的腿。原创 2023-11-26 19:27:04 · 973 阅读 · 0 评论 -
全连接层是什么,有什么作用?
全连接和卷积的区别,除了上面说的前者是全局视野,卷积是局部视野之外,还有一个很重要的联系,那就是如果卷积的卷积核变为1x1,那么相当于卷积核的每一个像素都与输入图片的每一个像素相关联,此时。当你找到一片面包之后,你根本不知道你找到的是不是全部的面包,所以你们所有的蚂蚁开了个会,互相把自己找到的面包的信息分享出来,通过开会分享,最终你们确认,哦,你们找到了一个大面包。上面说的蚂蚁开会的过程,就是全连接,这也是为什么,全连接需要把所有的节点都连接起来,尽可能的完成所有节点的信息共享。原创 2023-10-25 23:39:14 · 1435 阅读 · 0 评论 -
什么是残差网络结构
自从有了残差结构,很多网络开始借鉴这种网络设计方法,甚至有些网络会直接把res block,也就是残差块当做一个网络单元来用,这样网络可以设计的更深,提取特征的效果也就更好。但是在训练过程中,数据的传递除了从前往后传之外,还需要将最后一层与目标值的误差往前传,从而在进行下一轮训练时,可以获得更小的误差,这一过程便是神经网络的。神经网络训练的过程是不断与目标值进行拟合的过程,直到拟合的误差降低到人们的预期,那么久代表着神经网络训练完毕,一个AI就诞生了。在很多学科中,残差指的是:预测值与实际值之间的误差。原创 2023-10-24 23:15:58 · 230 阅读 · 0 评论 -
什么是“空洞卷积”
但是如果你把空洞率设为其他数,就能得到空洞卷积,这个间隔可以帮助我们扩大卷积核的“视野”,也就是它能看到更多的像素。最后,使用空洞卷积的时候,可以调整空洞率这新参数来改变卷积核的行为,这意味着可以根据任务的需要来定制模型,使其更灵活。比如上图设置的是“空洞率”为2的空洞卷积,也就是说,对于输入图像每隔一个像素取一个点和卷积核进行计算。我们知道,扩大卷积核的尺寸确实也可以增大卷积核的视野,但是带来一个副作用就是,模型会变得很大。首先,空洞卷积扩大了卷积核的视野,但却不需要增加卷积核的尺寸。原创 2023-10-10 13:44:35 · 159 阅读 · 0 评论 -
5分钟理解什么是卷积的特征提取
举个例子,在图像分类任务中,卷积神经网络在训练学习的时候,每一层学习到的特征是不同的,比如第一层的输入只有3个颜色特征,输出有64个特征,至于这64个特征代表的是什么,可能连神经网络自己也说不清,一直到最后一层可能会有几千个特征。我们通常说特征图或者数据集的尺寸是 [n, h, w, c],其中,n 代表的是图片的张数,h 代表的是图片的高度,w 代表的是图片的宽度,c 代表图片的通道数。由浅层次的纹理特征,逐步到深层次的形状特征,比如,在Layer 4中提取的特征图中便可以看到狗狗的形象。原创 2023-10-08 23:01:05 · 1358 阅读 · 2 评论 -
5分钟入门卷积算法
于是,在深度学习的网络中,每个黑点(神经元)都有一个与之对应的数字(实际的网络中,不是0或者1这样简单的数字,而是一些复杂的数字,这里仅仅是为了说明),这些数字,在深度学习中,我们称之为。4x4的方格上移动的灰色阴影,那个3x3的像素方格就是卷积核,可以把它理解为人眼此时聚焦看到的区域(称之为感受野,人眼的视野),只不过,这个示意图中每次看到的都是一个3x3的像素方格!整个推理过程你应该注意到了一件事,所有的黑点都可能是有记忆的,只不过记得东西各有不同,有的认识猫,有的认识狗,就像下面这样。原创 2023-10-05 15:20:29 · 210 阅读 · 0 评论 -
对“熵”一知半解?带你揭开“熵”的神秘面纱
这是因为,无论发送方还是接收方,都知道发送的是东京的天气,而且是今天的,因此就没必要在消息中将“Today”,“Tokyo”等字眼发送过去,只需要将天气状况是“好”还是“不好”发送过去即可。在上面的编码中,“Fine”是“00”,但不需要第二个零,这是因为我们可以制定如下规则:当第一位为零时,定义为“晴天”,第一位为1时,定义为“阴天”或“雨天”。如下所示,编码是明确的,但平均大小不是理论上的最小值,因为我们对更频繁的消息类型(例如“Fine”和“Cloudy”)使用了更多位。原创 2023-07-05 09:24:10 · 785 阅读 · 1 评论 -
7步搞懂手写数字识别Mnist
简答来说,就是搭建了一个卷积神经网络,可以完成手写数字的识别。我用笔在纸上写了个6,神经网络就能认识这是个6,我写了个8,它就识别出来这是个8,就这么简单。之所以说该任务简单,是因为它的标签只有 0-9 这 10 种分类,相比于 resnet 等网络在 ImageNet 上 1000 个分类,确实小很多。虽然简单,但背后的原理却一点都不少,典型的CNN训练和算法无一缺席。与该项目一起出名的,便是大名鼎鼎的 MNIST(Mathematical Numbers In Text) 数据集。原创 2023-05-30 23:01:56 · 1786 阅读 · 0 评论 -
5分钟搞懂矩阵乘法的本质
假设输入的数据是一张图片,那么图片中一个通道维度代表图片的一个特征,通过矩阵乘法对通道进行乘累加操作,便可以实现特征之间的整合和再创。我们知道矩阵乘法的规则是,左矩阵的第一行乘以右矩阵的第一列,得到第一个值,第一行乘以第二列得到第二个值,...,以此类推。卷积和全连接算法,或多或少都是一种矩阵乘法,将其转换为矩阵乘法之后,那么和权值矩阵对应的另一个矩阵,就是输入数据。矩阵乘法,通过相乘累加的操作,实际上是对资源(鸡尾酒的原料)的整合和再创(创造出了新的口味,如自由古巴)。原创 2023-05-13 17:05:55 · 1019 阅读 · 1 评论 -
从零手写Resnet50实战——利用 torch 识别出了虎猫和萨摩耶
大家好啊,我是董董灿。自从前几天手写了一个慢速卷积之后(从零手写Resnet50实战—手写龟速卷积),我便一口气将 Resnet50 中剩下的算法都写完了。然后,暴力的,按照 Resnet50 的结构,将手写的算法一层层地连接了起来。算法的手写和网络的搭建,没有调用任何第三方库,这也是这个项目的初衷。相关代码都已经上传至:项目根目录/python/inference.py,项目地址在文章末尾。原创 2023-04-21 08:59:16 · 428 阅读 · 0 评论 -
从零手写Resnet50实战—手写龟速卷积
大家好啊,我是董董灿。这是从零手写Resnet50实战的第篇文章。请跟着我的思路,一点点地手动搭建一个可以完成图片分类的神经网络,而且不依赖第三方库,完全自主可控的手写算法。如对网络中的算法和原理不太熟悉,请移步万字长文解析Resnet50的算法原理。原创 2023-04-14 23:28:09 · 172 阅读 · 0 评论 -
从零手写Resnet50实战篇——权值另存为
大家好啊,我是董董灿。这是《从零手写Resnet50实战》的第二篇文章。原创 2023-04-06 22:23:45 · 368 阅读 · 0 评论 -
从零手写Resnet50,chatGPT是我的第一个合伙伙伴
从零手写Resnet50计划原创 2023-04-03 18:32:42 · 428 阅读 · 0 评论 -
长文解析Resnet50的算法原理
长文通俗的解析resnet50的全部算法。原创 2022-08-19 22:07:35 · 9795 阅读 · 11 评论 -
图像识别(九)| 彻底搞懂SoftMax分类的底层逻辑
softmax原理原创 2022-08-17 19:02:30 · 3622 阅读 · 3 评论 -
图像识别(八)| 还对全连接层迷迷糊糊?背会一首诗就行了
全连接需要把所有的节点都连接起来,尽可能的完成所有节点的信息共享。原创 2022-08-09 11:09:14 · 1066 阅读 · 0 评论 -
图像识别(七)| 池化层是什么?有什么作用?
池化虽然简单,但是在CNN中却很重要原创 2022-07-23 17:09:43 · 4964 阅读 · 0 评论 -
图像识别(六)| 激活函数
之所以在神经网络中添加激活函数,一个重要的原因是给网络模型增加非线性。原创 2022-07-23 17:07:00 · 2607 阅读 · 0 评论 -
resnet50 网络结构全图
可视化CNN, AI算法的搬砖真实性!原创 2022-06-26 10:59:28 · 2321 阅读 · 1 评论 -
图像识别(五)| resnet50 的残差结构到底是什么?
为什么叫Resnet50?原创 2022-06-22 12:46:22 · 2991 阅读 · 3 评论 -
图像识别(四)| 卷积的核心,特征提取
上一篇文章——初识卷积,聊到了卷积这一算法。通俗点讲,卷积就是模仿的人眼识图的过程,以“感受野”的视角去扫描图片,从而获取不同区域的图片信息。但其实,这并不是卷积算法的核心思想。卷积的核心,是通过设计多个卷积核,同时对一张图片进行卷积操作,以完成不同特征的提取。本篇重点围绕特征提取这一概念,聊一聊卷积。......原创 2022-06-18 10:46:20 · 4375 阅读 · 0 评论 -
图像识别(三)| 卷积是什么?
这一篇文章主要聊了聊几个概念。AI 之所以能够记住它所学的东西,关键在于神经网络有权值这一参数的存在,它的存在就类似人脑的记忆。并且,权值和人脑的记忆一样,都是通过大量的实践来训练出来的。而卷积这一算法,天然就存在一个权值参数,称之为卷积核,人们可以通过设计卷积核的大小,调整希望神经网络“看到”的图片的视野,也叫作感受野,从而不同的卷积获取到不同的信息。实际上,卷积这一算法,除了本文说的利用“感受野”获取到不同图片区域的信息,从而将图片在长宽两个维度的尺寸缩放之外,还存在channel维度的升降。而这原创 2022-06-18 10:28:45 · 1281 阅读 · 0 评论 -
图像识别(二)| 图像的色彩空间
目录RGB数值表示和图片大小计算YUVYUV编码的用途总结一下One More Thing上一篇文章从像素开始,聊到了 RGB 这一常见的色彩空间模型。之所以还想继续聊聊 RGB 以及另一种色彩空间模型-YUV ,不是说想要去学摄影,需要调节色度、曝光和饱和度。而是在图像处理的深度学习任务中,RGB以及YUV总是会时不时的出现一下,让枯燥无味且高度抽象的算法,突然之间,变得具体一些,光鲜一些。Red,Green,Blue(RGB)是我们最常见的图像表示方法。这个非常好理解,三原色的融合,几乎可以构造出所有需原创 2022-06-11 17:59:20 · 1933 阅读 · 2 评论 -
图像识别(一)| 从像素说起
从零开始,学习神经网络的图像识别原创 2022-06-11 17:25:05 · 2010 阅读 · 1 评论