sigmoid.java

来自「神经网络命令行工具」· Java 代码 · 共 46 行

JAVA
46
字号
package com.weighscore.neuro.plugins;

import com.weighscore.neuro.*;

/**
 * This class that defines sigmoid actiavation function
 *
 * @author Fyodor Kravchenko
 * @version 1.0
 */
public class Sigmoid extends Activation {
    public double beta = 1;

    public Sigmoid() {
    }

    public double execute(double x) {
        double y;
        double ex = Math.exp(beta*x);
        double e_x = Math.exp(beta*x*-1);
        y=(ex - e_x) / (ex + e_x);

        return y;
    }

    public double inverseExecute(double fx) {
        double x;

        if(fx>=1)
            x=Double.MAX_VALUE;
        else if(fx<=-1)
            x=Double.MAX_VALUE*-1;
        else{
            double div;
            div = (1 + fx) / (1 - fx);
            x = 0.5 * Math.log(div);
            x = x / beta;
        }
        return x;
    }

    public double differentialExecute(double fx) {
        return beta*(1-fx*fx);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?