cover photo

BLOG · 26/10/2024

Understanding Nueral Networks

Learn the basics of ANNs and CNNs, their math, and Python implementations.

Monika D
Monika D
OP
Understanding Nueral Networks
This Article is yet to be approved by a Coordinator.

Introduction to Neural Networks

Neural Networks are a key component of artificial intelligence and machine learning. They are designed to recognize patterns and make decisions based on input data. Inspired by the human brain, these networks consist of layers of interconnected nodes (or neurons) that process information.

What Are Neural Networks?

At their core, neural networks consist of interconnected nodes called neurons. These neurons are organized in layers:

  • Input Layer: The first layer that receives the input data.
  • Hidden Layers: Intermediate layers where processing happens. There can be one or many hidden layers.
  • Output Layer: The final layer that produces the output.

How Do They Work?

  • Data Input: Data is fed into the input layer.
  • Weighted Sum: Each neuron calculates a weighted sum of its inputs, meaning it multiplies each input by a weight (importance) and adds them up.
  • Activation Function: This weighted sum is passed through an activation function, which decides whether the neuron should "fire" (activate) or not. A common activation function is the sigmoid function, which squashes the output between 0 and 1.

Types of Neural Networks

1.Artificial Neural Networks (ANN):

  • The simplest form of a neural network, consisting of an input layer, one or more hidden layers, and an output layer.
  • Mathematical Implication: Each neuron calculates a weighted sum of its inputs and applies an activation function. The most common activation function is the sigmoid function, defined as: [ \sigma(x) = \frac{1}{1 + e^{-x}} ]
  • Implementation in Python:
    import numpy as np
    
    def sigmoid(x):
        return 1 / (1 + np.exp(-x))
    
    # Example of using sigmoid function
    inputs = np.array([0.5, 0.1])
    weights = np.array([0.4, 0.6])
    bias = 0.2
    weighted_sum = np.dot(inputs, weights) + bias
    output = sigmoid(weighted_sum)
    print(output)
    

2.Convolutional Neural Networks (CNN):

  • Primarily used for image processing tasks. CNNs use convolutional layers to automatically extract features from images.
  • Mathematical Implication: The convolution operation involves sliding a filter over the input image to produce a feature map. The mathematical representation is: [ (f * g)(i, j) = \sum_m \sum_n f(m, n)g(i - m, j - n) ]
  • Implementation in Python with TensorFlow:
    import tensorflow as tf
    
    model = tf.keras.models.Sequential([
        tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
        tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dense(128, activation='relu'),
        tf.keras.layers.Dense(10, activation='softmax')
    ])
    
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
    

Conclusion

Neural networks, particularly ANNs and CNNs, form the backbone of many AI applications today. Understanding their structure and mathematical foundations is essential for anyone interested in exploring the field of machine learning.


UVCE,
K. R Circle,
Bengaluru 01