This class is used to initialize the weight matrix with the Nguyen-Widrow method.
More...
|
| NguyenWidrowInitialization (const double lowerBound=-0.5, const double upperBound=0.5) |
| Initialize the random initialization rule with the given lower bound and upper bound. More...
|
|
template<typename eT > |
void | Initialize (arma::Mat< eT > &W, const size_t rows, const size_t cols) |
| Initialize the elements of the specified weight matrix with the Nguyen-Widrow method. More...
|
|
template<typename eT > |
void | Initialize (arma::Mat< eT > &W) |
| Initialize the elements of the specified weight matrix with the Nguyen-Widrow method. More...
|
|
template<typename eT > |
void | Initialize (arma::Cube< eT > &W, const size_t rows, const size_t cols, const size_t slices) |
| Initialize the elements of the specified weight 3rd order tensor with the Nguyen-Widrow method. More...
|
|
template<typename eT > |
void | Initialize (arma::Cube< eT > &W) |
| Initialize the elements of the specified weight 3rd order tensor with the Nguyen-Widrow method. More...
|
|
This class is used to initialize the weight matrix with the Nguyen-Widrow method.
The method is defined by
\begin{eqnarray*} \gamma &\le& w_i \le \gamma \\ \beta &=& 0.7H^{\frac{1}{I}} \\ n &=& \sqrt{\sum_{i=0}{I}w_{i}^{2}} \\ w_i &=& \frac{\beta w_i}{n} \end{eqnarray*}
Where H is the number of neurons in the outgoing layer, I represents the number of neurons in the ingoing layer and gamma defines the random interval that is used to initialize the weights with a random value in a specific range.