卷积层是如何学习到图像特征的?

news2024/11/26 1:28:11

你好啊,我是董董灿。

想搞懂这个问题,需要先了解我们所说的特征指的是什么?然后再了解卷积核是如何学到的特征。

我们一步步来。

1、我们先来理解图像的特征

对于一张原始图像而言,说原始图像是相对于经过卷积处理而言的。

对于卷积处理后的输出的图像,一般我们叫它特征图。而我这里说的“原始图像”指的是神经网络原始输入的图像。

这里找了一张图像。请你仔细观察。

你会发现图像中有一些明显的“意象”,比如红色的帐篷、美女黑色的长发、黄色的火焰。这些描述都是针对某一“物体”进行的描述。

比如,我们可以说美女的长发是“黑色”,那么这里的黑色就是长发的一种特征,相对应的,长发还可以有“红色”、“灰色”等等特征。

这种特征我们很常见,通常可以称之为“颜色特征”。比如帐篷的“红色特征”、火焰的“黄色特征”。

除了常见的颜色特征,还有很多其他更符合我们人类理解的特征:比如形状特征、轮廓特征等等。

形状特征就比如上图帐篷的“三角形”特征。

所以,你可以看到,特征可以认为是“一个物体”在某方面的属性值。

对于我们人类而言,某个物体的特征一般是需要我们人类可以用语言描述出来的,比如美女的特征一般有:黑色的长发、苗条的身材、姣好的面容等等。

而对于AI(神经网络模型)而言,某个物体的特征是AI自己可以认识而我们人类可能无法分辨的特征。

因此,你会看到很多时候,卷积输出的特征图有几百(甚至几千)个通道,每个通道代表了这个卷积经过卷积运算学习到的一个特征。

类比于原始输入的 RGB 图像仅有 3 个颜色通道,你可以粗略的认为原始输入图像仅有 3 个最显著的颜色特征(每个特征通道仅有一个颜色分量),而经过卷积计算之后,输出的通道数则有成百上千个,此时卷积学到了成百上千个特征。

好了,了解了什么是特征以及AI学到的特征之后,接下来看看题主重点问到的问题:卷积核是如何学到特征的?


2、卷积计算是如何学到特征的

这里我默认你是知道卷积的运算逻辑的,也默认你懂一些反向传播来更新卷积核参数的知识。

对于卷积核而言,其中的数值在训练过程中一般是初始值,在训练中经过 N 轮次(N 非常大,取决于你的任务和训练数据集)的迭代训练之后,会逐渐收敛到一个稳定的数值。

收敛之后的卷积核参数便可以被冻结下来,模型便可以拿去进行推理。以图像识别任务为例,如果你的模型训练完成,那么你就可以拿着训练好的模型(包括里面所有卷积层中的冻结的卷积核参数)去识别一张图中画的物体是狗还是猫了。

关键问题有两点:

  • 模型在反向传播时更新卷积核的参数,使卷积运算可以学到特征;
  • 模型在正向传播时,根据学到的特征尝试去预测目标。

反向传播无需纠结太多,精髓在于梯度,而梯度就是用来更新卷积核的,这个梯度你可以理解为某次前向传播过程中,利用已经学到的“特征”尝试去预测目标时得到的结果与真正目标之间的差距,然后把这个差距反向告诉卷积核,使其朝着差距更小的方向更新。

这样经过 N 轮次的迭代,卷积核学到的特征就非常接近真实图像中已有的特征了,虽然这些特征我们人类可能无法解释清楚,但是AI模型是知道的。

那我们再看看,在正向传播的时候,卷积做了什么事情。


3、卷积做了什么事情

卷积的核心计算逻辑是内积运算,有时也可以称之为是在特征(通道)维度的乘累加运算。

这个运算事实上和矩阵乘法是类似的。

因此,我将带你通过一个简单的内积运算,来探究一下卷积(也可以同样去理解矩阵乘法)在计算过程中做了什么事情。

这个例子我在很多场合都给一些朋友讲过,我认为对理解乘累加运算非常有用。

假设,你是一个鸡尾酒调酒师,家里储存了很多鸡尾酒的原料,有金酒、利口酒、柠檬汁和可乐等等。

今天家里来了 3 位客人,他们分别喜欢喝“自由古巴”、“长岛冰茶”以及“龙舌兰日出”这 3 款鸡尾酒,并向你下了单。

希望你给他们调配出来各自喜欢的鸡尾酒。

巧的是,这 3 款鸡尾酒的原料都是金酒、利口酒、柠檬汁和可乐。

你作为一个调酒师,分分钟就把客人的爱好的鸡尾酒给调出来了。

你是怎么做的呢?你知道配方:

  • 自由古巴: 20%金酒 + 45% 利口酒 + 10%柠檬汁 + 25%可乐
  • 长岛冰茶: 60%金酒+ 30%利口酒 + 5% 柠檬汁 + 5% 可乐
  • 龙舌兰日出:30%金酒 + 10%利口酒 + 30%柠檬汁 + 30%可乐

你在调配鸡尾酒的过程中,是按照这个配方来调配的。

这里的原料,比如利口酒和可乐,就是输入资源,配比(比如可乐的 25% )就是赋予该资源的权重。

将相同的原料按照不同的配比混合起来,就得到了不同口味的鸡尾酒。

这种做法,可以抽象一下,写成一个公式:

  • 自由古巴 = 0.2 x 金酒 + 0.45 x 利口酒 + 0.1 x 柠檬汁 + 0.25 x 可乐
  • 长岛冰茶 = 0.6 x 金酒 + 0.3 x 利口酒 + 0.05 x 柠檬汁 + 0.05 x 可乐
  • 龙舌兰日出 = 0.3 x 金酒 + 0.1 x 利口酒 + 0.3 x 柠檬汁 + 0.3 x 可乐

我们知道矩阵乘法的规则是,,第一行乘以第二列得到第二个值,...,以此类推

上面这种连乘的操作,就可以用矩阵乘法来表示。

左矩阵是一行四列,代表原料。右矩阵是四行三列,每一列代表对应原料的配比。按照矩阵乘法的规则,他们的结果应该是一个一行三列的矩阵,分别代表调配出来的三种鸡尾酒。

矩阵乘法,通过相乘累加的操作,实际上是对资源(鸡尾酒的原料)的整合和再创(创造出了新的口味,如自由古巴)。

如果把输入资源(左侧的一行四列的矩阵)看作是一些特征呢?

那不就相当于对这些特征进行了进一步的融合,得到了新的特征吗?

因此,你可以看到,如果你把左侧输入资源看做原始图像或者卷积的输入特征图,乘号右侧原料的配比看做卷积核中的权值参数,那么等号右侧的结果不就是对输入特征图进行了一次融合操作吗?

可能原来有 N 个特征,经过卷积的运算后,将这 N 个特征融合成了 M 个特征(M 可能大于 N,小于N,等于N)。

因此,卷积的运算,是对卷积输入特征的融合,这是前向传播发生的事情。

那么我们将前向的特征融合和反向传播结合起来,你是不是可以更加清晰的知道卷积是如何学到特征的了呢?

总结一下就是——

前向不断地去融合出新的特征(就像炼丹一样,不断地练出新的丹药),反向传播不断的再去指导你改进你的炼丹水平,直到整个训练过程收敛,你的炼丹技术也就水到渠成了,而这个过程中,AI 模型也就学到了它想学到的东西(特征),尽管这些特征我们人类并不知道代表了什么。


🍊 专栏:计算机视觉入门与调优

🍊 专栏:Transformer 通关秘籍

🍓 计算机视觉入门1对1全程

🍓 从零手写大模型1对1全程

如果你想学习 AI ,欢迎来添加我的微信 (vx: ddcsggcs),会有很多好玩的AI技术分享,可以咨询、也可以围观朋友圈呀~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【文心智能体】旅游攻略版,手把手教你调用插件实现智能体,绝对的干货满满!

1.灵感来源 需要创建一个智能体,首先当然是需要一个创作灵感啦,那么恰逢国庆假期,但是网上各种各样的旅游资料使我头晕目眩,刚好呢百度的文心智能体平台给我们提供了各种各样的插件以及知识库,可以供我们随心所欲地调…

嵌入式硬件设计中EDA布局与布线实现

大家好,今天主要给大家分享一下,如何使用立创EDA进行布局和布线,具体实现过程如下: 第一:PCB概念介绍 在介绍PCB的时候,先来说明一下,电子管的发明史。 贝尔在1876年发明了电话,爱迪生1879年发明了白炽灯、特斯拉于1888年发明了电动机,所有这些,都为电子学的诞生准…

2024 热门的4大电脑剪辑软件大盘点。

在电脑上进行视频剪辑能够让我们更好的发挥创意,制作出精彩的视频作品。同时也需要依赖一些比较专业的视频剪辑工具。这几款视频剪辑软件,无论是制作个人视频、商业广告还是电影预告片,都是非常不错的选择。 1、福昕电脑剪辑 直达链接&#…

vSAN05:vSAN延伸集群简介与创建、资源要求与计算、高级功能配置、维护、故障处理

目录 vSAN延伸集群延伸集群创建延伸集群的建议网络配置vSAN延伸集群的端口见证主机的资源要求vSAN延伸集群中见证节点带宽占用vSAN延伸集群的允许故障数vSAN延伸集群不同配置下的空间占用 vSAN延伸集群的HA配置vSAN延伸集群的DRS配置vSAN存储策略以及虚拟机/主机策略的互操作vS…

系统架构设计师③:数据块系统

系统架构设计师③:数据块系统 数据库模式 数据库模式是指数据库的结构和组织方式,它描述了数据库中数据的逻辑结构和组织方式,是数据库设计的核心组成部分。以下是关于数据库模式的详细解析: 一、定义与组成 定义:…

4款专业电脑数据恢复软件,帮你保障数据安全。

电脑里面会出现的数据丢失场景有很多,像硬盘故障、回收站清空、电脑格式化、系统崩溃、病毒入侵等等;如果发现数据丢失后,建议应停止使用电脑,避免新的数据写入覆盖丢失的数据。然后再尝试进行数据找回,如果想自己进行…

系统分析师16:系统测试与维护

1 内容概要 2 软件测试类型 2.1 测试类型 动态测试【计算机运行】 白盒测试法:关注内部结构与逻辑灰盒测试法:介于两者之间黑盒测试法:关注输入输出及功能 静态测试【人工监测和计算机辅助分析】 桌前检查代码审查代码走查以上三个都是做的…

【C++11】新特性

前言: C11 是C编程语言的一个重要版本,于2011年发布。它带来了数量可观的变化,包含约 140 个新特性,以及对 C03 标准中约600个缺陷的修正,更像是从 C98/03 中孕育出的新语言 列表初始化 C11 中的列表初始化&#xff0…

社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例

摘要:本文探讨社群团购中的用户黏性价值,分析其与传统团购网站的区别,并阐述开源小程序多商户AI智能名片商城源码在增强社群团购用户黏性方面可能发挥的作用。 一、引言 在当今的商业环境中,社群团购逐渐成为一种重要的营销模式。…

新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。

今天给大家介绍一种自动化生成时尚图像数据的方法Prompt2Fashion。 首先创建了一组描述,比如“适合婚礼的休闲风格服装”,然后用这些描述来指导计算机生成图像。具体来说,他们使用了大型语言模型来写出这些服装的描述,接着将这些描…

毕业设计 大数据电影数据分析与可视化系统

文章目录 0 简介1 课题背景2 效果实现3 爬虫及实现4 Flask框架5 Ajax技术6 Echarts7 最后 0 简介 今天学长向大家介绍一个机器视觉的毕设项目 🚩基于大数据的电影数据分析与可视化系统 项目运行效果(视频): 毕业设计 大数据电影评论情感分析 &#x1…

运动传感器

运动传感器 当你走近一些自动开关门、自动开关灯泡或自动启动自动扶梯的地方时,你是否会产生这样的疑问:**"它是怎么做到的? **它是怎么做到的? 如果有,本教程不仅会回答,还会告诉你如何制作。 让我们…

【Redis】Hash类型的常用命令

背景:redis中存储数据采取key-value键值对的形式,而hash内部也是键值对,为了区别这两个东西,hash内部的键值对称为:field-value,而redis的为key-value,这里的value包括:field-value。…

基于pytorch的手写数字识别

import pandas as pd import numpy as np import torch import matplotlib import matplotlib.pyplot as plt from torch.utils.data import TensorDataset, DataLoadermatplotlib.use(tkAgg)# 设置图形配置 config {"font.family": serif,"mathtext.fontset&q…

如何在华为云服务器查看IP地址,及修改服务器登录密码!!!

1.在华为云服务器查看IP地址 (1).第一步: 先找到控制台 (2).第二步: 点击华为云Flexus云服务 (3)第三步: 找到公网IP,就找到华为云服务器IP地址啦。 注意:在操作以上步骤的前提是要已注册华为云账号及购买云服务器…

PPPoE协议个人理解+报文示例+典型配置-RFC2516

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。 因此本文将在PPPoE协议报文的基础上进行介绍。 PPPoE协议发展 关于PPPoE基本原理,可参考1999年发布的《RFC2516-A Method fo…

class 031 位运算的骚操作

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. 左程云的个人空间-左程云个人主页-哔哩哔哩视频…

8649 图的广度遍历

### 思路 1. **图的邻接表存储结构**:使用邻接表存储图的顶点和边信息。 2. **基本操作函数**:包括创建图、查找顶点、获取顶点值、获取第一个邻接顶点、获取下一个邻接顶点等。 3. **广度优先遍历(BFS)**:从某个顶点出…

LPDDR6 来之未远

很多朋友可能还没用上DDR5,但不好意思的是,DDR6 可能马上就要出现了。 三星和海力士较早开始DDR6 的设计,预计2025年商业化。 DDR6 速度 来源: 半导体观察 DDR6的速度将是主流的DDR4的四倍,将是现有DDR5的两倍,DDR6传输速度可达12800 Mbps。 LPDDR6 来源:快科技 L…