Image Classification (卷积神经网络基础)

(一)图像分类任务介绍 Image Classification 图像分类任务是计算机视觉中的核心任务,其目标是根据图像信息中所反映的不同特征,把不同类别的图像区分开来。图像分类:从已知的类别标签集合中为给定的输入图片选定一个类别标签(标签:狗,猫,卡车,飞机,...)。数据驱动的图像分类方法是指通过构建数据集并设计一个分类器,让分类器去学习数据集中的规律,将学习后的分类器用于图像分类。数据驱动的图像分类方法有三个步骤:数据集构建、分类器设计与学习、分类器决策。 阅读详情

目录

1.激活函数

1.1.sigmoid激活函数

1.2.ReLU激活函数

2.卷积层

3.池化层

4.误差的计算

5.CrossEntropyLss交叉熵损失

5.1.针对多分类问题(softmax输出,所有输出概率和为1)

5.2.针对二分类问题(sigmoid输出,每个输出节点之间互不相干)

6.误差的反向传播

7.权重的更新 

 8.优化器

8.1.SGD优化器(Stochastic Gradient Descent)

8.2.SGD+Momentum优化器

8.3.Adagrad优化器(自适应学习率)

8.4.RMSProp优化器(自适应学习率)

8.5.Adam优化器(自适应学习率)

9.过拟合


1.激活函数

1.1.sigmoid激活函数

f(x)=\frac{1}{1+e^{-x}}

缺点:Sigmoid激活函数饱和时梯度值非常小,故网络层数较深时易出现梯度消失。

1.2.ReLU激活函数

f(x)=Max(0,x)

缺点:当反向传播过程中有一个非常大的梯度经过时,反向传播更新后可能导致权重分布中心小于0,导致该处的倒数始终为0,反向传播无法更新权重,即进入失活状态。

2.卷积层

  • 目的:进行图像特征提取
  • 在卷积过程中,矩阵经卷积操作后的尺寸由以下几个因数决定:
  1. 输入图片大小W×W
  2. Filter大小F×F
  3. 步长S
  4. padding的像素数P
  • 经卷积后的矩阵尺寸大小计算公式为:N=(W-F+2P)/S+1。
  • 卷积特性:拥有局部感知机制;权值共享。

3.池化层

  • 目的:对特征图进行稀疏处理,减少数据运算量。
  • MaxPooling下采样层

  •  AveragePooling下采样层

  •  池化层总结:没有训练参数;只改变特征矩阵的w和h,不改变channel;一般poolsize和stride相同。

4.误差的计算

 \sigma =\frac{1}{1+e^{-x}},o_{i}=\frac{e^{y_{i}}}{\sum _{j}e^{y_{j}}} 

经过SoftMax处理后所有输出节点的概率和为1,即o_{1}=\frac{e^{y_{1}}}{e^{y_{1}}+e^{y_{2}}},o_{2}=\frac{e^{y_{2}}}{e^{y_{1}}+e^{y_{2}}}。

5.CrossEntropyLss交叉熵损失

5.1.针对多分类问题(softmax输出,所有输出概率和为1)

H=-\sum _{i}o_{i}^{*}log(o_{i})

5.2.针对二分类问题(sigmoid输出,每个输出节点之间互不相干)

H=-\frac{1}{N}\sum_{i=1}^{N}[o_{i}^{*}logo_{i}+(1-o_{i}^{*})log(1-o_{i})]

其中o_{i}^{*}为真实标签值,o_{i}为预测值,默认log以e为底等于ln。 

6.误差的反向传播

 

7.权重的更新 

在实际应用中往往不可能一次新将所有数据载入内存(算力也不够),所以只能分批次(batch)训练。若使用整个样本集进行求解,损失梯度只想全局最优方向;若使用分批次样本进行求解,损失梯度只想当前批次最优方向。

 8.优化器

8.1.SGD优化器(Stochastic Gradient Descent)

W_{i+1}=W_{i}-\alpha \cdot g(W_{i})

 其中α为学习率,g(W_{i})为i时刻对参数W_{i}的损失梯度。缺点:易受样本噪声影响;可能陷入局部最优解。

8.2.SGD+Momentum优化器

V_{i}=\eta \cdot V_{i-1}+\alpha \cdot g(W_{i}),W_{i+1}=W_{i}-V_{i}

其中α为学习率,g(W_{i})为i时刻对参数W_{i}的损失梯度,η(0.9)为动量系数。

8.3.Adagrad优化器(自适应学习率)

S_{i}=S_{i-1}+g(W_{i})\cdot g(W_{i}),W_{i+1}=W_{i}-\frac{\alpha }{\sqrt{S_{i}+\varepsilon }}\cdot g(W_{i})

其中α为学习率,g(W_{i})为i时刻对参数W_{i}的损失梯度,\varepsilon (10^{-7})为防止分母为零的小数。缺点:学习率下降的太快可能还没收敛就停止训练。

8.4.RMSProp优化器(自适应学习率)

S_{i}=\eta \cdot S_{i-1}+(1-\eta )\cdot g(W_{i})\cdot g(W_{i}),W_{i+1}=W_{i}-\frac{\alpha }{\sqrt{S_{i}+\varepsilon }}\cdot g(W_{i})

 其中α为学习率,g(W_{i})为i时刻对参数W_{i}的损失梯度,η(0.9)控制衰减速度,\varepsilon (10^{-7})

为防止分母为零的小数。

8.5.Adam优化器(自适应学习率)

m_{i}=\beta_{1} \cdot m_{i-1} +(1-\beta _{1})\cdot g(W_{i}), V_{i}=\beta _{2} \cdot V_{t-1}+(1-\beta_{2})\cdot g(W_{i})\cdot g(W_{i}), \hat{m_{i}}=\frac{m_{i}}{1-\beta_{1}^{i}},\hat{V_{i}}=\frac{V_{i}}{1-\beta_{2}^{i}},W_{i+1}=W_{i}-\frac{\alpha }{\sqrt{\hat{V_{i}}+\varepsilon }}\cdot \hat{m_{i}}

  其中α为学习率,g(W_{i})为i时刻对参数W_{i}的损失梯度,\beta _{1}(0.9),\beta _{2}(0.999)控制衰减速度,\varepsilon (10^{-7})为防止分母为零的小数。

9.过拟合

  • 特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。过度的拟合了训练数据,而没有考虑到泛化能力。
  • 解决方法:使用DropOut的方式在网络正向传播过程中随机失活一部分神经元。

CNN+SVM实现多分类 1. 本文目的 使用SVM代替CNN网络的全连接层,即CNN提取特征后利用SVM进行分类。(注:仍使用完整CNN网络进行训练获取卷积层参数,SVM参数单独训练获得,后续会对此进行详细说明。) 2. 实验流程: 对样本数据进行处理 建立完整的卷积神经网络(CNN) 利用训练数据进行训练,获取卷积层权重参数 将卷积层输出转换为SVM输入特征向量 利用上一步特征向量对SVM进行训练 利用测试数据进行准... 阅读详情

相关推荐

每日算法讲解(三):卷积神经网络(CNN)进行图像分类

卷积神经网络(CNN)是一种专门用于处理具有网格结构数据(如图像)的深度学习模型。CNN通过卷积层、池化层和全连接层的组合,能够自动提取图像中的特征,实现图像分类。接下来,我们定义一个简单的CNN模型。Flatten(),])在本文中,我们详细介绍了如何使用CNN模型进行图像分类,包括数据预处理、模型定义、训练和预测等各个环节。

rhtee的博客 4994

图像分类Image Classification

CS231n 图像分类Image Classification学习笔记

elfighting的博客 1169

【Pytorch教程】:卷积神经网络 CNN

Pytorch教程目录 Torch and Numpy 变量 (Variable) 激励函数 关系拟合(回归) 区分类型 (分类) 快速搭建法 批训练 加速神经网络训练 Optimizer优化器 卷积神经网络 CNN 目录Pytorch教程目录什么是卷积神经网络 CNN卷积 和 神经网络池化(pooling)流行的 CNN 结构CNN 卷积神经网络MNIST手写数据CNN模型训练可视化训练全部代码 什么是卷积神经网络 CNN 卷积 和 神经网络 卷积神经网络是如何运作的呢, 举一个识别图片的例子, 我们知

nanke_4869的博客 8100

Image Classification 四标签图像分类

通过对模型的训练,预测图像是下列四项中的概率:食物(Food)、服装(Attire)、装饰和签名(Decorationandsignage)、杂项(msic)

qq_26817675的博客 1450

ICLR2014:论文解读与复现《Deep inside CNN:Visualising Image Classification Models and Saliency Maps》

《Deep Inside Convolution Networks: Visualising Image Classification Models and Saliency Maps》 文章目录原文地址论文阅读方法初识(Abstract & Introduction & Conclusion)相知(Body)2. Class Model Visualisation3. Image-Specific Class Saliency Visualisation3.1 Class Saliency

要相信光 4971

多标签分类(一) | CNN-RNN: A Unified Framework for Multi-label Image Classification

CNN-RNN:一种统一的多标签图像分类框架 摘要   虽然深度卷积神经网络(CNNs)在单标签图像分类方面取得了巨大成功,但需要注意的是,现实世界的图像通常包含多个标签,这些标签可以对应于一幅图像中不同的物体、场景、动作和属性,传统的多标签图像分类方法是对每个类别学习独立的分类器,并对分类结果进行排序或阈值设定。这些技术虽然执行的很顺利,但是不能明确的利用图像中的标签依赖关系。在本文中,我们利用递归神经网络(RNNs)来解决标签依赖关系的问题。结合CNNs,本文提出的CNN-RNN框架学习一个联合图像-标

weixin_43436958的博客 9252

Paper Reading - 基础系列 - Tricks for Image Classification with CNN

Bag of Tricks for Image Classification with Convolutional Neural Networks 更多可见计算机视觉-Paper&Code - 知乎 Paper Abstract 本文由AWS发出,不愁卡,18年训练用到了8张V100。对于各个有效的训练Trick都做了对比和单一分析。通过将这些改进组合在一起,能够改进各种 CNN 模型,甚至魔改ResNet50都好过当时最新的SE-ResNeXt-50 Algorithm Effic

weixin_43953700的博客 1万+

cnn图像分类_使用cnn进行图像分类

cnn图像分类PyTorch on CIFAR10 CIFAR10上的PyTorch In my previous posts we have gone through 在我以前的帖子中,我们已经看过 Deep Learning — Artificial Neural Network(ANN) 深度学习-人工神经网络(ANN) Tensors — Basics of PyTorch progr...

weixin_26750481的博客 4634

Fast R-CNN

Fast rcnn相当于是在RCNN跟SPPNet的基础的又进行了改进,速度精度增加。 引用流程图 首先它延续了SPPNet的金字塔最大值池化层,置于网络最后一个卷积层,相当于简化版的SPP,因为只有一层金字塔,(AlexNet即pool5, 6 * 6),目的是保证输入Rol(建议框)h * w 后,经过 [h/H, w/W] 最大值池化, 输出统一大小H * W,对应之后的全连接层配置; 其...

qq_36202348的博客 252

用卷积神经网络(CNN)实现cifar_10图像识别分类

一、资源链接 无数据集纯代码链接:https://pan.baidu.com/s/1w20ZUkwaYw22qXIRWw2NXA 提取码:csco 带数据集和代码链接: https://pan.baidu.com/s/1OTu17l_9tk7Vg45m1BokNw 提取码:w7o9 二、资源格式 一共4个文件,三个为py代码文件,另一个是数据集。目录尽量存放在一起,我的目录是这样...

懒骨头707 8124

图像分类任务解决方案详解

作者:禅与计算机程序设计艺术 1.背景介绍 1.1 什么是图像分类? 图像分类(Image Classification)是计算机视觉领域中最基础、最重要的任务之一。它的主要目的是将一组照片进行整理归类,按照不同的主题、风格、场景、年龄段等,将图片

AI天才研究院 861

CNN实现花卉图片分类识别

CNN

CrimsonK的博客 2万+

图像分类(Image Classification)原理与代码实战案例讲解

1. 背景介绍 图像分类是计算机视觉领域中的一个重要问题,它的目标是将输入的图像分为不同的类别。图像分类在很多领域都有广泛的应用,例如人脸识别、物体识别、医学图像分析等。随着深度学习技术的发展,图像分类的准确率得到了大幅提升,成为了计算机视觉领域的一个热门研究方向。 本文将介绍图像分类的核心概念、算法原理、数学模型和公式、项目实践、实际

AI天才研究院 1244

CNN(卷积神经网络)详解

CNN卷积神经网络详解Why CNN局部感受野(local receptive fields)权值共享(Shared weights and biases)池化(Pooling)总的来看 原文链接:https://blog.youkuaiyun.com/m0_37490039/article/details/79378143 Why CNN 首先回答这样一个问题,为什么我们要学CNN,或者说CNN为什么在很多...

DDB 3万+

分类算法:卷积神经网络(CNN)与图像分类

通过上述内容,我们了解了CNN的基本结构,包括卷积层、池化层和全连接层的作用,以及如何使用Python和TensorFlow库来构建和训练一个CNN模型。CNN在图像分类任务中表现出色,能够自动学习图像的特征,从而进行准确的分类。MNIST数据集是手写数字识别领域中最常用的数据集之一,包含60,000个训练样本和10,000个测试样本,每个样本是一个28x28像素的灰度图像,代表0到9的数字。使用卷积神经网络(CNN)进行图像分类,可以有效地识别这些手写数字。

kkchenjj的博客 3854

Bert+CNN文本分类(含代码实现)

一、什么是CNN? CNN的特点: (1)特定特征位移不变性 (2)特征缩放不变性 2. CNN模型构造过程 2.1 Convolution(卷积) (1)获取关键特征(减少参数) (2)共享权重(再次减少参数) 2.2 Max Pooling(池化) 2.3 Flatten 向量转换为如图所示可以进入全连接层的向量模式 3. TextCNN 上图可理解为: 通过不同的size(如上图2、3、4等),上图红色代表 size=2,黄色...

Python,数据分析,机器学习,深度学习 1万+

【李宏毅机器学习2021】卷积神经网络HW3-Image Classification(更新ing)

文章目录一、作业目标and要求1.object和要求2.数据说明二、原始代码1.导入库2.Dataset, Data Loader, and Transforms3.Model4.Training三、修改代码附:Pytorch基础教程 一、作业目标and要求 1.object和要求 目标: (1)用CNN进行图片分类 (2)用数据增强(datadatadata augmentationsaugmentationsaugmentations)提高performance (3)学会利用unlabeled数据 要

发现问题,并解决问题,批判性思维 7026

Python小项目:利用CNN实现垃圾图片分类

在这篇文章中,我们探索了如何利用卷积神经网络(CNN)实现垃圾图片分类。我们从数据预处理开始,详细讨论了CNN的结构、训练和结果可视化。通过这个项目,我们展示了深度学习在环保领域的潜力,通过技术创新,为垃圾分类问题提供了一种创新解决方案。文章鼓励读者继续深入学习,为环保事业贡献一份力量,以创新驱动未来的可持续发展。

蓝色是天的博客 5012
上一篇: ShuffleNet神经网络
下一篇: Pytorch错误之SystemExit: 2解决方法
Caoyy686868
博客等级 码龄8年 5742粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Caoyy686868

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值