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, 可以定义在神经元类中,如果每个神经元有不同的alpha

class 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函数作为激活函数作为输出(激活值)。这可以被定义为经典阈值神经元的平滑版本。最常用的激活函数选择,用于将大振幅的信号剪辑以保持神经网络的响应有界。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark中的宽窄依赖-宽窄巷子

1、什么是依赖关系&#xff1f; 2、什么是宽窄依赖&#xff1f; 窄依赖&#xff1a;Narrow Dependencies 定义&#xff1a;父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle】 特点&#xff1a;一对一或者多对一&#xff0c;不经过Shuffle&#xff0c;性能相对…

Scrapy入门

Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 安装scrapy pip install scrapy2.5.0 1.新建 Scrapy项目 scrapy startproject mySpider # 项目名为mySpider 2.进入到spiders目录 cd mySpider/mySpider/spiders 3.创建爬虫 scrapy gensp…

C++ 继承:代码传承的魔法棒,开启奇幻编程之旅

文章目录 一.继承的概念及定义1.1继承的概念1.2继承类1.2.1继承方法 1.3继承模板 二.基类和派生类的转换三.继承中的作用域四.派生类的默认成员函数4.1默认成员函数的行为4.2实现一个无法被继承的类 五.继承与友元六.继承与静态成员七.多继承和菱形继承7.1多继承和菱形继承7.2虚…

Liunx:文件fd、重定向、管道

文件fd&#xff1a; 操作系统运行中一定存在着许多被打开的文件&#xff0c;这些文件需要被管理。一个进程会打开若干个文件。一个文件如果在操作系统中被打开&#xff0c;那么必须给该文件创建一个文件对象&#xff0c;包含被打开文件的各种属性。那么进程与文件的关系就变成…

【AIGC】ChatGPT提示词Prompt高效编写技巧:逆向拆解OpenAI官方提示词

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;OpenAI官方提示词的介绍OpenAI官方提示词的结构与组成如何通过分析提示词找到其核心组件 &#x1f4af;OpenAI官方提示词分析案例一&#xff1a;制定教学计划案例二&…

干部谈话考察系统:革新传统,精准高效

在干部选拔任用和考核评价的过程中&#xff0c;谈话考察一直是关键环节之一。然而&#xff0c;传统的谈话考察方式却面临着诸多痛点&#xff0c;严重影响了干部考察工作的质量和效率。干部谈话考察系统的出现&#xff0c;为解决这些问题提供了有力的武器。 一、传统谈话考察的…

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的另一种方法

目录 一、工程目的 1、目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、不以#开头&#xff0c;但以&#xff1b;结束&#xff0c;长度不限 3、以#开头&#xff0c;不以;结束&#xff0c;也不包含;&#xff0c;长…

轨迹规划中优化预测:学习多个初始解的优化器

Abstract 在许多应用中&#xff0c;如机器人控制、自动驾驶和投资组合管理&#xff0c;需要在严格的运行时间限制下连续地解决相似的优化问题。在这种情况下&#xff0c;局部优化方法的性能对初始解的质量非常敏感&#xff1a;不良的初始化可能会导致收敛缓慢或得到次优解。为…

Xserver v1.4.2发布,支持自动重载 nginx 配置

Xserver——优雅、强大的 php 集成开发环境 本次更新为大家带来了更好的用户体验。 &#x1f389; 下载依赖组件时&#xff0c;显示进度条&#xff0c;展示下载进度。 &#x1f389; 保存站点信息和手动修改 vhost 配置文件之后&#xff0c;自动重载 nginx 配置 &#x1f41e…

idea 基础简单应用(java)

Java IDE&#xff08;集成开发环境&#xff09;的使用方法因不同的IDE而异&#xff0c;但通常都包含一些基本的操作和功能。以下以IntelliJ IDEA这一流行的Java IDE为例&#xff0c;介绍Java IDE的基本使用方法与指南&#xff1a; 一、下载与安装 请点击观看 idea免费安装步…

Notepad++ 更改字体大小和颜色

前言 在长时间编程或文本编辑过程中&#xff0c;合适的字体大小和颜色可以显著提高工作效率和减少眼睛疲劳。Notepad 提供了丰富的自定义选项&#xff0c;让你可以根据个人喜好调整编辑器的外观。 步骤详解 1. 更改字体大小 打开 Notepad 启动 Notepad 编辑器。 进入设置菜…

五个高质量伤感视频素材资源站,帮你快速找到完美创作素材

在制作短视频、MV或者广告时&#xff0c;伤感主题的视频素材往往能触动观众的情感&#xff0c;让作品更具共鸣。无论是表达分手、离别&#xff0c;还是展现孤独与失落&#xff0c;合适的伤感素材对情感类创作至关重要。为帮助创作者找到优质的视频素材&#xff0c;以下推荐5个高…

理解Web登录机制:会话管理与跟踪技术解析(一)

在这篇博客中&#xff0c;我们将深入探讨登录校验、会话技术和会话跟踪技术的基本概念、实现原理及其在Web应用中的应用。我们将介绍常见的会话跟踪技术&#xff0c;如Cookies、Session&#xff0c;并讨论它们的优缺点。同时&#xff0c;我们也会涉及如何使用现有的技术栈来实现…

ffmpeg:视频字幕嵌入(GPU加速)

实现方案 参考指令 ffmpeg -i input_video.mp4 -vf "subtitlessubtitles.srt" output_video.mp4 解决因文件名称复杂导致的指令执行失败问题&#xff08;引号给文件框起来&#xff09; ffmpeg -i "A.mp4" -vf "subtitlesB.srt" "c.mp4&qu…

qt QListWidget详解

1、概述 QListWidget 是 Qt 框架中的一个类&#xff0c;它提供了一个基于模型的视图&#xff0c;用于显示项目的列表。QListWidget 继承自 QAbstractItemView 并为项目列表提供了一个直观的接口。与 QTreeView 和 QTableView 不同&#xff0c;QListWidget 是专门为单行或多行项…

UE5 材质篇 0 创建一个材质

首先在starter里的shape里拖入一个几何到场景里 我选了个sphere 然后开始制作一个材质&#xff0c;直接右键点击 进入材质的蓝图界面 先来个纹理采样 左侧detail里选个图给他 type这里可以指定他是其他图片&#xff0c;例如normal map 采样一个之前给UV加个动态offset

AOSP沙盒android 11

这里介绍一下aosp装系统 什么是aosp AOSP&#xff08;Android Open Source Project&#xff09;是Android操作系统的开源版本。 它由Google主导&#xff0c;提供了Android的源代码和相关工具&#xff0c;供开发者使用和修改。 AOSP包含了Android的核心组件和API&#xff0c;使…

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了&#xff0c;突然监控到CPU飙到了95以上&#xff0c;并且阿里云服务器厂商还发送了通知消息&#xff0c;【阿里云】尊敬的xxh: 经检测您的阿里云服务&#xff08;ECS实例&#xff09;i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…

flink 内存配置(二):设置TaskManager内存

flink 内存配置&#xff08;一&#xff09;&#xff1a;设置Flink进程内存 flink 内存配置&#xff08;二&#xff09;&#xff1a;设置TaskManager内存 flink 内存配置&#xff08;三&#xff09;&#xff1a;设置JobManager内存 flink 内存配置&#xff08;四&#xff09;…

基于YOLO11/v10/v8/v5深度学习的建筑墙面损伤检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…