Artificial Intelligence TechC++C++11C++14C++17Learn C++

What You Need To Know About Sigmoid Functions In Neural Nets

Which activation function are the most popular? What is Logistic Function? What is difference between Logic Function and Sigmoid Function? How can I use these functions in my C++ app? Briefly, a Sigmoid Function is one of the most popular activation functions that are used in AI Technologies. A Sigmoid Function is a simple type of Logistic Function aka Logistic Curve. Let’s recap what an activation function is and explain these terms.

What is an activation function in an artificial neural network (ANN)?

An Activation Function ( phi() ) also called a transfer function, or threshold function determines the activation value ( a = phi(sum) ) from a given value (sum) from the Net Input Function . Net Input Function, here the sum is a sum of signals in their weights, and activation function is a new value of this sum with a given function or conditions. In another term. The activation function is a way to transfer the sum of all weighted signals to a new activation value of that signal. There are different activation functions, mostly Linear (Identity), bipolar and logistic (sigmoid) functions are used. The activation function and its types are explained well here.

In C++ (in general in most Programming Languages) you can create your activation function. Note that sum is the result of Net Input Function which calculates the sum of all weighted signals. We will use some as a result of the input function. Here activation value of an artificial neuron (output value) can be written by the activation function as below,

By using this sum Net Input Function Value and phi() activation functions, let’s see some of activation functions in C++; Now Let’s see how we can use Binary Step Function as in this example formula,

 What is a Logistic Function (Logistic Curve) ?

A Logistic function or Logistic Curve is a common S-shaped curve (sigmoid curve) with equation below,

Here,
L is maximum value of curve,
x0 is the value of curves mid point,
k the logistic growth rate or steepness of the curve

In C or C++ programming language, Logistic Function function can be written as below,

If L, k and x0 are constant as above, they can be directly included in the function as in this example (note that values may vary)

What is a Standard Logistic Function (Sigmoid Function)?

The most used Logistic Function is a Standard Logistic Function (Sigmoid Function), where L and k is 1 and x0=0. Thus, our function can be written one of these terms as below,

Note that here division costs more CPU usage than a multiplication, as ın function given above we can use the version with tanh() as below,

As you see, we have only multiplication and addition with tanh() function here. If the network’s sum values are in a range i.e. between (0-10) , to achieve faster approximate results arrayed results can be used. There may be y array with 10000 members and for example y[1001] can hold pre-calculated value for phi(1.0001). This will make your neural network faster but also may cause more errors or hard to achieve desired epoch numbers. It should be tested with the one of the normal sigmoid function versions as above.

An Example of a Sigmoid Function (Standard Logistic Function)

Logistic functions are generally used in ANN applications to introduce nonlinearity in a development model, or it is used to clamp signals to within a specified interval. ANN element computes a linear combination of its input signals and applies a bounded logistic function as the activation function as an output (activation value). This can be defined as a smooth version of the classical threshold neuron. A most common choice for the activation functions, used to clip for large magnitudes to keep the response of the neural network bounded.

which is a logistic function. There is more information about Logistic Functions in Wikipedia.


Are you ready to try some of this for yourself? Download a free trial of C++ Builder today!

close

Oh hi there 👋
It’s nice to meet you.

Sign up to receive awesome C++ content in your inbox, every day.

We don’t spam! Read our privacy policy for more info.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial

Free C++Builder Community Edition

About author

33+ years of coding with more than 30+ programming languages, mostly C++ on Windows, Android, Mac-OS, iOS, Linux and some other operating systems. Dr. Yilmaz Yoru was born in 1974, Eskisehir-Turkey. He graduated from the department of Mechanical Engineering of Eskisehir Osmangazi University in 1997. One year later he started to work in the same university as an assistant. He received his MSc and PhD degrees from the same department of the same university. He has married and he is a father of a son. Some of his interests are Programming, Thermodynamics, Fluid Mechanics and Artificial Intelligence. He also likes the graphical 2D & 3D design and high-end innovations.
Related posts
C++Learn C++

How To Make Your C++ Compiler Fly Much Faster

C++C++11C++14C++17Introduction to C++Learn C++

This Is How To Join Two Wide Strings In Modern C++ Software

C++C++11C++14C++17Learn C++

How To Use The All-Powerful swscanf function In Your C++ App

C++ComponentsLanguage FeatureLearn C++

How To Use A Sharpen Effect in C+ Software On Windows?