Skip to content
Snippets Groups Projects
NeuronLogistic.cpp 1.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • //
    // Created by fluffymoo on 11.6.18.
    //
    
    
    #include "NeuronLogistic.h"
    
    
    NeuronLogistic::NeuronLogistic(double a, double b) {
    
        this->activation_function_parameters = new double[2];
    
        this->activation_function_parameters[0] = a;
        this->activation_function_parameters[1] = b;
    }
    
    
    void NeuronLogistic::activate( ) {
    
        double a = this->activation_function_parameters[0];
        double b = this->activation_function_parameters[1];
        double x = this->potential;
    
    
        double ex = std::pow(E, a - x);
        this->state = std::pow(1.0 + ex, -b);
    
    double NeuronLogistic::activation_function_get_partial_derivative(int param_idx ) {
    
    
        double a = this->activation_function_parameters[0];
        double b = this->activation_function_parameters[1];
        double x = this->potential;
    
        if(param_idx == 0){
    
            double ex = std::pow(E, a - x);
    
            double exa= -std::pow(ex + 1.0, -b);
    
    
            return exa * std::log(ex + 1.0);
        }
    
            double ex = std::pow(E, a - x);
            double ex2 = std::pow(ex + 1.0, -b - 1.0);
    
    double NeuronLogistic::activation_function_get_derivative( ) {
    
    
        double a = this->activation_function_parameters[0];
        double b = this->activation_function_parameters[1];
        double x = this->potential;
    
    
        double ex = std::pow(E, a - x);
        double ex2 = std::pow(ex + 1.0, -b - 1.0);