深度学习——卷积神经网络(convolutional neural network)CNN详解(一)——概述. 步骤清晰0基础可看

在CNN的学习过程中我会提供相应的手算例子帮助理解训练过程。

其他关于神经网络的学习链接如下:

一、了解卷积神经网络

卷积神经网络的作用

总的来说,卷积神经网络的第一个主要作用是对图像进行特征提取,所谓特征提取,就是明白图像的那部分重要,哪部分不重要,然后我们就得到了一个能够识别图像的机器。当我们输入其他的图像,这个机器可以对新输入的图像进行判断,也就是进行相应的任务(分类,目标检测)。

比如,假如我用人眼分辨不出猫和狗,需要机器来帮我。当然,我们能分清猫狗,但是当有更复杂的图像处理任务时,就需要机器帮忙分辨。

一般的CNN训练过程会用到两个数据集。第一个是训练集(Train set),一个是测试集(Test set)

1.训练过程

训练集里面猫狗都有,并且有正确的标签,所谓的标签就是这个训练集里面的每一张图片都有正确的分类。比如我们用0代替猫,用1来代替狗,训练集里面的每张图都有对应的0,1值。我们将训练集里面的每张图输入到CNN中去训练,让这个机器知道猫狗的不同特征,让它能够判断什么是猫,什么是狗。

我们的目的是优化CNN模型,让CNN模型具有分类猫狗的能力。所有对于无论什么优化任务,我们需要有目标函数,CNN里常用的损失函数叫做交叉熵损失函数,我们的目的是让分类损失最小。其实归根到底,就是数学中的最优化问题,找到最优解。这些内容我会在稍后的章节中一一说明,本章的学习任务是理解CNN的运作过程。
 

训练过程可以分解为前向传播(Forward Propagation)和反向传播(Backpropagation),以下的解释以分类猫狗为例

(1)前向传播

  • 目的: 前向传播旨在从输入的图像数据中提取特征,并预测图像是属于“猫”还是“狗”。
  • 作用: 通过前向传播,CNN能够识别图像中的纹理、形状和模式等特征,为分类提供依据。

过程:

  1. 输入层: 输入待分类的图像(例如,一个灰度或彩色图像)。
  2. 卷积层: 图像通过一个或多个卷积层,这些层使用不同的卷积核(或滤波器)来提取图像的局部特征,如边缘、纹理等。
  3. 激活函数: 通常在卷积层之后应用ReLU激活函数,引入非线性,帮助网络学习更复杂的特征表示。
  4. 池化层(可选): 使用最大池化或平均池化来降低特征图的空间尺寸,减少参数数量,提取主要特征。
  5. 全连接层: 卷积层和池化层的输出被展平并通过一个或多个全连接层,这些层将学习到的特征映射到最终的分类结果。
  6. 输出层: 最后,通过一个具有两个输出单元的全连接层(对应于两个类别:“猫”和“狗”),通常使用Softmax激活函数来计算每个类别的概率。

(2)反向传播

  • 目的: 反向传播用于调整网络的权重和偏置,以最小化预测输出和实际标签之间的差异。
  • 作用: 通过反向传播,网络能够根据分类误差自我修正,提高分类准确性。

过程:

  1. 损失函数计算: 计算输出层的预测概率和实际标签(“猫”或“狗”)之间的误差,通常使用交叉熵损失。
  2. 梯度计算: 利用链式法则计算损失相对于网络中每个参数的梯度,从输出层逆向传递至输入层。
  3. 权重更新: 根据计算得到的梯度和预设的学习率,更新网络中的权重和偏置,以减少未来的预测误差。
  4. 迭代优化: 通过多次迭代前向传播和反向传播,不断优化网络参数,直到模型在猫狗分类任务上达到较高的准确率。

2.测试过程

训练完之后,我们将测试集里面的图片输进去,CNN就能给出一个预测值了,是猫或者狗,当然,也有可能预测错误。这个过程叫测试,测试能让我们知道我们训练的CNN模型到底好不好。

什么时候训练完,达到什么状态可以停止这个CNN模型的训练,这些内容在之后的章节中都会一一解释。

预测的正确率可以让我们判断不同CNN的性能好坏。比如一个CNN能将输进去的图全部预测正确,那性能就非常强了。顺带一提,输入到CNN模型的测试集里面的所有图片是不带标签的,但是我们为了了解CNN的性能,也就是为了知道它到底预测得对不对,在训练完之后的评估阶段,会用带标签的测试集评估,我们有一系列的指标评估模型性能,这些指标稍后得章节里面会提到。

3.标签问题

但是当我们用CNN实战应用的时候,比如依靠病人的肺部X光判断他有没有得肺炎,我们肯定是不知道正确答案的。所以训练一个性能强大的CNN是非常重要的,这有助于我们之后的实战应用。当人脑不足以做出判断时,机器会加以辅助。就按这个例子来说,一个已经过测试性能优秀的CNN来判断肺炎与否,当医生用自己的专业知识对这个病人的诊断结果不太确定时,机器的预测结果可以辅助医生进行诊断。这就是CNN强大的应用价值。

总结卷积神经网络其主要作用包括:

  • 特征提取:CNN能够自动从输入数据中提取特征,特别适用于图像的边缘、纹理、颜色等特征的提取。
  • 图像分类:CNN在图像分类任务中表现出色,被广泛用于对象识别和图像分类任务中。
  • 目标检测:用于检测图像中的物体并定位它们。
  • 图像生成:CNN还可以用于生成新的图像,例如通过生成对抗网络(GANs)。

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

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

相关文章

java入门-基础语法(运算符)

运算符是对变量、字面量进行运算的 符号 (一)基本的算术运算符、符号做连接符 (1)基本运算符:(加), - (减)、 * (乘)、 / (除)、%&…

有哪些好的 Stable Diffusion 提示词(Prompt)可以参考?

Docker 作图咒语生成器 docker-prompt-generator 是一个开源项目,可以利用模型反推出提示词,让你偷偷懒,无需琢磨怎么写prompt,只需要找一个差不多的模型反推一下,直接用就好了,支持支持 MidJourney、Stab…

linux中的进程以及进程管理

程序和进程的区别和联系 程序(Program): 程序是一组指令的集合,通常存储在磁盘或其他存储设备上,是一种静态的概念。程序本身并没有运行,它只是一个可执行的文件或脚本,包含了一系列的指令和数…

42、nginx之nginx.conf

nginx----web服务器 一、nginx http就是apache,在国内很少。 nginx是开源的,是一款高性能,轻量级的web服务软件。 稳定性高,而且版本迭代比较快(修复bug速度比较快,安全性快) 消耗系统资源…

uni-app打包小程序的一些趣事~

前言 Huilderx版本&#xff1a;4.15 uni-app Web端版本&#xff1a;3.4.21 问题1 Web端/APP端样式好好的&#xff0c;打包微信小程序就乱了咋整&#xff1f; 使用::v-deep/::deep/deep(){}都是没用滴~~ 原因&#xff1f; 解决&#xff1a; <script lang"ts"…

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…

RK3568驱动指南|第十五篇 I2C-第183章 SMBus总线介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

使用DelayQueue实现延迟任务

有时候&#xff0c;我们需要在当前时间点往后延迟一定时间&#xff0c;再执行任务&#xff0c;该怎么实现呢&#xff1f; 1. 延迟任务方案 延迟任务的实现方案有很多&#xff0c;常见的有四类&#xff1a; DelayQueueRedissonMQ时间轮原理JDK自带延迟队列&#xff0c;基于阻塞…

实验室必备神器:PFA气体装置,精准控制每一丝气体!

PFA气体吸收装置是一种高效的气体处理设备&#xff0c;主要用于捕获、存储和转移各种气体样本&#xff0c;特别是在需要高纯度气体的应用场合中表现出色。以下是关于PFA气体吸收装置的详细介绍&#xff1a; 一、特点与优势 1. 高效吸收&#xff1a;采用先进的物理和化学吸收技术…

01:Linux的基本命令

Linux的基本命令 1、常识1.1、Linux的隐藏文件1.2、绝对路径与相对路径 2、基本命令2.1、ls2.2、cd2.3、pwd / mkdir / mv / touch / cp / rm / cat / rmdir2.4、ln2.5、man2.6、apt-get 本教程是使用的是Ubuntu14.04版本。 1、常识 1.1、Linux的隐藏文件 在Linux中&#xf…

MATLAB将两个折线图画在一个图里

界面如图 输入行数和列数&#xff0c;点击开始填入数据&#xff0c;其中第一列为x值&#xff0c;后面几列&#xff0c;每一列都是y坐标值&#xff0c;填好后点击画在同一张图里即可。点击置零就把所有数变成0&#xff0c;另外也可以选择节点样式。 .mlapp格式的文件如下 夸克…

离线运行Llama3:本地部署终极指南

4月18日&#xff0c;Meta在官方博客官宣了Llama3&#xff0c;标志着人工智能领域迈向了一个重要的飞跃。经过笔者的个人体验&#xff0c;Llama3 8B效果已经超越GPT-3.5&#xff0c;最为重要的是&#xff0c;Llama3是开源的&#xff0c;我们可以自己部署&#xff01; 本文和大家…

师傅们 ~ 2024HW一手资料

各位师傅们&#xff0c;2024HW来了&#xff01; 从2026年开始&#xff0c;随着我国对网络安全的重视&#xff0c;涉及单位不断增加&#xff0c;越来越多单位和个人都加入到HW当中。 2024HW就在眼前&#xff0c; 那么还有不了解或者还没投简历面试的朋友们&#xff0c;需要注意…

有哪些手持小风扇品牌推荐?五大手持小风扇诚意推荐!

在炎炎夏日&#xff0c;一款便携且高效的手持小风扇无疑是消暑的必备神器。为了帮助大家轻松应对酷暑&#xff0c;我们精心挑选了五大手持小风扇品牌进行诚意推荐。这些品牌不仅拥有出色的降温效果&#xff0c;更在外观设计、便携性、续航能力及操作便捷性上表现卓越。接下来&a…

互联网医院系统源码解析:如何打造智能数字药店APP?

在互联网技术飞速发展的今天&#xff0c;医疗行业也在不断与之融合&#xff0c;互联网医院系统应运而生。特别是智能数字药店APP的兴起&#xff0c;使得医疗服务变得更加便捷、高效。本文将深入解析互联网医院系统源码&#xff0c;探讨如何打造一个智能的数字药店APP。 一、互…

KICAD针对线宽布线操作

如果在刚开始没有设置好布线宽度&#xff0c;KiCad Pcbnew 在布好线后经常会需要修改布线宽度。 下面有几种常用的修改多端线宽的方法 1、快捷键修改整个网络的线宽。 按 I 键选中整条网络&#xff0c;再按 E 键&#xff0c;即可修改整网络的线宽。 2、修改多条线的…

仿论坛项目--初识Spring Boot

1. 技术准备 技术架构 • Spring Boot • Spring、Spring MVC、MyBatis • Redis、Kafka、Elasticsearch • Spring Security、Spring Actuator 开发环境 • 构建工具&#xff1a;Apache Maven • 集成开发工具&#xff1a;IntelliJ IDEA • 数据库&#xff1a;MySQL、Redi…

厉害了,Pinokio!所有AI工具,一键安装,全部免费!整合AI绘画、AI视频、AI语音...

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 去年夏天&#xff0c;写了一篇在 Mac 上部署 Stable Diffusio…

友好前端vue脚手架

企业级后台集成方案vue-element-admin-CSDN博客在哔站学习&#xff0c;老师说可以有直接的脚手架&#xff08;vue-element-admin&#xff09;立马去搜索&#xff0c;找到了这博主这篇文章 介绍 | vue-element-admin​​​​​​ 官方默认英文版&#xff1a; git clone https:/…

红队工具Finger 安装具体以步骤-示例centos

1.git clone https://github.com/EASY233/Finger.git 如果没有 yum install git 2.pip3 install -r requirements.txt 找到finger所在的文件夹 可以用find -name "Finger"进入文件中配置命令 前提要安装python yum install python-pip33.python3 Finger.py -h