C++builder中的人工智能(16):神经网络中的SoftPlus激活函数

现在我们继续探索一下SoftPlus激活函数在人工神经网络(ANN)中的应用。了解SoftPlus激活函数的工作原理,将有助于您在使用C++ IDE构建C++应用程序时更加得心应手。

目录

  • 神经网络中的激活函数是什么?
  • 能在C++中创建激活函数吗?
  • SoftPlus激活函数是什么?
  • 如何在C++中编写SoftPlus激活函数?
  • 一个简单的使用SoftPlus激活函数的C++ ANN示例

神经网络中的激活函数是什么?

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

能在C++中创建激活函数吗?

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

通过使用这个sum净输入函数值和phi()激活函数,让我们看看C++中的一些激活函数;现在让我们看看如何使用SoftPlus函数作为这个示例公式的,

SoftPlus激活函数是什么?

SoftPlus激活函数由Dugas等人在2001年开发和发布。简单来说,SoftPlus函数可以写成如下,

f(x) = log( 1+exp(x) );

根据他们的论文(https://papers.nips.cc/paper/2000/file/44968aece94f667e4095002d140b5896-Paper.pdf),他们提出的函数类别的基本思想是,他们用Softplus或sigmoid函数替换了求和的sigmoid,每个维度上都有一个(使用Softplus在凸维度上,sigmoid在其他维度上)。他们引入了新类别的函数,类似于多层神经网络具有这些属性的概念。

如何在C++中编写SoftPlus激活函数?

在C++中,SoftPlus激活函数可以编写如下:

double phi(double sum) {return(std::log(1 + std::exp(sum))); // SoftPlus函数
}

有没有一个简单的C++ ANN示例使用SoftPlus激活函数?

以下是一个简单的C++ ANN示例,使用SoftPlus激活函数:

#include <iostream>
#define NN 2   // 神经元数量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(std::log(1 + std::exp(sum))); // SoftPlus函数}
};Tneuron ne[NN+1]; // 神经元对象void fire(int nn) {double 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;
}

这个示例展示了如何在C++中使用SoftPlus激活函数来模拟一个简单的人工神经网络。通过这种方式,你可以构建更复杂的神经网络模型,并在C++应用中实现深度学习技术。

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

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

相关文章

【图】图学习

0 回顾数据结构逻辑 1 图的定义和基本术语 必须有顶点&#xff0c;可以没有边。 Cn2和2*Cn2&#xff08;数学上的&#xff0c;n个顶点取2个顶点&#xff09; 概念有些多。。。。。。

类和对象(C++)(中)

1. 类的默认成员函数 默认成员函数就是⽤⼾没有显式实现&#xff0c;编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类&#xff0c;我们不写的情况下编译器会默认⽣成以下6个默认成员函数&#xff0c;需要注意的是这6个中最重要的是前4个&#xff0c;最后两个取地址重载不重…

港科夜闻 | 香港科大校董会汇聚顶尖医学专家及学者,为筹建第三间医学院提供专业意见...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大校董会汇聚顶尖医学专家及学者&#xff0c;为筹建第三间医学院提供专业意见。为支持政府及其新成立的工作组发展香港成为国际医疗培训、研究和创新枢纽&#xff0c;以及培养更多医生的愿景&#xff0c;香港科大于…

23.智能停车计费系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2 相关概念和技术介绍 2.1 JAVA技术介绍 2.2 SpringBoot框架 2.3B/S架构 2.4 MySQL数据库 3 系统需求分析 3.1 问题定义 3.2 可行性分析 3.3系统用例分析 3.4 系统流程分析 3.4.1 登录流程 3.4.2 添加信息流程 3.4.3 删除信息流程 4…

golang安装,常用框架安装,记忆点

0.安装 虚拟机扩容 【Linux干货分享】LVM快速扩容虚拟机磁盘_哔哩哔哩_bilibili newvim 安装 sudo add-apt-repository ppa:neovim-ppa/stable sudo apt-get update sudo apt-get install -y neovim 最强Vim新手指南&#xff0c;手把手教你打造只属于自己的代码编辑器&am…

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时&#xff0c;其核心的逻辑就是拖拽方块放入到地图中&#xff0c;这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手&#xff0c;具体的实现逻辑就是下面 public void On…

云计算在esxi 主机上创建 4g磁盘,同时在此磁盘上部署linux

1 创建4g 磁盘 这个状态说明esxi 已经启动好 开启esxi 这个操作系统已经安装 这个在我们pc 上ping esxi 主机可以正常通信 这个是esxi 主机的界面 开始添加硬盘4g 重新登 在我们的esxi 主机上新增了8g的空间 很明显这是给我们 的磁盘空间装文件系统 这个很明显是格式化把文件…

关于圆周率-4

在这里总结一下&#xff0c;以上分析&#xff0c;都是基于“单位”的。计算圆周率的时候&#xff0c;我们考虑的是做一个单位来理解&#xff0c;而它的倍数则作为某种比例缩放来理解。同理欧拉函数&#xff0c;也是用弧长来作为单位的&#xff0c;其它弧长则是基于这个单位的比…

嘉吉携百余款产品与解决方案再度亮相进博会

第七届中国国际进口博览会&#xff08;下称“进博会”&#xff09;于11月5日至10日在上海国家会展中心举办。嘉吉连续第七年参与进博会&#xff0c;并以“新质绿动&#xff0c;共赢未来”为参展主题&#xff0c;携超过120款创新产品与解决方案&#xff0c;共赴进博之约。 今年嘉…

docker网络配置:bridge模式、host模式、container模式、none模式

docker网络模式选择 docker网络配置&#xff1a;bridge模式、host模式、container模式、none模式 - 熊仔其人 - 博客园 docker网络配置&#xff1a;bridge模式、host模式、container模式、none模式 在docker平台里有四种网络模式&#xff0c;今天继续分享一下它们的常用知识&a…

教材下载 3.2.5| 国家中小学智慧教育平台下载器,支持预览

教材下载是一款国家中小学智慧教育平台的下载器&#xff0c;绿色免安装&#xff0c;用户只需解压后双击exe文件即可使用。软件涵盖了小学、初中、高中以及特殊教育的教材内容&#xff0c;并支持选择不同的学科和版本。所有教材均支持在线预览&#xff0c;用户还可以下载PDF文件…

系统架构(01架构的特点,本质...)

目录 学习前言 一、软件架构简介 二、系统复杂性的来源与应对 三、大型网站的特点 四、大型网站架构目标 五、参考文献 学习前言 本节总结下架构相关的基础知识&#xff1a;概述&#xff0c;特点&#xff0c;目标&#xff0c;本质... 一、软件架构简介 所谓架构&#x…

飞凌嵌入式FET527N-C核心板现已适配Android 13

飞凌嵌入式FET527N-C核心板现已成功适配Android13&#xff0c;新系统的支持能够为用户提供更优质的使用体验。那么&#xff0c;运行Android13系统的FET527N-C核心板具有哪些突出的优势呢&#xff1f; 1、性能与兼容性提升 飞凌嵌入式FET527N-C核心板搭载了全志T527系列高性能处…

如何借助AI 来提高开发效率

前言 随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;特别是大规模语言模型&#xff08;如 GPT 系列&#xff09;的崛起&#xff0c;软件开发领域正在经历一场革命。AI 大模型不仅在代码生成方面展现出强大的能力&#xff0c;还在测试、维护和创新等多个环…

C++ 高效率整型大数运算项目优化——内置类型存储与计算

C 高效率整型大数运算项目优化——内置类型存储与计算 一、前言二、优化设计分析类的设计 三、设计实现加法减法乘法对于 lint&#xff1a;对于 iint&#xff1a; 左移与右移左移右移 除法基本除法借用内置类型计算第一种情况第二种情况其他情况区间定位二分计数内置类型求近似…

Qt教程(007):资源文件添加

文章目录 7.1 创建新的项目7.2 添加资源文件7.2 设置页面7.1 创建新的项目 选择创建项目类型 输入项目名称 勾选UI界面 7.2 添加资源文件 选中项目名称,右键,选择【Add New】 添加资源文件 选择Qt Resource File文件

利用轻易云高效集成旺店通与金蝶云星空销售出库单

重跑数据—分销旺店通销售出库单>金蝶销售出库单&#xff08;正常销售&刷单&#xff09;(ok) 在企业信息化管理中&#xff0c;数据的准确性和及时性至关重要。本文将分享一个实际案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将旺店通企业奇门的数据高效…

CAN总线协议

电气特性 高速CAN&#xff1a;电压差为0V时表示逻辑1&#xff08;隐性电平&#xff09;&#xff0c;电压差为2V时表示逻辑0&#xff08;显性电平&#xff09;&#xff0c;速率&#xff1a;125Kbps&#xff5e;1Mbps。低速CAN&#xff1a;电压差为-1.5V时表示逻辑1&#xff08;…

Nginx简易配置将内网网站ssh转发到外网

声明&#xff1a;本内容仅供交流学习使用&#xff0c;部署网站上线还需要根据有关规定申请域名以及备案。 背景 在内网的服务器有一个运行的网页&#xff0c;现使用ssh反向代理&#xff0c;将它转发到外网的服务器。 但是外网的访问ip会被ssh反向代理拦截 所以使用Nginx进行…

决策树算法

决策树算法对数据进行分类的一种算法&#xff0c;根据数据的属性进行分类&#xff0c;例如对鸢尾花进行分类&#xff0c;可以根据花瓣大小进行分类。决策树可以使用信息熵和基尼指数进行数据分类。 信息熵&#xff1a;信息熵越低&#xff0c;样本不确定性越小&#xff0c;对应…