Resnet图像识别入门——初识卷积

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
简介: 卷积对于Resnet的重要性,不亚于反向传播算法对于深度学习的重要性。可以说,是灵魂。

前面花了两篇文章的篇幅,聊了聊图片相关的背景知识。

Resnet图像识别入门——像素

Resnet图像识别入门—— 图像的色彩空间

就像上一篇文章说的那样:图片是做深度学习任务的原材料,就像是做饭,不了解原材料的特性,怎么能快速高效的做出一顿美味的大餐?

下面开始想聊聊卷积,但是不聊公式,只聊一下卷积这一算法是如何工作的,以及它的一些原理,至于枯燥的公式,留给后面吧。

人脑是怎么记住东西的?

在说卷积之前,先务虚一下,说说AI的记忆。

或许你已经听说过很多AI故事了,比如大名鼎鼎的阿尔法狗大战柯洁。但是,你有没有想过一个问题。阿尔法狗确实是学会了下棋,但是它下棋的记忆到底是什么样的?存在什么地方呢?

高中生物老师教过我们,人脑中有大量的脑神经元。每个脑神经元都可以看做是一个小的记忆体,神经元之间通过树突连接起来。整个大脑的神经元,可以说是一张十分复杂的网络。

人脑处理信息,就是利用这个复杂的网络处理信息,并最终得到一个结果。通过神经元网络,我们才能知道,眼睛看到的是一只猫,还是是一只狗。

稍微简化一下大脑神经元的复杂结构成如下的网络。

每个黑点代表一个神经元脑细胞,每个神经元都有自己负责记忆的东西。

当我们看到一张画着猫的图片的时候,图片信息通过视神经传给大脑神经元,于是,信息到达了最左边一排竖着的黑点(神经元)。

神经元的激活与静止

假如一个黑点(神经元)之前见过猫,那么这个黑点就会把信息往后传,此时神经元处于激活状态。

假如一个黑点从来没见过猫,那么这个黑点(神经元)就啥也不知道,啥也不做,此时神经元处于静止状态。

像不像初中课堂上,老师问了你一个超难的问题,而你不知道的时候,你也只能站着,可怜又无助,啥也不会做?

没错,神经元如果没见过猫,他啥也不会做!

图片的信息就这样,一层一层的通过“见过猫且确信它是一只猫的”神经元往后传递,直到在最后输出一个结果。

这是一只猫

这个过程叫做大脑的推理。

整个推理过程你应该注意到了一件事:所有的黑点(神经元),都可能是有记忆的,只不过记得东西各有不同,有的认识猫,有的认识狗,就像下面这样。

image.png

所有认识猫的神经元都会让信息通过,其他不认识猫的神经元都静止了。但是只要信息能传到最后,人脑最终就可以得出一个结论,这就是一只猫。

那神经元的这些记忆是怎么获取的呢?

当然是训练!人们在日常生活中不断地训练大脑,时刻观察着周围的事物。见得多了,就会了。

训练——人工智能获取记忆

那么计算机又该怎么模拟这个记忆过程呢?

答案很简单:因为计算机只会计算,那就让它计算好了。

如果某个黑点认识猫,有什么办法可以把“这是一只猫”这一信息传递到后面呢?乘以1啊,任何数乘以1都是它自己,一只猫乘以1也还是他自己。

如果某个黑点压根没见过猫,有什么办法可以什么都不做呢?乘以0啊,任何数乘以0都是0,信息也就没了,一只猫乘以零,猫也就没了。

于是乎。在深度学习的网络中,每个黑点(神经元)都有一个与之对应的数字(实际的网络中,不是0或者1这样简单的数字,而是一对复杂的数字,这里仅仅是为了说明示意),这些数字,在深度学习中,我们称之为权值。

神经元可以通过与权值的加权计算来判断是否让某一信息经过神经元,到达下一层。

权值乘以输入的信息(猫),然后经过激活函数去激活(类似于人脑神经元的激活)。

  • 如果能成功激活,那么信息就往下传。
  • 如果没有成功激活,信息就在此丢失。

当然神经网络中的权值不是简单的0或1,所以经过激活函数计算出来的只是一个概率值,也就是说黑点(神经元)觉得它是一只猫的概率。最终如果得到95%的概率觉的它是一只猫,那基本就是一只猫。

  • 这个权值,就是 AI 的记忆。
  • 这个权值,就是 AI 在训练的过程中学到的东西:千百万次计算得出的最优解。
  • 这个权值,可以保证,只要 AI 在训练过程中看过猫,那么新的猫咪来的时候,猫咪乘以权值有很高的概率能通过激活函数,确保神经元被激活。

为什么可以这么确定呢。

因为 AI 的训练过程早已经模拟了成千上万次“识猫”的过程了。权值就是训练出来的!就像我们的记忆被训练出来的一样!

而卷积这一算法,就天然存在一个记忆体,或者说权值,那就是卷积核。

开始说卷积 | Convolution

首先不要被这个名字吓到了。

不管数学好不好的同学,看到卷积的第一反应,可能是记得有一个卷积公式,貌似可以进行信号处理。
图片

image.png

一个代表卷积核的曲线在原始信号曲线上滑来滑去,得到不同的输出。在什么地方学过来着?好像是时频转换的时候,又好像不是。(当然不是!)但是,不用回忆之前的知识,不用管它!

因为,深度学习中的卷积,和信号处理中的卷积,有相似之处,但又不完全一样。深度学习中的卷积,完完全全模拟的,就是人眼看物体的过程!

image.png

卷积模拟人眼

上图是深度学习中卷积的示意图。还记得之前说过的么,图片是由像素组成的。

示意图下方的 4x4 的像素方格就是卷积需要处理的图片(模拟人眼观看图片的过程)。示意图上方的 2x2 的像素方格就是卷积的输出(人眼看到图片之后得出的结论)。

那么卷积核在哪?4x4方格上移动的灰色阴影,3x3的像素方格就是卷积核!

可以理解为人眼此时聚焦看到的区域(称之为感受野,人眼的视野),只不过,这个示意图中每次看到的都是一个3x3的像素方格!

而卷积过程,就是用3x3的卷积核,去逐步扫描图片。横着扫完竖着扫。每扫一次,就将逐个像素点的值相乘然后加一起,得到一个输出。

image.png

再换个更直观的角度看一眼。卷积,就是这么简单的过程。

image.png

不仅如此,我们还可以通过调整卷积核的大小,比如把上图3x3的卷积核扩大到5x5,来控制 “人眼” 看到的图片范围,从而获取到不同的图片信息。

当然,在实际神经网络中,存在这个各种各样的卷积变种。

科学家或工程师们通过设计不同的卷积核以及卷积每次移动的多少等参数,来实现不同的功能。但卷积操作万变不离其宗!

总结一下

这一篇文章主要聊了聊几个概念。

AI 之所以能够记住它所学的东西,关键在于神经网络有权值这一参数的存在,它的存在就类似人脑的记忆。并且,权值和人脑的记忆一样,都是通过大量的实践来训练出来的。

而卷积这一算法,天然就存在一个权值参数,称之为卷积核,人们可以通过设计卷积核的大小,调整希望神经网络“看到”的图片的视野,也叫作感受野,从而不同的卷积获取到不同的信息。

实际上,卷积这一算法,除了本文说的利用“感受野”获取到不同图片区域的信息,从而将图片在长宽两个维度的尺寸缩放之外,还存在channel维度的升降。而这,才是卷积这一算法的核心,称之为特征提取。

欢迎持续关注系列文章《Resnet图像识别入门》,下一章,继续谈谈特征提取。

本文为作者原创,请勿随意转载,如需转载,请与作者联系

相关文章
|
3月前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
66 2
|
3月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能与图像识别:基于卷积神经网络的猫狗分类器
人工智能与图像识别:基于卷积神经网络的猫狗分类器
138 0
|
3月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能与图像识别:基于深度学习的卷积神经网络
人工智能与图像识别:基于深度学习的卷积神经网络
70 0
|
2月前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
131 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
2月前
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
41 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
17天前
|
机器学习/深度学习 人工智能 算法
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障', '糖尿病性视网膜病变', '青光眼', '正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网页端可视化操作界面,实现用户上传一张眼疾图片识别其名称。
52 9
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
|
2月前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
212 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
2月前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
132 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
13天前
|
机器学习/深度学习 数据挖掘 C#
ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
23 0
|
2月前
|
机器学习/深度学习 自动驾驶 TensorFlow
【机器学习】卷积神经(CNN)在图像识别中的革命性应用:自动驾驶的崛起
【机器学习】卷积神经(CNN)在图像识别中的革命性应用:自动驾驶的崛起
71 1