Resnet图像识别入门——激活函数

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
简介: 激活函数也是推理的灵魂。

大家好啊,我是董董灿。

上一篇文章Resnet图像识别入门——残差结构说到了Resnet网络的残差结构,也就是人们俗称的高速公路。

Resnet50这个图像分类网络,就是有很多残差结构组成的卷积神经网络,一层层搭建而成的。除了卷积层,还有激活层、池化层、BN层等。

每一个卷积层的后面,都会跟着一个激活层,在Resnet50中,激活函数用的是Relu激活函数。那为什么在神经网络中,每一层卷积后面都需要跟着一个激活函数呢?

一个原因

敲黑板,划重点,为了,非线性。

我们都学过线性关系,最简单的 y = kx + b,画出来就是一条直线。这个函数就是一个线性函数,称 y 和 x 是线性关系。

image.png

如果这个时候,又有一个线性关系 z = hy + d,那么,可以通过如下的线性变换,得到变量 z 和 x 同样也是线性关系!

z = hy + d = h(kx+b) + d
           = hkx + hb + d
           = Ax + B

其中:A = hk, B = hb + d。

所以,不管有多少个线性关系,只要在数学上首尾相连,最终都可以等效成一个线性关系!

而在深度学习任务中,如分类任务,具有线性关系的模型其分类效果是不好的,甚至是很差的。

因为卷积算法是由大量的乘法和加法组成,所以,卷积算法也是线性的!

这就导致,由大量卷积算法组成的卷积神经网络(CNN),如果没有非线性因素的引入,会退化成一个简单的线性模型。

这就使得多层卷积失去了意义。比如,Resnet50网络中的50层卷积,就会退化为一个卷积。

而在神经网络中,使用多层卷积的一个重要目的,就是利用不同卷积核的大小,来抽取不同卷积核尺度下的图像特征。

因此,在神经网络设计时,在每层的卷积后面,都增加一个非线性函数,就可以完成两个卷积层的线性隔离,确保每个卷积层完成自己的卷积任务。

目前常见的激活函数,主要有Sigmoid、tanh、Relu等。Resnet50中的激活函数就是Relu。

下面主要介绍下这三个函数。

激活函数

sigmoid 激活函数

image.png

Sigmoid 函数的图像看起来像一个 S 形曲线。公式为:

f(z) = 1/(1+ e^-z)

Sigmoid 在神经网络中使用,是有一些优点的,主要体现在:

  • Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
  • 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
  • 梯度平滑,避免「跳跃」的输出值;
  • 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
  • 确的预测,即非常接近 1 或 0

tanh 激活函数

image.png

tanh激活函数的图像也是 S 形,表达式如下:

image.png

tanh 是一个双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势。

image.png

首先,当输入比较大或者比较小时,函数的输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;

在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。

Relu 激活函数

image.png

ReLU激活函数图像如上图所示,函数表达式如下:

image.png

ReLU 函数是深度学习中较为流行的一种激活函数,相比于 sigmoid 函数和 tanh 函数,它具有如下优点:

  • 当输入为正时,不存在梯度饱和问题。
  • 计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。

当然,它也有缺点:

  • Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。

但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid 函数和 tanh 函数也具有相同的问题:我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。

除了上面的3种激活函数之外,还有很多其他激活函数,比如Relu函数就有很多变种,如PRelu、LeakyRelu等。

每种激活函数,都在一种或几种特定的深度学习网络中有优势。

判断一个激活函数的好与坏,绝不仅仅是从函数的数学表达式上来判断,而是需要在实际的深度学习网络中不断地实验和实践,来找到最适合这个网络的激活函数。

总之,之所以在神经网络中添加激活函数,一个重要的原因是给网络模型增加非线性因素

目前已有的激活函数有很多种,每种激活函数,不论从数学原理上还是从适用的AI模型上,都有各自的优缺点,需要根据网络特点和适用场景,进行实验,选择最适合这个模型的激活函数。

欢迎关注@董董灿是个攻城狮 和同名微信公众号
本文作者原创,转载请联系作者,请勿随意转载

相关文章
|
11天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
144 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
2月前
|
机器学习/深度学习 并行计算 算法
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
104 0
|
12月前
|
机器学习/深度学习 算法 TensorFlow
基于python+ResNet50算法实现一个图像识别分类系统
在本文中将介绍使用Python语言,基于TensorFlow搭建ResNet50卷积神经网络对四种动物图像数据集进行训练,观察其模型训练效果。
561 0
基于python+ResNet50算法实现一个图像识别分类系统
|
机器学习/深度学习 算法
Resnet图像识别入门——Softmax分类是如何工作的
softmax作为一个分类器,它只是把重要的信息变得更重要了而已。
Resnet图像识别入门——Softmax分类是如何工作的
|
机器学习/深度学习 算法 计算机视觉
Resnet图像识别入门——全连接
全连接,到底连接的是什么?看完这篇文章,相信你会有所了解。
Resnet图像识别入门——全连接
|
机器学习/深度学习 算法
Resnet图像识别入门——池化层
池化和卷积不同,它没有channel维度的累加。
Resnet图像识别入门——池化层
|
9小时前
|
机器学习/深度学习 算法 计算机视觉
探索深度学习在图像识别中的应用与挑战
【7月更文挑战第4天】本文深入探讨了深度学习技术在图像识别领域的应用,并分析了其面临的主要挑战。通过介绍深度学习的基础原理和关键技术,我们揭示了其在图像处理任务中的强大能力,包括特征提取、对象检测和分类。同时,文章也指出了深度学习模型在泛化能力、数据依赖性以及计算资源需求方面存在的问题,并提出了可能的解决策略,旨在为未来图像识别技术的发展提供参考。
|
1天前
|
机器学习/深度学习 人工智能 算法
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
服装识别系统,本系统作为图像识别方面的一个典型应用,使用Python作为主要编程语言,并通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对18种不同的服装('黑色连衣裙', '黑色衬衫', '黑色鞋子', '黑色短裤', '蓝色连衣裙', '蓝色衬衫', '蓝色鞋子', '蓝色短裤', '棕色鞋子', '棕色短裤', '绿色衬衫', '绿色鞋子', '绿色短裤', '红色连衣裙', '红色鞋子', '白色连衣裙', '白色鞋子', '白色短裤')数据集进行训练,最后得到一个识别精度较高的H5格式模型文件,然后基于Django搭建Web网页端可视化操作界面,实现用户在界面中
6 1
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
|
1天前
|
机器学习/深度学习 算法 自动驾驶
深度学习在图像识别中的应用与挑战
【7月更文挑战第3天】 本文深入探讨了深度学习技术在图像识别领域内的应用及其所面临的挑战。首先,文章概述了深度学习如何革新了图像处理的范式,接着详细讨论了卷积神经网络(CNN)在图像分类、目标检测及语义分割中的具体应用。然后转向挑战部分,分析了数据集偏差、模型泛化能力以及对抗性攻击等问题。最后,文章提出了未来研究方向,包括算法优化、跨域适应性学习以及隐私保护等议题。