机器学习8-卷积和卷积核

news2025/3/13 21:19:39

机器学习7-卷积和卷积核

  • 卷积与图像去噪
    • 卷积的定义与性质
      • 定义
      • 性质
      • 卷积的原理
      • 卷积步骤
      • 卷积的示例与应用
      • 卷积的优缺点
        • 优点
        • 缺点
      • 总结
  • 高斯卷积核
      • 卷积核尺寸的设置
        • 依据任务类型
        • 考虑数据特性
        • 实验与调优
      • 高斯函数标准差的设置
        • 依据平滑需求
        • 结合卷积核尺寸
        • 实际应用场景
      • 总结
  • 图像噪声与中值滤波器

在这里插入图片描述

卷积与图像去噪

在这里插入图片描述

卷积的定义与性质

定义

卷积是数学中的一种运算,广泛应用于信号处理、图像处理和机器学习等领域。在机器学习中,卷积通常指卷积神经网络(CNN)中的卷积操作。

卷积操作可以表示为:
[ ( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ )   d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) \, d\tau (fg)(t)=f(τ)g(tτ)dτ]
在离散情况下,卷积操作可以表示为:
[ ( f ∗ g ) [ n ] = ∑ m = − ∞ ∞ f [ m ] g [ n − m ] (f * g)[n] = \sum_{m=-\infty}^{\infty} f[m] g[n - m] (fg)[n]=m=f[m]g[nm]]

在CNN中,卷积操作通常是在二维图像上进行的,卷积核(或滤波器)在输入图像上滑动,计算局部区域的加权和。

性质

  1. 线性性:卷积是线性操作,满足叠加原理。
  2. 平移不变性:卷积操作对输入信号的平移是不变的。
  3. 交换性:卷积操作满足交换律,即 ( f ∗ g = g ∗ f f * g = g * f fg=gf)。
  4. 结合性:卷积操作满足结合律,即 ( ( f ∗ g ) ∗ h = f ∗ ( g ∗ h ) (f * g) * h = f * (g * h) (fg)h=f(gh))。

卷积的原理

在CNN中,卷积操作通过卷积核(filter)在输入数据(如图像)上滑动,计算局部区域的加权和。卷积核的参数通过训练过程学习得到。

卷积步骤

  1. 输入数据:通常是二维图像或多通道图像。

  2. 卷积核:一个小的矩阵,包含可学习的参数。
    边界填充
    在这里插入图片描述
    不考虑边界图像会变小,如果不想变小只能填充像素。
    在这里插入图片描述

拉伸 -镜像
在这里插入图片描述
0填充
在这里插入图片描述

  1. 滑动窗口:卷积核在输入数据上滑动,计算每个位置的加权和。

  2. 输出特征图:卷积操作的结果是一个新的特征图,反映了输入数据中某些特征的响应。

卷积的示例与应用

在这里插入图片描述

在这里插入图片描述
平滑
在这里插入图片描述

锐化
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

卷积在机器学习和深度学习中有广泛的应用,特别是在图像处理和计算机视觉领域。

  1. 图像分类:CNN通过卷积层提取图像的特征,用于分类任务。
  2. 目标检测:卷积操作用于检测图像中的目标物体。
  3. 图像分割:卷积操作用于将图像分割成不同的区域。
  4. 自然语言处理:卷积操作也可以应用于文本数据,提取局部特征。

卷积的优缺点

优点
  1. 局部感知:卷积操作只关注局部区域,减少了参数数量,降低了计算复杂度。
  2. 参数共享:卷积核在输入数据上共享参数,进一步减少了参数数量。
  3. 平移不变性:卷积操作对输入数据的平移是不变的,适合处理图像等数据。
  4. 层次化特征提取:通过多层卷积操作,可以提取从低级到高级的特征。
缺点
  1. 计算复杂度:虽然卷积操作减少了参数数量,但在大规模数据上仍然需要大量计算资源。
  2. 局部性限制:卷积操作只关注局部区域,可能忽略全局信息。
  3. 超参数选择:卷积核的大小、步长、填充等超参数需要仔细选择,影响模型性能。

总结

卷积是机器学习和深度学习中一种重要的操作,特别适用于处理图像等具有局部结构的数据。通过卷积操作,可以有效地提取数据的特征,降低模型的复杂度,提高模型的性能。然而,卷积操作也存在一些局限性,需要在实际应用中仔细权衡。

高斯卷积核

在这里插入图片描述
存在振铃问题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如何设置卷积核的尺寸和高斯函数的标准差?
方差的变化
在这里插入图片描述
方差越大,平滑效果明显

尺寸的变化

在这里插入图片描述

模板尺寸越大, 平滑效果越强

总结

  • 大方差或者大尺寸卷积核平滑能力强;
  • 小方差或者小尺寸卷积核平滑能力弱;
  • 经验法则:将卷积核的半窗宽度设置为30,最终卷积模板尺寸为2×30+1。
    例子:标准差设置成1,卷积模板宽度=231+1=7

在图像处理和深度学习领域,卷积核尺寸和高斯函数标准差的设置是比较关键的操作,以下分别介绍它们的设置方法:

卷积核尺寸的设置

依据任务类型
  • 边缘检测:通常会使用较小的卷积核,如 3x3 或 5x5。以 Sobel 算子为例,它使用 3x3 的卷积核来检测图像中的边缘信息。小尺寸的卷积核能够聚焦于局部像素的变化,从而更敏锐地捕捉边缘特征。
  • 特征提取:对于浅层网络,可能会使用较小的卷积核(如 3x3)来提取图像的基本特征,如纹理、颜色等;而在深层网络中,有时会使用较大的卷积核(如 7x7)来获取更全局的特征信息。例如,在 AlexNet 中,第一层卷积层使用了 11x11 的大卷积核来捕捉图像的宏观特征。
  • 图像分割:卷积核的尺寸选择会根据具体的分割任务和数据集特点而定。一般来说,较小的卷积核可以用于细化分割边界,而较大的卷积核可以用于融合不同区域的信息。
考虑数据特性
  • 图像分辨率:对于高分辨率的图像,可以适当使用较大的卷积核来减少计算量,同时避免丢失过多的细节信息;而对于低分辨率的图像,使用较小的卷积核可以更好地保留图像的细节。
  • 数据集大小:如果数据集较小,使用较小的卷积核可以减少模型的参数数量,降低过拟合的风险;如果数据集较大,可以尝试使用较大的卷积核来增加模型的表达能力。
实验与调优

通过多次实验,尝试不同的卷积核尺寸,并使用验证集评估模型的性能,选择性能最优的卷积核尺寸。可以采用网格搜索、随机搜索等方法来系统地探索不同的卷积核尺寸组合。

高斯函数标准差的设置

依据平滑需求
  • 轻微平滑:当只需要对图像进行轻微的平滑处理,去除一些高频噪声时,可以选择较小的标准差,如 0.5 - 1.0。较小的标准差会使高斯函数的分布更集中,卷积操作主要影响相邻的少数像素,对图像的整体结构影响较小。
  • 显著平滑:如果需要对图像进行更强烈的平滑处理,去除较大的噪声或模糊图像细节,可以选择较大的标准差,如 3.0 - 5.0 甚至更大。较大的标准差会使高斯函数的分布更广泛,卷积操作会影响更多的像素,从而达到更显著的平滑效果。
结合卷积核尺寸

高斯卷积核的尺寸和标准差通常是相互关联的。一般来说,卷积核的尺寸应该足够大,以覆盖高斯函数的主要部分。通常可以根据标准差来确定合适的卷积核尺寸,例如,当标准差为 σ 时,卷积核的尺寸可以选择为 (6σ + 1) x (6σ + 1) ,以确保高斯函数的大部分能量都被包含在卷积核内。

实际应用场景
  • 图像预处理:在图像预处理阶段,如去噪、图像增强等,标准差的选择要根据图像的噪声水平和具体的处理目标来确定。例如,对于包含椒盐噪声的图像,可以先使用较大的标准差进行平滑处理,然后再进行其他处理。
  • 特征提取:在提取图像特征时,标准差的选择会影响特征的提取效果。较小的标准差可以提取更精细的特征,而较大的标准差可以提取更宏观的特征。例如,在人脸检测中,可以使用不同标准差的高斯滤波器来提取不同尺度的人脸特征。

同样,也可以通过实验的方法,尝试不同的标准差取值,并根据实际应用的评估指标(如准确率、召回率等)来选择最优的标准差。

总结

去除图像中的“高频”成分(低通滤波器)
两个高斯卷积核卷积后得到的还是高斯卷积核

  • 使用多次小方差卷积核连续卷积,可以得到与大方差卷积核相同的结果
  • 使用标准差为σ的高斯核进行两次卷积与使用标准差σ√2 的高斯核进行一次卷积相同

可分离

  • 可分解为两个一维高斯的乘积
    在这里插入图片描述

1.用尺寸为/m×m的卷积核卷积一个尺寸为n×n的图像,其计算复杂度是多少?
在这里插入图片描述
小模板多次卷积比一个大模板一次卷积计算量低很多

图像噪声与中值滤波器

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

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

相关文章

SpringBoot使用 easy-captcha 实现验证码登录功能

文章目录 一、 环境准备1. 解决思路2. 接口文档3. redis下载 二、后端实现1. 引入依赖2. 添加配置3. 后端代码实现4. 前端代码实现 在前后端分离的项目中,登录功能是必不可少的。为了提高安全性,通常会加入验证码验证。 easy-captcha 是一个简单易用的验…

DIY Shell:探秘进程构建与命令解析的核心原理

个人主页:chian-ocean 文章专栏-Linux 前言: Shell(外壳)是一个操作系统的用户界面,它提供了一种方式,使得用户能够与操作系统进行交互。Shell 是用户与操作系统之间的桥梁,允许用户通过命令行…

数据库备份、主从、集群等配置

数据库备份、主从、集群等配置 1 MySQL1.1 docker安装MySQL1.2 主从复制1.2.1 主节点配置1.2.2 从节点配置1.2.3 创建用于主从同步的用户1.2.4 开启主从同步1.2.4 主从同步验证 1.3 主从切换1.3.1 主节点设置只读(在192.168.1.151上操作)1.3.2 检查主从数…

(回溯递归dfs 电话号码的字母组合 remake)leetcode 17

只找边界条件和非边界条件&#xff0c;剩下的交给数学归纳法就行&#xff0c;考虑子问题的重复性 [class Solution {vector<string>str { "","","abc","def","ghi","jkl","mno","pqrs"…

Redis --- 使用zset处理排行榜和计数问题

在处理计数业务时&#xff0c;我们一般会使用一个数据结构&#xff0c;既是集合又可以保证唯一性&#xff0c;所以我们会选择Redis中的set集合&#xff1a; 业务逻辑&#xff1a; 用户点击点赞按钮&#xff0c;需要再set集合内判断是否已点赞&#xff0c;未点赞则需要将点赞数1…

响应式编程_04Spring 5 中的响应式编程技术栈_WebFlux 和 Spring Data Reactive

文章目录 概述响应式Web框架Spring WebFlux响应式数据访问Spring Data Reactive 概述 https://spring.io/reactive 2017 年&#xff0c;Spring 发布了新版本 Spring 5&#xff0c; Spring 5 引入了很多核心功能&#xff0c;这其中重要的就是全面拥抱了响应式编程的设计思想和实…

C++ Primer 算术运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

中位数定理:小试牛刀> _ <2025牛客寒假1

给定数轴上的n个点&#xff0c;找出一个到它们的距离之和尽量小的点&#xff08;即使我们可以选择不是这些点里的点&#xff0c;我们还是选择中位数的那个点最优&#xff09; 结论:这些点的中位数就是目标点。可以自己枚举推导&#xff08;很好想&#xff09; (对于 点的数量为…

安全实验作业

一 拓扑图 二 要求 1、R4为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4与其他所有直连设备间均使用共有IP 2、R3-R5-R6-R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 4、所有设备均可访问R4的环回&#x…

《Python预训练视觉和大语言模型》:从DeepSeek到大模型实战的全栈指南

就是当代AI工程师的日常&#xff1a;* - 砸钱买算力&#xff0c;却卡在分布式训练的“隐形坑”里&#xff1b; - 跟着论文复现模型&#xff0c;结果连1/10的性能都达不到&#xff1b; - 好不容易上线应用&#xff0c;却因伦理问题被用户投诉…… 当所有人都在教你怎么调用…

血压计OCR文字检测数据集VOC+YOLO格式2147张11类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2147 标注数量(xml文件个数)&#xff1a;2147 标注数量(txt文件个数)&#xff1a;2147 …

Java 面试合集(2024版)

种自己的花&#xff0c;爱自己的宇宙 目录 第一章-Java基础篇 1、你是怎样理解OOP面向对象??? 难度系数&#xff1a;? 2、重载与重写区别??? 难度系数&#xff1a;? 3、接口与抽象类的区别??? 难度系数&#xff1a;? 4、深拷贝与浅拷贝的理解??? 难度系数&…

Typora免费使用

一.下载地址 https://typoraio.cn/ 二.修改配置文件 1.找到安装路径下的LicenseIndex.180dd4c7.4da8909c.chunk.js文件 文件路径为:安装路径\resources\page-dist\static\js\LicenseIndex.180dd4c7.4da8909c.chunk.js 将js中的 e.hasActivated"true"e.hasActiva…

第一性原理:游戏开发成本的思考

利润 营收-成本 营收定价x销量x分成比例 销量 曝光量x 点击率x &#xff08;购买率- 退款率&#xff09; 分成比例 100%- 平台抽成- 税- 引擎费- 发行抽成 成本开发成本运营成本 开发成本 人工外包办公地点租金水电设备折旧 人工成本设计成本开发成本迭代修改成本后续内容…

裁员潮血洗硅谷,普通人惨遭裁员的血泪教训——要随时做好失业的准备

我大学室友21年暑假在meta的某AI组实习过&#xff0c;压力巨大&#xff01;组里大群天天消息99&#xff0c;年底实习结束直接就进到Google去了&#xff0c;听说eng组的intern十有八九都拿到了return offer&#xff0c;但都利用空余时间跳到了别的大厂。 离谱的时候&#xff0c…

MacBook Pro(M1芯片)Qt环境配置

MacBook Pro&#xff08;M1芯片&#xff09;Qt环境配置 1、准备 试图写一个跨平台的桌面应用&#xff0c;此时想到了使用Qt&#xff0c;于是开始了搭建开发环境&#xff5e; 在M1芯片的电脑上安装&#xff0c;使用brew工具比较方便 Apple Silicon&#xff08;ARM/M1&#xf…

智能编码在前端研发的创新应用

一、前端开发实例 今天主要想分享一些关于大模型如何协助我们进行前端编码的实践。首先&#xff0c;让我们以一个前端开发的实例开始。通常&#xff0c;当需要实现一个新的前端功能时&#xff0c;我们会收到相关的背景和需求描述。我的期望是&#xff0c;大模型能够直接使用这…

基于RK3588/RK3576+MCU STM32+AI的储能电站电池簇管理系统设计与实现

伴随近年来新型储能技术的高质量规模化发展&#xff0c;储能电站作为新能源领域的重要载体&#xff0c; 旨在配合逐步迈进智能电网时代&#xff0c;满足电力系统能源结构与分布的创新升级&#xff0c;给予相应规模 电池管理系统的设计与实现以新的挑战。同时&#xff0c;电子系…

Django框架丨从零开始的Django入门学习

Django 是一个用于构建 Web 应用程序的高级 Python Web 框架&#xff0c;Django是一个高度模块化的框架&#xff0c;使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容&#xff0c;并进一步开发出全功能…

稀疏混合专家架构语言模型(MoE)

注&#xff1a;本文为 “稀疏混合专家架构语言模型&#xff08;MoE&#xff09;” 相关文章合辑。 手把手教你&#xff0c;从零开始实现一个稀疏混合专家架构语言模型&#xff08;MoE&#xff09; 机器之心 2024年02月11日 12:21 河南 选自huggingface 机器之心编译 机器之心…