5分钟入门卷积算法

大家好啊,我是董董灿。

深度学习算法中,尤其是计算机视觉,卷积是无论如何都绕不过去的槛。

初学者看到这个算法后,很多是知其然不知其所以然,甚至不知道这个算法是做什么的,或者很疑惑,为什么在处理图像任务的神经网络中需要卷积算法?

图片

1、 为什么需要卷积

在说卷积之前,先说一说一个神经网络(或者叫一个AI模型),是如何完成一张图片的推理的。

你肯定听说过大名鼎鼎的阿尔法狗大战柯洁的故事,但是,你有没有想过一个问题:阿尔法狗学会了下棋,但是它下棋的记忆到什么样的?存在什么地方呢?

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

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

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

图片

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

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

神经元的激活

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

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

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

这是一只猫。

图片

这个过程叫做大脑的推理

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

图片

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

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

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

训练获取记忆

人工智能计算机是怎么模拟这个记忆过程呢?

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

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

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

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

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

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

如果能成功激活,那么信息就往下传。

如果没有成功激活,信息就在此丢失。

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

人脑看多了,就认识猫了,同样AI被训练的“看”多了,也会逐渐“认识”猫了。

AI的权值就是这么被训练出来的!

说到这,就说会今天的主角——卷积算法之所以重要,就是因为这个算法存在一个天然的记忆体,或者是权值矩阵,那就是卷积核。

2、卷积算法

深度学习中的卷积算法,模拟的就是人眼看物体的过程。

图片

上图是深度学习中卷积的示意图,还记得之前说过的么,图片是由像素组成的(查看要学计算机视觉,先了解图像和像素)。

示意图下方的 4x4 的像素方格就是卷积算法需要处理的图片(类比于人眼观看的图片)。

示意图上方的 2x2 的像素方格就是卷积算法的输出(类比于人眼看完一张图片后的结果信息)。

4x4的方格上移动的灰色阴影,那个3x3的像素方格就是卷积核,可以把它理解为人眼此时聚焦看到的区域(称之为感受野,人眼的视野),只不过,这个示意图中每次看到的都是一个3x3的像素方格!

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

图片

再换个更直观的角度看一眼。

图片

卷积,就是这么简单的过程。

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

比如在一些检测车道线的神经网络中,由于车道线是长实线,车道线的存在趋近于长方形,因此在这类神经网络中,很多卷积核被设计成1x5或1x7的卷积核,用来更好的识别车道线的形状。

当然,在不同图像处理任务中,会设计不同大小的卷积核,以适应不同的场景序需求,但万变不离其宗,卷积的计算,就是一些模拟的人眼看物体扫描像素点的过程。

说到这,大概对卷积这一算法有一个初步印象了吧。

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

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

相关文章

数据结构-优先级队列(堆)

文章目录 目录 文章目录 前言 一 . 堆 二 . 堆的创建(以大根堆为例) 堆的向下调整(重难点) 堆的创建 堆的删除 向上调整 堆的插入 三 . 优先级队列 总结 前言 大家好,今天给大家讲解一下堆这个数据结构和它的实现 - 优先级队列 一 . 堆 堆(Heap&#xff0…

如何使用 Media.io 生成不同年龄的照片

Media.io 是一个在线图片编辑器,提供多种功能,包括照片滤镜、图像裁剪和图像转换。其中,Media.io 的 AI 年龄转换功能可以根据上传的照片,生成不同年龄的照片。 使用 Media.io 生成不同年龄的照片 要使用 Media.io 生成不同年龄…

【word】从正文开始设置页码

在写报告的时候,会要求有封面和目录,各占一页。正文从第3页开始,页码从正文开始设置 word是新建的 分出三节(封面、目录、正文) 布局--->分割符--->分节符--->下一页 这样就能将word分为3节,分…

Python操作MongoDb创建文档及CRUD基本操作

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 MongoDB 操作手册----文档…

1797_GNU pdf阅读器evince

全部学习汇总: GreyZhang/g_GNU: After some years I found that I do need some free air, so dive into GNU again! (github.com) 近段时间经历了很多事情,终于想找一点技术上的自由气氛。或许,没有什么比GNU的一些软件探索更适合填充这样的…

电机-电力拖动-振动-应力分析-设备防护知识初步

1.涉及领域和课程: 信号与系统现代自动化原理与应用频谱转换及振动分析材料学基础与应力分析数学建模、仿真与求解工程数学传感器机器学习与模式识别随机信号处理反馈系统文献学DSP应用机器视觉凸优化,数学物理方法 2.教材推荐 豆瓣书单,更…

如何在终端输出颜色

效果演示: 【看 welcome to here 部分】 环境: Node.js 18.16.0 正文部分 我们可以通过 console.log() 在终端打印字符串。 只要在我们的字符串前面加上转义字符即可。 差不多就是下面这样的结构: 用代码就是: console.log("\x1B…

协议栈——收发数据(拼接网络包,自动重发,滑动窗口机制)

目录 协议栈何时发送数据~ 数据长度 IP模块的分片功能 发送频率 网络包序号~利用syn拼接网络包ack确认网络包完整 确定偏移量 服务器ack确定收到数据总长度 序号作用 双端告知各自序号 协议栈自动重发机制 大致流程 ack等待时间如何调整 是…

java做个qq机器人

前置的条件 机器人是基于mirai框架实现的。根据官方的文档&#xff0c;建议使用openjdk11。 我这里使用的编辑工具是idea2023 在idea中新建一个maven项目&#xff0c;虽然可以使用gradle进行构建&#xff0c;不过我这里由于网络问题没有跑通。 pom.xml <dependency>&l…

2023年CSP-J真题详解+分析数据

目录 亲身体验 江苏卷 选择题 阅读程序题 阅读程序(1&#xff09; 判断题 单选题 阅读程序(2) 判断题 单选题 阅读程序(3) 判断题 单选题 完善程序题 完善程序(1) 完善程序(2) 2023CSP-J江苏卷详解 小结 亲身体验 2023年的CSP-J是在9月16日9:30--11:30进行…

竞赛选题 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…

【实用工具】谷歌浏览器插件开发指南

谷歌浏览器插件开发指南涉及以下几个方面&#xff1a; 1. 开发环境准备&#xff1a;首先需要安装Chrome浏览器和开发者工具。进入Chrome应用商店&#xff0c;搜索“Extensions Reloader”和“Manifest Viewer”两个插件进行安装&#xff0c;这两个插件可以方便开发和调试。 2…

Win11 安装 Vim

安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Ru7HhTSotz9mteHug-Yhpw?pwd6666 提取码&#xff1a;6666 双击安装包&#xff0c;一直下一步。 配置环境变量&#xff1a; 先配置系统变量中的path&#xff1a; 接着配置用户变量&#xff1a; 在 cmd 中输入…

图的广度遍历-邻接矩阵实现

description 本题要求实现邻接矩阵存储图的广度优先遍历。 函数接口定义&#xff1a; void BFS(MGraph G,Vertex i); 其中MGraph是邻接矩阵存储的图&#xff0c;定义如下&#xff1a; #define MaxVertexNum 10 /定义最大顶点数/ typedef int Vertex;/* 用顶点下标表示顶点,…

这可能是最全的反爬虫及应对方案,再也不怕爬不到数据了

一、什么是反爬虫 网络爬虫&#xff0c;是一个自动提取网页的程序&#xff0c;它为搜索引擎从万维网上下载网页&#xff0c;是搜索引擎的重要组成。但是当网络爬虫被滥用后&#xff0c;互联网上就出现太多同质的东西&#xff0c;原创得不到保护。于是&#xff0c;很多网站开始…

Java项目:高仿12306

github地址&#xff1a;nageoffer/12306: &#x1f525; 官方推荐 &#x1f525; 大学春招、秋招、应届项目&#xff0c;SpringBoot3 Java17 SpringCloud Alibaba Vue3 等技术架构&#xff0c;完成高仿铁路 12306 用户 抢票 订单 支付服务&#xff0c;帮助学生主打就业的…

网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?

在互联网环境中&#xff0c;网站安全是非常重要的。然而&#xff0c;在实际操作过程中&#xff0c;不少网站可能因内容问题、技术安全漏洞等原因被迫下线甚至跳转至国家反诈骗中心网址。面对这一严峻问题&#xff0c;我们如何有效解决&#xff0c;让网站恢复运行并解除强制跳转…

在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&#xff1a…

解决前端二进制流下载的文件(例如:excel)打不开的问题

1. 现在后端请求数据后&#xff0c;返回了一个二进制的数据&#xff0c;我们要把它下载下来。 这是响应的数据&#xff1a; 2. 这是调用接口的地方&#xff1a; uploadOk(){if(this.files.length 0){return this.$Message.warning("请选择上传文件&#xff01;&#xff…

Multi Label Classification with Missing Labels(MLML)的几种loss设计

多标签学习这个方向问题比较多&#xff0c;可以参考多标签学习的新趋势&#xff08;2021 Survey TPAMI&#xff09; 和 部分标签学习和缺失标签学习到底什么异同&#xff1f; 这两篇偏综述性质的解释。本文重点解释下面几个重点问题&#xff1a; Multi Label Classification w…