Deep Learning Algorithm Implementations 1.0.0
C++ implementations of fundamental deep learning algorithms
Loading...
Searching...
No Matches
functions.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4#include <vector>
5#include "utils/matrix.hpp"
6
14namespace dl::activation {
15 using utils::MatrixD;
16
27 public:
31 virtual ~ActivationFunction() = default;
32
38 };
39
52 class ReLU : public ActivationFunction {
53 public:
59 double forward(double x);
60
66 double backward(double x);
67 };
68
81 class Sigmoid : public ActivationFunction {
82 public:
88 double forward(double x);
89
95 double backward(double x);
96 };
97
110 class Tanh : public ActivationFunction {
111 public:
117 double forward(double x);
118
124 double backward(double x);
125 };
126
141 public:
147 MatrixD forward(const MatrixD &x);
148
154 MatrixD backward(const MatrixD &x);
155 };
156
171 public:
176 LeakyReLU(double alpha = 0.01);
177
183 double forward(double x);
184
190 double backward(double x);
191
192 private:
196 double alpha_;
197 };
198} // namespace dl::activation
Abstract base class for activation functions.
Definition functions.hpp:26
virtual ~ActivationFunction()=default
Virtual destructor for proper cleanup.
Leaky Rectified Linear Unit (Leaky ReLU) activation function.
double backward(double x)
Compute Leaky ReLU derivative.
Definition functions.cpp:73
double forward(double x)
Compute Leaky ReLU forward pass.
Definition functions.cpp:67
Rectified Linear Unit (ReLU) activation function.
Definition functions.hpp:52
double forward(double x)
Compute ReLU forward pass.
Definition functions.cpp:7
double backward(double x)
Compute ReLU derivative.
Definition functions.cpp:13
Sigmoid activation function.
Definition functions.hpp:81
double forward(double x)
Compute sigmoid forward pass.
Definition functions.cpp:20
double backward(double x)
Compute sigmoid derivative.
Definition functions.cpp:26
Softmax activation function.
MatrixD backward(const MatrixD &x)
Compute softmax Jacobian matrix.
Definition functions.cpp:55
MatrixD forward(const MatrixD &x)
Compute softmax forward pass.
Definition functions.cpp:48
Hyperbolic tangent (Tanh) activation function.
double backward(double x)
Compute tanh derivative.
Definition functions.cpp:40
double forward(double x)
Compute tanh forward pass.
Definition functions.cpp:34
Matrix utility class for deep learning operations.