C++builder中的人工智能(12):了解ELU(Exponential Linear Unit)——人工神经网络中的激活函数

在这篇文章中,我们将解释什么是指数线性单元(ELU),以及如何利用ELU激活函数。通过学习这些知识,你将能够使用C++软件创建C++应用程序。

我们需要了解哪些关于激活函数的知识?

激活函数(phi()),也称为转移函数或阈值函数,它根据净输入函数的给定值(sum)确定激活值(a = phi(sum))。在这里,sum是它们权重中的信号之和,激活函数是这个和的新值,具有给定的函数或条件。换句话说,激活函数是将所有加权信号的和转换为该信号的新激活值的方法。有不同类型的激活函数,通常使用的是线性(恒等)、双极性和逻辑(sigmoid)函数。激活函数及其类型在这里有详细解释。

在C++(以及大多数编程语言)中,你可以创建自己的激活函数。注意,sum是净输入函数的结果,它计算所有加权信号的和。我们将使用这些作为输入函数的结果。在这里,人工神经元(输出值)的激活值可以通过激活函数如下所示,

通过使用这个sum净输入函数值和phi()激活函数

什么是指数线性单元(ELU)?

指数线性单元(ELU:Exponential Linear Unit)是另一种激活函数,由Djork-Arne Clevert, Thomas Unterthiner & Sepp Hochreiter开发并发表,标题为“FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)”。你可以通过点击这里找到论文的文本https://arxiv.org/pdf/1511.07289。

根据他们的研究,他们引入了“指数线性单元”(ELU),它加快了深度神经网络中的学习速度,并导致了更高的分类准确率。ELU激活函数通过对于正值的身份缓解了消失梯度问题,如修正线性单元(ReLUs),泄漏ReLUs(LReLUs)和参数化ReLUs(PReLUs)。他们还证明了与其他激活函数的单元相比,ELUs具有改进的学习特性。与ReLUs相比,

指数线性单元(ELU)可以写成如下,

这个函数的导数可以写成,

在C和C++编程语言中,简单的指数线性单元函数可以写成如下

double alpha = 0.1; // 范围从0到1.0
double phi(double sum) {return (sum > 0 ? sum : alpha * (std::exp(sum) - 1)); // ELU函数
}

有没有一个简单的人工神经网络示例,使用指数线性单元(ELU)在C++中?

我们可以在Tneuron类中使用给定的ELU函数,如下所示,

#include <iostream>
#define NN 2   // 神经元数量
double alpha = 0.1; // 范围从0到1.0, 可以定义在神经元类中,如果每个神经元有不同的alphaclass Tneuron { // 神经元类
public:double a; // 每个神经元的活动double w[NN+1]; // 神经元之间连接的权重Tneuron() {a = 0;for (int i = 0; i <= NN; i++) w[i] = -1; // 如果权重是负数,则表示没有连接}// 定义输出神经元的激活函数(或阈值)double phi(double sum) {return (sum > 0 ? sum : alpha * (std::exp(sum) - 1)); // ELU函数}
};Tneuron ne[NN+1]; // 神经元对象void fire(int nn) {float sum = 0;for (int j = 0; j <= NN; j++) {if (ne[j].w[nn] >= 0) sum += ne[j].a * ne[j].w[nn];}ne[nn].a = ne[nn].phi(sum);
}int main() {// 定义两个输入神经元(a0, a1)和一个输出神经元(a2)的活动ne[0].a = 0.0;ne[1].a = 1.0;ne[2].a = 0;// 定义来自两个输入神经元到输出神经元(0到2和1到2)的信号权重ne[0].w[2] = 0.3;ne[1].w[2] = 0.2;// 激发我们的人工神经元活动,输出将是fire(2);printf("%10.6f\n", ne[2].a);getchar();return 0;
}

指数线性单元(ELU)通常用于ANN应用中引入发展模型中的非线性,或者用于将信号限制在指定区间内。ANN元素计算其输入信号的线性组合,并应用有界的ELU函数作为激活函数作为输出(激活值)。这可以被定义为经典阈值神经元的平滑版本。最常用的激活函数选择,用于将大振幅的信号剪辑以保持神经网络的响应有界。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

从0开始学习机器学习--Day19--学习曲线

一般来说&#xff0c;如果一个算法的表现不理想&#xff0c;那么多半是因为出现了欠拟合或过拟合问题&#xff0c;这种时候我们要做的就是搞清楚出现的是偏差问题还是方差问题&#xff0c;亦或是二者皆有&#xff0c;这有助于我们精准定位问题所在。 之前&#xff0c;我们发现…

豆包大模型团队开源RLHF框架,破解强化学习训练部署难题

1. 引言 1.1 强化学习 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是与监督学习和无监督学习并列的一种机器学习方法&#xff0c;其用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

css:基础

前言 我们之前其实也可以写出一个看起来算是一个网页的网页&#xff0c;为什么我们还要学css&#xff1f; CSS&#xff08;Cascading Style Sheets&#xff09;也叫层叠样式表&#xff0c;是负责美化的&#xff0c;我们之前说html就是一个骨架&#xff0c;css就可以用来美化网…

解析 “Cookies Not Marked as HttpOnly” 漏洞

一、引言 在 Web 应用安全领域&#xff0c;Cookies 相关的漏洞一直是备受关注的问题。其中&#xff0c;“Cookies Not Marked as HttpOnly” 漏洞可能会对用户数据安全和网站的正常运行造成潜在威胁。本文将详细介绍这个漏洞&#xff0c;包括其原理、影响、检测方法以及修复措…

基于MATLAB DCT域图像水印技术

1数字水印技术的概念和特点 数字水印&#xff08;Digital Watermark&#xff09;技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中&#xff0c;但不影响原内容的使用价值&#xff0c;并不容易被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的…

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割!

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 文章目录 【语义分割|代码解析】CMTFNet-2: …

在暗处执着生长,终有一日馥郁传香

总有人说很孤独&#xff0c;一个人吃饭&#xff0c;一个人上班&#xff0c;一个人逛街&#xff1b; 总有人又说享受孤独&#xff0c;面对时间&#xff0c;迎接苦难&#xff0c;战胜痛苦&#xff1b; 可没人说这些的大前提是你要有信念支撑啊&#xff0c;如果干完了上面的所有&a…

揭秘集装箱箱号自动识别原理,箱号识别算法

集装箱箱号自动识别算法是一种高效且实用的软件工具。它利用相机、手机或其他摄像头捕获集装箱箱号图像&#xff0c;并通过深度学习的OCR&#xff08;光学字符识别&#xff09;识别技术对集装箱号码进行准确识别。要想进行集装箱箱号识别&#xff0c;需要以下几个基本步骤&…

JavaScript 网页设计详解教程

JavaScript 网页设计详解教程 引言 JavaScript 是一种广泛使用的编程语言&#xff0c;主要用于网页开发。它使得网页具有动态交互性&#xff0c;能够响应用户的操作。随着前端开发的不断发展&#xff0c;JavaScript 已成为现代网页设计中不可或缺的一部分。本文将详细介绍 Ja…

高新技术企业知识库搭建:在创新创业中的支撑作用

在快速迭代的科技时代&#xff0c;高新技术企业&#xff08;以下简称“高企”&#xff09;作为推动经济社会发展的核心力量&#xff0c;正面临着前所未有的创新挑战与机遇。知识库&#xff0c;作为信息时代的智慧宝库&#xff0c;不仅承载着企业内部的宝贵知识与经验&#xff0…

ReposVul: A Repository-Level High-Quality Vulnerability Dataset 论文阅读

本文发表于 ICSE2024 会议中。 引入 在过去的漏洞数据库中&#xff0c;主要存在以下几种问题&#xff1a; 无效补丁&#xff08;Tangled Patches&#xff09;&#xff1a;针对某个漏洞的补丁无法正确修复该漏洞缺乏跨函数漏洞&#xff08;Inter-procedural Vulnerabilities&…

【图解版】力扣第70题:爬楼梯

推理出状态表达式 f(5)表示到达第5层&#xff0c;所有可能的方法数。 到达第5层&#xff0c;有可能是从第4层走一步上来&#xff0c;也有可能是从第3层走两步上来。所以我们可以慢慢延伸&#xff0c;画出上面&#x1f446;&#x1f3fb;的图。 从图中&#xff0c;我们可以看到…

使用Docker快速部署FastAPI Web应用

Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术&#xff0c;对进程进行封装隔离&#xff0c;一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行&#xff0c;镜像是容器的只读模板&#xff0c;容器是模板的一个实例。镜像是分层结…

QT——自定义控件绘图

一.QPaintEvent绘图事件 QPaintEvent是QT中一个重要的类&#xff0c;专门用于绘图事件。当QT视图组件需要重绘制自己的一部分时&#xff0c;就会产生该事件&#xff0c;通常发生在以下几种情况。 窗口第一次显示时&#xff1a;当窗口或控件第一次出现在屏幕中&#xff0c;系统…

Java项目实战II基于Java+Spring Boot+MySQL的高校办公室行政事务管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在高等教育…

非计算机背景但是想从事医学AI研究,需要掌握的编程语言|个人观点·24-11-08

小罗碎碎念 目前&#xff0c;我们从事医学AI研究的&#xff0c;接触的最多的两种编程语言应该就是R和Python了。那么初学者很容易提出一个疑问&#xff0c;**我想从事医学AI相关的研究的话&#xff0c;应该学哪些编程语言呢&#xff1f;**在文章的开头&#xff0c;我可以先给出…

arkUI:Flex弹性布局的各个属性

arkUI&#xff1a;Flex弹性布局的简单使用 1 主要内容说明2 相关内容2.1 Flex弹性布局的方向2.1.1 源码1的简答说明2.1.2 源码1 &#xff08;Flex弹性布局的方向&#xff09;2.1.3 源码1运行效果2.1.3.1 当direction: FlexDirection.RowReverse2.1.3.2 当direction: FlexDirect…

高效Web测试:构建Pytest、Allure和Jenkins的自动化测试生态

Pytest介绍 pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下几个特点&#xff1a;简单灵活、容易上手、文档丰富&#xff1b;支持参数化&#xff0c;可以细粒度地控制被测用例&#xff1b;能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来…

ros入门:topic话题通信(c++)

准备工作 创建工作空间 mkdir -p demo02_pub/src/ 生成依赖文件 cd demo02_pub/ catkin_make 进入src目录执行 catkin_create_pkg ros_pub_sub/ roscpp rospy std__msgs 发布者实现 消息发布代码编写 cd demo02_pub/src/ros_pub_sub/src 创建代码文件demo01_pub.cc …