深度学习——卷积神经网络(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)基本运算符:(加), - (减)、 * (乘)、 / (除)、%&…

Nginx 的详细介绍,包括其特点、安装、配置、应用场景及最佳实践

Nginx 是一款高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。它由俄罗斯人伊戈尔赛索耶夫(Igor Sysoev)开发,并于 2004 年首次公开发布。Nginx 以其轻量级、高并发、稳定性强等特点,在 Web …

有哪些好的 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…

《昇思25天学习打卡营第06天|网络构建》

网络构建 神经网络模型由神经网络层和Tensor操作构成 #实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.2.…

Python作用域及其应用

Python的作用域规则决定了变量在代码中的可见性和访问性。全局作用域中定义的变量可以在整个程序中访问&#xff0c;而局部作用域中定义的变量则只能在其被创建的函数或代码块中访问。 全局作用域与局部作用域 全局作用域中的变量通常在程序的顶层定义&#xff0c;可以被整个…

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;可用于轻量级人工…

商业模式的6大要素,新零售起盘策划公司,顶层设计方案服务商

在当今的商业世界中&#xff0c;企业通过不同的商业模式来实现自身的发展和利润。下面介绍六种常见的商业模式。 坐标&#xff1a;厦门&#xff0c;我是易创客肖琳 深耕社交新零售行业10年&#xff0c;主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 1、互联…

常用知识点问答

目录 描述 Nginx location转发时root和alias指定路径的区别&#xff1f; LVS Haproxy Nginx负载均衡都有哪些常用的调度算法&#xff1f;(每种要求不少于5个) Nginx 4层反向代理和7层反向代理有什么区别&#xff1f;以及如何配置&#xff1f; 如何实现Nginx负载均衡的高可用…

使用DelayQueue实现延迟任务

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

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

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

C++ double free

C double free 原因 原因 局部指针重复释放 指针非 NULL时释放一次&#xff0c;且 function结束时又free一次循环越界&#xff0c;导致内存越界

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…

ubuntu虚拟机安装

Ubuntu18.04安装教程&#xff08;VMware&#xff09;

小型气象站是干什么用的?组成?

小型气象站是一款小型的可监测气象环境参数的气象监测仪器。一般可监测空气温湿度&#xff0c;光照强度&#xff0c;大气压力&#xff0c;总辐射&#xff0c;降雨量&#xff0c;风速&#xff0c;风向等参数。通过监测到的这些参数便于人们生产生活参考。 常规的小型气象站主要…

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; 本文和大家…