当前位置: 首页 > news >正文

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

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

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

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

一个原因

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

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

线性关系

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

c代码解读复制代码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 激活函数

Sigmoid 函数

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

c代码解读
复制代码f(z) = 1/(1+ e^-z)

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

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

tanh 激活函数

tanh

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

tanh

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

 sigmoid 函数和 tanh 函数对比

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

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

Relu 激活函数

relu

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

relu

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

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

当然,它也有缺点:

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

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

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

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

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

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

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

大模型资源分享

“最先掌握 AI 的人,相较于较晚掌握 AI 的人而言,将具备竞争优势。”这句话放在计算机、互联网以及移动互联网的开局时期,同样适用。

我在一线互联网企业工作长达十余年,期间指导过众多同行后辈,助力许多人实现了学习与成长。为此,我将重要的 AI 大模型资料,包括 AI 大模型入门学习思维导图、精品 AI 大模型学习书籍手册、视频教程以及实战学习等录播视频免费分享出来。
在这里插入图片描述

一、全套 AGI 大模型学习路线

AI 大模型时代的精彩学习之旅:从根基铸就到前沿探索,牢牢掌握人工智能核心技能!

在这里插入图片描述

二、640 套 AI 大模型报告合集

此套涵盖 640 份报告的精彩合集,全面涉及 AI 大模型的理论研究、技术实现以及行业应用等诸多方面。无论你是科研工作者、工程师,还是对 AI 大模型满怀热忱的爱好者,这套报告合集都将为你呈上宝贵的信息与深刻的启示。

在这里插入图片描述

三、AI 大模型经典 PDF 书籍

伴随人工智能技术的迅猛发展,AI 大模型已然成为当今科技领域的一大热点。这些大型预训练模型,诸如 GPT-3、BERT、XLNet 等,凭借其强大的语言理解与生成能力,正在重塑我们对人工智能的认知。而以下这些 PDF 书籍无疑是极为出色的学习资源。
在这里插入图片描述
在这里插入图片描述

阶段 1:AI 大模型时代的基础认知

  • 目标:深入洞悉 AI 大模型的基本概念、发展历程以及核心原理。

  • 内容

    • L1.1 人工智能概述与大模型起源探寻。
    • L1.2 大模型与通用人工智能的紧密关联。
    • L1.3 GPT 模型的辉煌发展历程。
    • L1.4 模型工程解析。
    • L1.4.1 知识大模型阐释。
    • L1.4.2 生产大模型剖析。
    • L1.4.3 模型工程方法论阐述。
    • L1.4.4 模型工程实践展示。
    • L1.5 GPT 应用案例分享。

阶段 2:AI 大模型 API 应用开发工程

  • 目标:熟练掌握 AI 大模型 API 的运用与开发,以及相关编程技能。

  • 内容

    • L2.1 API 接口详解。
    • L2.1.1 OpenAI API 接口解读。
    • L2.1.2 Python 接口接入指南。
    • L2.1.3 BOT 工具类框架介绍。
    • L2.1.4 代码示例呈现。
    • L2.2 Prompt 框架阐释。
    • L2.2.1 何为 Prompt。
    • L2.2.2 Prompt 框架应用现状分析。
    • L2.2.3 基于 GPTAS 的 Prompt 框架剖析。
    • L2.2.4 Prompt 框架与 Thought 的关联探讨。
    • L2.2.5 Prompt 框架与提示词的深入解读。
    • L2.3 流水线工程阐述。
    • L2.3.1 流水线工程的概念解析。
    • L2.3.2 流水线工程的优势展现。
    • L2.3.3 流水线工程的应用场景探索。
    • L2.4 总结与展望。

阶段 3:AI 大模型应用架构实践

  • 目标:深刻理解 AI 大模型的应用架构,并能够实现私有化部署。

  • 内容

    • L3.1 Agent 模型框架解读。
    • L3.1.1 Agent 模型框架的设计理念阐述。
    • L3.1.2 Agent 模型框架的核心组件剖析。
    • L3.1.3 Agent 模型框架的实现细节展示。
    • L3.2 MetaGPT 详解。
    • L3.2.1 MetaGPT 的基本概念阐释。
    • L3.2.2 MetaGPT 的工作原理剖析。
    • L3.2.3 MetaGPT 的应用场景探讨。
    • L3.3 ChatGLM 解析。
    • L3.3.1 ChatGLM 的特色呈现。
    • L3.3.2 ChatGLM 的开发环境介绍。
    • L3.3.3 ChatGLM 的使用示例展示。
    • L3.4 LLAMA 阐释。
    • L3.4.1 LLAMA 的特点剖析。
    • L3.4.2 LLAMA 的开发环境说明。
    • L3.4.3 LLAMA 的使用示例呈现。
    • L3.5 其他大模型介绍。

阶段 4:AI 大模型私有化部署

  • 目标:熟练掌握多种 AI 大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述。
    • L4.2 模型私有化部署的关键技术解析。
    • L4.3 模型私有化部署的实施步骤详解。
    • L4.4 模型私有化部署的应用场景探讨。

学习计划:

  • 阶段 1:历时 1 至 2 个月,构建起 AI 大模型的基础知识体系。
  • 阶段 2:花费 2 至 3 个月,专注于提升 API 应用开发能力。
  • 阶段 3:用 3 至 4 个月,深入实践 AI 大模型的应用架构与私有化部署。
  • 阶段 4:历经 4 至 5 个月,专注于高级模型的应用与部署。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AI驱动的Web3革命:如何通过智能技术实现去中心化
  • prometheus删除指定metrics下收集的值
  • 【GIS开发教程分享】基于Mapbox技术栈,共享电动车项目实战
  • 内联汇编 (28)
  • 【云原生】docker 部署 Doris 数据库使用详解
  • 电力系统中的A类在线监测装置—APView400
  • 极狐GiLab 17.3 重点功能解读 升级指南
  • 2、PF-Net点云补全
  • 如何在ST官网下载HALL包和cube开发工具
  • STM32G474之TIM1输出PWM信号支持互补输出,死区时间和刹车
  • 【踩坑】Vue3项目正常跑动后页面空白问题
  • 期权常用的价差策略!会用这个才算真的期权入门!
  • 第二章 数据访问:JPA
  • U盘管控软件|禁止拷贝怎么解决?防止U盘拷贝的6款专业软件推荐
  • 汽车功能安全--TC3xx之PBIST、MONBIST
  • CAP理论的例子讲解
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Kibana配置logstash,报表一体化
  • Next.js之基础概念(二)
  • win10下安装mysql5.7
  • 浮现式设计
  • 工作中总结前端开发流程--vue项目
  • 回顾 Swift 多平台移植进度 #2
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 精彩代码 vue.js
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 开发基于以太坊智能合约的DApp
  • 深度学习中的信息论知识详解
  • 使用Swoole加速Laravel(正式环境中)
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小李飞刀:SQL题目刷起来!
  • 智能合约开发环境搭建及Hello World合约
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (26)4.7 字符函数和字符串函数
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (算法设计与分析)第一章算法概述-习题
  • (转)菜鸟学数据库(三)——存储过程
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET Standard 的管理策略
  • .Net Winform开发笔记(一)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET实现之(自动更新)
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @Bean, @Component, @Configuration简析
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • [].slice.call()将类数组转化为真正的数组
  • [2023-年度总结]凡是过往,皆为序章
  • [C++]STL之map
  • [CISCN2019 华东南赛区]Web4
  • [codeforces]Recover the String
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择