From fd8a3c5851b9e925d3eddf09a0c7e659f92b6edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Mon, 2 Jun 2025 23:06:11 +0200 Subject: [PATCH] feat: start writing README.md - also reapply initial nnetwork.ipynb content --- README.md | 30 ++++++++- nnetwork.ipynb | 158 +++++++++++++++++++++++++++++++++++++++++++++++- res/sigmoid.png | Bin 0 -> 59158 bytes 3 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 res/sigmoid.png diff --git a/README.md b/README.md index e31a3f1..c9aaf10 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ -# NeuralNetwork -A simple python neural network. +

Game of Life

+ +

+ Learn how to build and train a neural network in Python from scratch.
+ This project goes further by teaching how a network can convert any 8-bit binary number into its corresponding decimal value. +

+ +

+ + Python + + + GitHub Repo + +

+ +## Objective + +The goal of this project is to: +- Understand how artificial neurons, layers, and neural networks work. +- Implement all components of a neural network (no external libraries). +- Train the network to map 8-bit binary inputs to decimal values (from 0 to 255). + +## Prerequis + +## Links +- [Sigmoid derivation function](res/sigmoid.png) +- [Wikipedia](https://en.wikipedia.org/wiki/Activation_function) \ No newline at end of file diff --git a/nnetwork.ipynb b/nnetwork.ipynb index 932e1e9..5963811 100644 --- a/nnetwork.ipynb +++ b/nnetwork.ipynb @@ -1,5 +1,160 @@ { - "cells": [], + "cells": [ + { + "cell_type": "markdown", + "id": "9b3f1635", + "metadata": {}, + "source": [ + "# Neural Network" + ] + }, + { + "cell_type": "markdown", + "id": "478651c8", + "metadata": {}, + "source": [ + "## What is a *Neuron* (artifical)\n", + "\n", + "First of all, **I'm not an Neurologist so i might say some nonsense, i only researched online**. \n", + "\n", + "An artifical *neuron* works similary to a biological *neuron* in the way it process information. In a brain, like yours, a *neuron* receives signals from other *neurons*, processes them and sends an *output*.\n", + "\n", + "An artifical *neuron* takes an **input** (such as numbers), applies updated values called **weights** to each *inputs*, adds a constant called **bias**, apply a specific function to normalize the value called **Activation function**, and then `returns` the *output* of the Activation function (such as: **sigmoid**, **ReLU**, etc...).\n", + "\n", + "## Vocabulary / key components\n", + "\n", + "1. **inputs**: inputs are usually a unique list of numbers, they are simply values sent to a neuron, which then process them.\n", + "\n", + "2. **weights**: weights are also a list of numbers that has the same size of inputs. The weight determines how important de the number of the input is. If it's high, the input matters. Else, if the weight is low, the number matters less.\n", + "\n", + "3. **bias**: the bias are constant that are added after all the inputs are multiplied by the weight. it helps shift the resultat up or down.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d9d6072", + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "\n", + "# Neuron 1\n", + "class Neuron:\n", + " def __init__(self, input_size: int) -> None:\n", + " self.input_size = input_size\n", + " self.weight = [random.uniform(0, 1) for _ in range(self.input_size)]\n", + " self.bias = random.uniform(0, 1)" + ] + }, + { + "cell_type": "markdown", + "id": "1aff9ee6", + "metadata": {}, + "source": [ + "# 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ca39a42", + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import random\n", + "\n", + "# Neuron 2\n", + "class Neuron:\n", + " def __init__(self, input_size: int) -> None:\n", + " self.input_size = input_size\n", + " self.weight = [random.uniform(0, 1) for _ in range(self.input_size)]\n", + " self.bias = random.uniform(0, 1)\n", + "\n", + " def sigmoid(x: float) -> float:\n", + " return 1/(1 + math.exp(-x))\n", + " \n", + " def forward(self, inputs: list) -> float:\n", + " assert len(inputs) == self.input_size, \"error: misnumber inputs number\"\n", + " total = sum(self.weight[i] * inputs[i] for i in range(self.isize)) + self.bias\n", + " return self.sigmoid(total)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6709c5c7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Neuron output : 0.9001175686881125\n" + ] + } + ], + "source": [ + "# 8 for 8 bits (1 Byte)\n", + "nbits: int = 8\n", + "neuron = Neuron(nbits)\n", + "inputs: list = [1, 0, 1, 0, 0, 1, 1, 0] \n", + "\n", + "output = neuron.forward(inputs)\n", + "print(\"Neuron output :\", output)" + ] + }, + { + "cell_type": "markdown", + "id": "aa57ae8e", + "metadata": {}, + "source": [ + "# 3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6de25ea", + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import random\n", + "\n", + "# Neuron 3\n", + "class Neuron:\n", + " def __init__(self, isize: int) -> None:\n", + " self.isize = isize\n", + " self.weight = [random.uniform(0, 1) for _ in range(self.isize)]\n", + " self.bias = random.uniform(0, 1)\n", + "\n", + " def forward(self, inputs: list) -> float:\n", + " assert len(inputs) == self.isize, \"error: incorrect inputs number\"\n", + " total = sum(self.weight[i] * inputs[i] for i in range(self.isize)) + self.bias\n", + " return self.sigmoid(total)\n", + " \n", + " def sigmoid(x: float) -> float:\n", + " return 1/(1 + math.exp(-x))\n", + "\n", + " # target needs to be between 0 and 1\n", + " def train(self, inputs: list, target: float, learning_rate: float = 0.1):\n", + " z = sum(self.weight[i] * inputs[i] for i in range(self.isize)) + self.bias\n", + " output = self.sigmoid(z)\n", + "\n", + " error = output - target\n", + " d_sigmoid = output * (1 - output)\n", + " dz = error * d_sigmoid\n", + "\n", + " for i in range(self.isize):\n", + " self.weight[i] -= learning_rate * dz * inputs[i]\n", + "\n", + " self.bias -= learning_rate * dz\n" + ] + } + ], "metadata": { "kernelspec": { "display_name": ".venv", @@ -22,3 +177,4 @@ "nbformat": 4, "nbformat_minor": 5 } + diff --git a/res/sigmoid.png b/res/sigmoid.png new file mode 100644 index 0000000000000000000000000000000000000000..642fd19a27af411bbb7edf2b9d762ae8e5609169 GIT binary patch literal 59158 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