35#include <boost/array.hpp>
80 Unit( std::size_t input_dim,
81 std::size_t output_dim );
90 const double & max_weight,
91 const double & initial_sigma );
100 const std::size_t INPUT = input.size();
107 for ( std::size_t i = 0; i < INPUT; ++i )
109 d2 += std::pow(
center_[i] - input[i], 2 );
121 return std::sqrt(
dist2( input ) );
136 const std::size_t M_input_dim;
137 const std::size_t M_output_dim;
143 double M_initial_sigma;
145 std::vector< Unit > M_units;
158 const std::size_t output_dim );
166 const double & alpha )
178 const double & max_weight )
180 M_min_weight = min_weight;
181 M_max_weight = max_weight;
189 M_initial_sigma = initial_sigma;
230 bool read( std::istream & is );
237 std::ostream &
print( std::ostream & os )
const;
Radial Basis Function Network.
Definition: rbf.h:49
std::ostream & print(std::ostream &os) const
write network structure to an output stream
std::ostream & printUnits(std::ostream &os) const
write detailed unit information
void setLearningRate(const double &eta, const double &alpha)
set learning rate
Definition: rbf.h:165
void setInitialSigma(const double &initial_sigma)
set basis function's initial sigma
Definition: rbf.h:187
RBFNetwork(const std::size_t input_dim, const std::size_t output_dim)
all weight is initialized by 0. default sigma = 100.0
void propagate(const input_vector &input, output_vector &output) const
calculate output value
void setWeightRange(const double &min_weight, const double &max_weight)
set connection weight range
Definition: rbf.h:177
void addCenter(const input_vector ¢er)
add new center point
double train(const input_vector &input, const output_vector &teacher)
train the connection weight
std::vector< double > output_vector
typedef of the output value container
Definition: rbf.h:55
std::vector< double > input_vector
typedef of the input value container
Definition: rbf.h:53
const std::vector< Unit > & units() const
get the unit container
Definition: rbf.h:197
bool read(std::istream &is)
read network structure from an input stream
radial basis function unit
Definition: rbf.h:61
input_vector center_
center point of this unit
Definition: rbf.h:62
void randomize(const double &min_weight, const double &max_weight, const double &initial_sigma)
set unit parameter randomly
double sigma_
function parameter. this value must be >0
Definition: rbf.h:67
output_vector weights_
weights to output
Definition: rbf.h:64
double dist(const input_vector &input) const
calculate distance from the input vector
Definition: rbf.h:119
Unit(std::size_t input_dim, std::size_t output_dim)
all weight is initialized by 0. default sigma = 100.0
double calc(const input_vector &input) const
calculate output value for the input
Definition: rbf.h:128
output_vector delta_weights_
delta of weights
Definition: rbf.h:65
double dist2(const input_vector &input) const
calculate distance from the input vector
Definition: rbf.h:98
double delta_sigma_
delta of sigma
Definition: rbf.h:68