欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > C++builder中的人工智能(11):双曲正切激活函数(ANN函数)?

C++builder中的人工智能(11):双曲正切激活函数(ANN函数)?

2025/3/16 12:15:04 来源:https://blog.csdn.net/caridle/article/details/143636287  浏览:    关键词:C++builder中的人工智能(11):双曲正切激活函数(ANN函数)?

在这篇文章中,我们将探讨双曲正切函数(tanh)是什么,以及如何在C++中使用这个函数。让我们来回答这些问题。

在AI中激活函数意味着什么?

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

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

通过使用这个sum净输入函数值和phi()激活函数,让我们看看C++中的一些激活函数。

什么是双曲正切函数或tanh()?

双曲正切是一个三角函数tanh(),如下所示,

双曲函数出现在双曲几何中的角度和距离的计算中,结果范围在-1到1之间。它们也出现在许多线性微分方程、三次方程和拉普拉斯方程在直角坐标系中的解中。拉普拉斯方程在许多物理领域中都很重要,包括电磁理论、热传递、流体动力学和特殊相对论。双曲函数有独特的解到微分方程f' = 1 - f^2, with f(0) = 0。

除了所有这些,双曲正切函数也可以作为一个激活函数,如下所示,

double phi(double sum) {return(std::tanh(sum)); // 双曲正切函数
}

让我们在一个简单的ANN示例中使用这个函数。

有没有一个简单的ANN C++示例,使用双曲正切函数?

这里是一个简单的ANN示例,使用C++编程语言中的双曲正切函数

#include <iostream>
#define NN 2   // 神经元数量class Tneuron { // 神经元类
public:float a;       // 每个神经元的活动float w[NN+1]; // 神经元之间连接的权重Tneuron() {a = 0;for (int i = 0; i <= NN; i++) w[i] = -1;  // 如果权重是负数,则表示没有连接}// 定义输出神经元的激活函数(或阈值)double activation_function(double sum) {return(std::tanh(sum)); // 双曲正切函数}
};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].activation_function(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;
}

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

这是双曲正切函数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词