This project implements a basic artificial neuron component, a fundamental building block of artificial neural networks. The component provides a simple and flexible way to model neurons with customizable weights, bias, and activation functions.
- Weighted Sum and Bias: Calculates the weighted sum of input values and adds a bias term.
- Activation Function: Applies an activation function to the weighted sum to produce the neuron's output.
- Weight Updates: Supports updating weights based on a learning rate and error signal.
Using Eclipse:
-
Download the latest release: Go to the Releases page of the repository and download the latest ZIP file.
-
Import the project into Eclipse:
- Open Eclipse and go to File > Import...
- Select General > Existing Projects into Workspace and click Next.
- Click Browse next to the Select root directory field and choose the downloaded ZIP file.
- Make sure the project is checked and click Finish.
-
Run the demo:
- Open the
SimpleArtificialNeuronDemo.java
file in thesrc
folder. - Right-click anywhere in the file and select Run As > Java Application.
- Open the
See the SimpleArtificialNeuronDemo.java
file in the src
folder for an example of how to use the this component.
- Multiple Activation Functions: Currently, the component only supports the sigmoid activation function. In the future, it would be beneficial to allow users to choose from a variety of activation functions, such as ReLU, tanh, Leaky ReLU, and others. This could be achieved by:
- Creating an
ActivationFunction
interface with a commonactivate
method. - Implementing various activation functions as concrete classes that implement the interface.
- Allowing the
SimpleArtificialNeuron
to accept anActivationFunction
object and use itsactivate
method.
- Creating an
- Multi-Layer Networks: Extend the component to support the creation of multi-layer neural networks, allowing for more complex and powerful models.
- Visualization: Develop visualization tools to display the neuron's structure, weights, and activation values.
This project is licensed under the MIT License.