📄 defaultneuronwithbias.java
字号:
/*** Copyright (c) 2006, Seweryn Habdank-Wojewodzki* Copyright (c) 2006, Janusz Rybarski** All rights reserved.* * Redistribution and use in source and binary forms,* with or without modification, are permitted provided* that the following conditions are met:** Redistributions of source code must retain the above* copyright notice, this list of conditions and the* following disclaimer.** Redistributions in binary form must reproduce the* above copyright notice, this list of conditions* and the following disclaimer in the documentation* and/or other materials provided with the distribution.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS* AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED* OF THE POSSIBILITY OF SUCH DAMAGE.*/package network;import activationFunction.ActivationFunctionModel;import java.util.Random;import activationFunction.*;/** * Class representing <B>neuron</B> with bias and specyfied * activation function * * @author Janusz Rybarski * e-mail: janusz.rybarski AT ae DOT krakow DOT pl * @author Seweryn Habdank-Wojewdzki * e-mail: habdank AT megapolis DOT pl * @version 1.0 2006/07/09 * @see ActivationFunctionModel */public class DefaultNeuronWithBias implements NeuronModel { /** * bias */ private double bias = 0; /** * array of the weight */ private double[] weight; /** * activation function */ private ActivationFunctionModel activationFunction; /** * Creates a new instance of DefaultNeuronWithBias with random weights value * @param weightNumber numbers of weigths * @param maxWeight maximal value of neuron weight * @param activationFunction reference to activation function */ public DefaultNeuronWithBias(int weightNumber, double[] maxWeight, ActivationFunctionModel activationFunction) { if(weightNumber == maxWeight.length){ Random rand = new Random(); weight = new double[weightNumber]; for(int i=0; i< weightNumber; i++){ weight[i] = rand.nextDouble() * maxWeight[i]; } } this.activationFunction = activationFunction; } /** * Creates a new instance of DefaultNeuronWithBias with specified weights * defined in array * @param weightArray array of weights value * @param activationFunction reference to activation function */ public DefaultNeuronWithBias(double[] weightArray,ActivationFunctionModel activationFunction){ int weightSize = weightArray.length; weight = new double[weightSize]; for(int i=0; i< weightSize; i++){ weight[i] = weightArray[i]; } this.activationFunction = activationFunction; } /** * * Returns array contains valu of the weights * @return array of the weights * */ public double[] getWeight() { return weight.clone(); } /** * * Set weigths from array as parameter * @param weight array of the weights * */ public void setWeight(double[] weight) { for (int i=0; i < weight.length; i++ ){ this.weight[i] = weight[i]; } } /** * * Return value of the neuron after activation. * @param inputVector input vector for neuron * @return return * */ public double getValue(double[] inputVector) { double value = 0; int inputSize = inputVector.length; for(int i=0; i< inputSize; i++){ value = value + inputVector[i] * weight[i]; } if( activationFunction != null) return activationFunction.getValue(value) - bias; else return value - bias; } /** * Return value of the bias * @return value of the bias */ public double getBias() { return bias; } /** * Set bias * @param bias value of the bias */ public void setBias(double bias) { this.bias = bias; } /** * Return reference to activation function * @return reference to activation function */ public ActivationFunctionModel getActivationFunction() { return activationFunction; } /** * Set activation function * @param activationFunction reference to activation function */ public void setActivationFunction(ActivationFunctionModel activationFunction) { this.activationFunction = activationFunction; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -