This notebook contains descriptions of several activation functions.
Necessary packages
require(ggplot2)
Loading required package: ggplot2
Identity Function
f <- function(x) {x}
ggplot(data.frame(x=c(-4, 4)), mapping=aes(x=x)) +
geom_hline(yintercept=0, color='red') +
geom_vline(xintercept=0, color='red') +
stat_function(fun=f, colour = "dodgerblue3") +
ggtitle('Identity') +
scale_x_continuous(name='x') +
scale_y_continuous(name='f(x)') +
theme(plot.title = element_text(hjust = 0.5))

Let’s create a reusable function for plotting the activation functions going forward:
plot_activation_function <- function(f, title, range){
ggplot(data.frame(x=range), mapping=aes(x=x)) +
geom_hline(yintercept=0, color='red', alpha=1/4) +
geom_vline(xintercept=0, color='red', alpha=1/4) +
stat_function(fun=f, colour = "dodgerblue3") +
ggtitle(title) +
scale_x_continuous(name='x') +
scale_y_continuous(name='f(x)') +
theme(plot.title = element_text(hjust = 0.5))
}
Binary Step Function
f <- function(x){
ifelse(x >= 0, 1, 0)
}
plot_activation_function(f, 'Binary step', c(-4,4))

Logistic Function
f <- function(x){1 / (1 + exp(-x))}
plot_activation_function(f, 'Logistic', c(-4,4))

Tan H Function
tanh_func <- function(x){tanh(x)}
plot_activation_function(tanh_func, 'TanH', c(-4,4))

Arc Tan Function
arc_tan_func <- function(x){atan(x)}
plot_activation_function(arc_tan_func, 'ArcTan', c(-4,4))

Soft Sign Function
soft_sign_func <- function(x){ x / (1 + abs(x)) }
plot_activation_function(soft_sign_func, 'Softsign', c(-4,4))

Rectified Linear Unit Function
rec_lu_func <- function(x){ ifelse(x < 0 , 0, x )}
plot_activation_function(rec_lu_func, 'RecLU', c(-4,4))

Leaky Rectified Linear Unit Function
leaky_rec_lu_func <- function(x){ ifelse(x < 0 , 0.01 *x , x )}
plot_activation_function(leaky_rec_lu_func, 'Leaky RecLU', c(-8,8))

Soft Plus Function
soft_plus_func <- function(x){ log(1 + exp(x))}
plot_activation_function(soft_plus_func, 'SoftPlus', c(-8,8))

Bent Identity Function
bent_identity_func <- function(x){ (sqrt(x^2 + 1) - 1)/2 + x }
plot_activation_function(bent_identity_func, 'Bent Identity', c(-8,8))

Sinusoid Function
plot_activation_function(sin, 'sin(x)', c(-8,8))

Sinc Function
sinc_function<- function(x){ifelse(x == 0, 1, sin(x) / x)}
plot_activation_function(sinc_function, 'Sinc', c(-8,8))

Gaussian Function
gaussian_function<- function(x){exp(-x^2)}
plot_activation_function(gaussian_function, 'Gaussian', c(-4,4))

LS0tDQp0aXRsZTogIkFjdGl2YXRpb24gRnVuY3Rpb25zIg0KYXV0aG9yOiAiU2hhaWxlc2ggS3VtYXIiDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOg0KICAgIHRvYzogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KLS0tDQoNClRoaXMgbm90ZWJvb2sgY29udGFpbnMgZGVzY3JpcHRpb25zIG9mIHNldmVyYWwgYWN0aXZhdGlvbiBmdW5jdGlvbnMuDQoNCg0KTmVjZXNzYXJ5IHBhY2thZ2VzDQpgYGB7cn0NCnJlcXVpcmUoZ2dwbG90MikNCmBgYA0KDQojIElkZW50aXR5IEZ1bmN0aW9uDQoNCmBgYHtyfQ0KZiA8LSBmdW5jdGlvbih4KSB7eH0NCmdncGxvdChkYXRhLmZyYW1lKHg9YygtNCwgNCkpLCBtYXBwaW5nPWFlcyh4PXgpKSArIA0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9MCwgY29sb3I9J3JlZCcpICsNCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTAsIGNvbG9yPSdyZWQnKSArDQogIHN0YXRfZnVuY3Rpb24oZnVuPWYsIGNvbG91ciA9ICJkb2RnZXJibHVlMyIpICsNCiAgZ2d0aXRsZSgnSWRlbnRpdHknKSArDQogIHNjYWxlX3hfY29udGludW91cyhuYW1lPSd4JykgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobmFtZT0nZih4KScpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQoNCmBgYA0KDQpMZXQncyBjcmVhdGUgYSByZXVzYWJsZSBmdW5jdGlvbiBmb3IgcGxvdHRpbmcgdGhlIGFjdGl2YXRpb24gZnVuY3Rpb25zIGdvaW5nDQpmb3J3YXJkOg0KYGBge3J9DQpwbG90X2FjdGl2YXRpb25fZnVuY3Rpb24gPC0gZnVuY3Rpb24oZiwgdGl0bGUsIHJhbmdlKXsNCiAgc3RhcnQgPC0gcmFuZ2VbMV0NCiAgZW5kIDwtIHJhbmdlWzJdDQogIGdncGxvdChkYXRhLmZyYW1lKHg9cmFuZ2UpLCBtYXBwaW5nPWFlcyh4PXgpKSArIA0KICAgIGdlb21faGxpbmUoeWludGVyY2VwdD0wLCBjb2xvcj0ncmVkJywgYWxwaGE9MS80KSArDQogICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTAsIGNvbG9yPSdyZWQnLCBhbHBoYT0xLzQpICsNCiAgICBzdGF0X2Z1bmN0aW9uKGZ1bj1mLCBjb2xvdXIgPSAiZG9kZ2VyYmx1ZTMiKSArDQogICAgZ2d0aXRsZSh0aXRsZSkgKw0KICAgIHNjYWxlX3hfY29udGludW91cyhuYW1lPSd4JykgKw0KICAgIHNjYWxlX3lfY29udGludW91cyhuYW1lPSdmKHgpJykgKw0KICAgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KfQ0KYGBgDQoNCiMgQmluYXJ5IFN0ZXAgRnVuY3Rpb24NCmBgYHtyfQ0KZiA8LSBmdW5jdGlvbih4KXsNCiAgaWZlbHNlKHggPj0gMCwgMSwgMCkNCn0NCnBsb3RfYWN0aXZhdGlvbl9mdW5jdGlvbihmLCAnQmluYXJ5IHN0ZXAnLCBjKC00LDQpKQ0KYGBgDQoNCg0KIyBMb2dpc3RpYyBGdW5jdGlvbg0KYGBge3J9DQpmIDwtIGZ1bmN0aW9uKHgpezEgLyAoMSArIGV4cCgteCkpfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKGYsICdMb2dpc3RpYycsIGMoLTQsNCkpDQpgYGANCg0KIyBUYW4gSCBGdW5jdGlvbg0KDQpgYGB7cn0NCnRhbmhfZnVuYyA8LSBmdW5jdGlvbih4KXt0YW5oKHgpfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKHRhbmhfZnVuYywgJ1RhbkgnLCBjKC00LDQpKQ0KYGBgDQoNCiMgQXJjIFRhbiBGdW5jdGlvbg0KDQpgYGB7cn0NCmFyY190YW5fZnVuYyA8LSBmdW5jdGlvbih4KXthdGFuKHgpfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKGFyY190YW5fZnVuYywgJ0FyY1RhbicsIGMoLTQsNCkpDQpgYGANCg0KIyBTb2Z0IFNpZ24gRnVuY3Rpb24NCmBgYHtyfQ0Kc29mdF9zaWduX2Z1bmMgPC0gZnVuY3Rpb24oeCl7IHggLyAoMSArIGFicyh4KSkgIH0NCnBsb3RfYWN0aXZhdGlvbl9mdW5jdGlvbihzb2Z0X3NpZ25fZnVuYywgJ1NvZnRzaWduJywgYygtNCw0KSkNCmBgYA0KDQoNCiMgUmVjdGlmaWVkIExpbmVhciBVbml0IEZ1bmN0aW9uDQpgYGB7cn0NCnJlY19sdV9mdW5jIDwtIGZ1bmN0aW9uKHgpeyBpZmVsc2UoeCA8IDAgLCAwLCB4ICl9DQpwbG90X2FjdGl2YXRpb25fZnVuY3Rpb24ocmVjX2x1X2Z1bmMsICdSZWNMVScsIGMoLTQsNCkpDQpgYGANCg0KIyBMZWFreSBSZWN0aWZpZWQgTGluZWFyIFVuaXQgRnVuY3Rpb24NCmBgYHtyfQ0KbGVha3lfcmVjX2x1X2Z1bmMgPC0gZnVuY3Rpb24oeCl7IGlmZWxzZSh4IDwgMCAsIDAuMDEgKnggLCB4ICl9DQpwbG90X2FjdGl2YXRpb25fZnVuY3Rpb24obGVha3lfcmVjX2x1X2Z1bmMsICdMZWFreSBSZWNMVScsIGMoLTgsOCkpDQpgYGANCg0KIyBTb2Z0IFBsdXMgRnVuY3Rpb24NCmBgYHtyfQ0Kc29mdF9wbHVzX2Z1bmMgPC0gZnVuY3Rpb24oeCl7IGxvZygxICsgZXhwKHgpKX0NCnBsb3RfYWN0aXZhdGlvbl9mdW5jdGlvbihzb2Z0X3BsdXNfZnVuYywgJ1NvZnRQbHVzJywgYygtOCw4KSkNCmBgYA0KDQojIEJlbnQgSWRlbnRpdHkgRnVuY3Rpb24NCmBgYHtyfQ0KYmVudF9pZGVudGl0eV9mdW5jIDwtIGZ1bmN0aW9uKHgpeyAgKHNxcnQoeF4yICsgMSkgLSAxKS8yICsgeCAgfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKGJlbnRfaWRlbnRpdHlfZnVuYywgJ0JlbnQgSWRlbnRpdHknLCBjKC04LDgpKQ0KYGBgDQoNCiMgU2ludXNvaWQgRnVuY3Rpb24NCmBgYHtyfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKHNpbiwgJ3Npbih4KScsIGMoLTgsOCkpDQpgYGANCg0KIyBTaW5jIEZ1bmN0aW9uDQpgYGB7cn0NCnNpbmNfZnVuY3Rpb248LSBmdW5jdGlvbih4KXtpZmVsc2UoeCA9PSAwLCAxLCBzaW4oeCkgLyB4KX0NCnBsb3RfYWN0aXZhdGlvbl9mdW5jdGlvbihzaW5jX2Z1bmN0aW9uLCAnU2luYycsIGMoLTgsOCkpDQpgYGANCg0KDQojIEdhdXNzaWFuIEZ1bmN0aW9uDQpgYGB7cn0NCmdhdXNzaWFuX2Z1bmN0aW9uPC0gZnVuY3Rpb24oeCl7ZXhwKC14XjIpfQ0KcGxvdF9hY3RpdmF0aW9uX2Z1bmN0aW9uKGdhdXNzaWFuX2Z1bmN0aW9uLCAnR2F1c3NpYW4nLCBjKC00LDQpKQ0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=