अध्याय 1: कृत्रिम बुद्धिमत्ता (Artificial Intelligence – AI)

AI क्या है? / What is Artificial Intelligence?

कृत्रिम बुद्धिमत्ता (Artificial Intelligence – AI) वह तकनीक है जिसके द्वारा कंप्यूटर या मशीन को इस प्रकार डिज़ाइन किया जाता है कि वह इंसानों की तरह “सोच” सके, “सीख” सके और “निर्णय” ले सके।

👉 सरल शब्दों में कहें तो:

“AI एक ऐसी प्रणाली है जो इंसानी बुद्धि की नकल करती है।”

🔍 परिभाषा / Definition:

“Artificial Intelligence is the simulation of human intelligence processes by machines, especially computer systems.”

इन प्रक्रियाओं में शामिल हैं:

  • सीखना (Learning)
  • तर्क करना (Reasoning)
  • समस्या हल करना (Problem Solving)
  • निर्णय लेना (Decision Making)
  • भाषा समझना (Natural Language Understanding)

🧠 AI की विशेषताएँ / Features of AI:

विशेषताविवरण
सीखने की क्षमताAI खुद से डेटा से सीख सकता है
निर्णय क्षमतासमस्या को समझकर निर्णय ले सकता है
स्वचालन (Automation)कार्यों को बिना इंसानी हस्तक्षेप के कर सकता है
सुधार करने की क्षमताअनुभव से अपनी गलतियाँ सुधार सकता है

🧭 AI के मुख्य क्षेत्र / Major Areas of AI:

  1. Machine Learning (ML) – डेटा से सीखना
  2. Natural Language Processing (NLP) – भाषा को समझना
  3. Computer Vision – इमेज व वीडियो को पहचानना
  4. Robotics – रोबोट का निर्माण व नियंत्रण
  5. Expert Systems – विशेषज्ञों जैसा निर्णय लेना

💡 उदाहरण / Examples of AI in Daily Life:

क्षेत्रAI का उपयोग
मोबाइलSiri, Google Assistant, Alexa
बैंकिंगफ्रॉड डिटेक्शन, क्रेडिट स्कोरिंग
स्वास्थ्यबीमारी की पहचान, मेडिकल रिपोर्ट विश्लेषण
सोशल मीडियाकंटेंट सिफारिश, फेस डिटेक्शन
ई-कॉमर्सप्रोडक्ट सिफारिश (Amazon, Flipkart)

🏗️ AI कैसे काम करता है? / How Does AI Work?

AI सिस्टम काम करते हैं:

  1. डेटा एकत्र करना (Collect Data)
  2. डेटा प्रोसेसिंग (Preprocessing)
  3. मॉडल बनाना (Model Building) – मशीन लर्निंग एल्गोरिदम के जरिए
  4. फैसला लेना (Prediction or Decision)
  5. रिस्पॉन्स देना (Provide Output)

📜 AI का इतिहास संक्षेप में / Brief History of AI:

वर्षघटना
1956“AI” शब्द पहली बार John McCarthy ने दिया
1997IBM के Deep Blue ने शतरंज चैंपियन को हराया
2011IBM Watson ने Jeopardy गेम शो जीता
2016AlphaGo ने Go चैंपियन को हराया
2020+ChatGPT, Self-driving Cars, Healthcare AI में उन्नति

🎯 निष्कर्ष / Conclusion:

AI आज केवल एक तकनीक नहीं, बल्कि एक क्रांति है जो हर क्षेत्र को प्रभावित कर रही है — शिक्षा, स्वास्थ्य, रक्षा, व्यापार आदि। इसकी क्षमता अनंत है लेकिन इसके साथ कुछ नैतिक चुनौतियाँ भी हैं।

Categories AI

What is Arduino

Arduino एक लोकप्रिय ओपन-सोर्स प्लेटफॉर्म है, जो इंटरेक्टिव इलेक्ट्रॉनिक परियोजना बनाने के लिए बनाया गया है। इसका हार्डवेयर और सॉफ्टवेयर आसान है, जिसके माध्यम से आप सेंसर, एक्चुएटर, इत्यादि लगाकर अनेक काम कर सकते हैं — जैसे एक LED जलाना या ऑनलाइन संदेश भेजना। आप Arduino IDE नामक एक साधारण वातावरण में आदेश लिखते हैं, जो Wiring और Processing पर आधारित है。

मूल रूप से इव्रिया इंटरेक्शन डिजाइन इंस्टिट्यूट ने Arduino बनाया था ताकि गैर-इंजीनियर भी आसानी से नए विचारों का प्रोटोटाइप बना सकें। धीरे-धीरे इसका विस्तार हुआ, और छात्र, कलाकार, डेवलपर, शौकीन — सभी ने इसका उपयोग किया, जिसके फलस्वरूप इसका एक बड़ा इकोसिस्टम तैयार हुआ, जहाँ लोगों ने ज्ञान, उदाहरण, और पुस्तकालय एक दूसरे साथ साझा किए हैं。

आज Arduino बोर्ड शैक्षिक कार्यक्रमों, ऑटोमेशन, कला स्थापना, IoT इत्यादि क्षेत्रों में काम आता है। इसका उपयोग भौतिक उपकरणों, इंटरेक्टिव परियोजना और IoT समाधान बनाने में किया जाता है — अधिक तकनीकी ज्ञान होने की जरूरत नहीं होती։

Arduino विशेष क्यों है?

किफ़ायती: इसका बोर्ड सस्ता है — तैयार किया हुआ बोर्ड लगभग 2000 Rs. या इससे भी कम आता है।

क्रॉस-प्लेटफॉर्म: इसका IDE Windows, Mac, और Linux पर काम करता है।

शुरुआतियों के लिए आसान: इसका सॉफ़्टवेयर इतना आसान बनाया गया है कि नए छात्र भी इसका उपयोग कर सकें, साथ ही अनुभवी डेवलपर इसका अधिक लाभ ले सकते हैं।

ओपन सोर्स: इसका सारा हार्डवेयर और सॉफ़्टवेयर खुला हुआ है, मतलब कोई भी इसका सुधार या बदलाव कर सकता है।

समुदाय समर्थन: इसका एक बड़ा समुदाय है जो पुस्तकालयें, उदाहरण, कार्यक्रम इत्यादि प्रदान करता है, जिससे नए लोगों की सहायता होती रहती है|

आज Arduino शैक्षिक बोर्ड से लेकर शक्तिशाली IoT या वियराेबल परियोजना तक — हर तरह की जरूरतें पूरी करता आया है, ताकि हर कोई, छात्र या शौकीन, नए विचारों को असलियत में बदल सके|

Evolution of neural networks

Logic Gates (AND, OR, NOT, XOR, etc.)

Foundation of computation—basic building blocks of digital circuits.

Perform simple boolean operations.

Example: AND gate outputs 1 only if both inputs are 1.

Perceptron (Single-layer Neural Network)

The simplest type of artificial neuron, inspired by biological neurons.

Can mimic logic gates using weights and bias.

Activation function: Step function (e.g., outputs 0 or 1).

Limitation: Cannot solve the XOR problem (i.e., non-linearly separable problems).

y=f(W⋅X+b)

W = weights,
X = input,
b = bias,
f = activation function.

Artificial Neural Network (ANN) (Multi-layer Perceptron – MLP)

Fixes XOR problem by introducing hidden layers.

Uses non-linear activation functions (e.g., ReLU, Sigmoid).

Multiple perceptrons stacked together.

Still struggles with deep learning tasks.

Algorithm (Training ANNs)

Introduced to update weights efficiently using gradient descent.

Error is propagated backward from output to input.

Uses partial derivatives to minimize loss.

🔹 Steps:

Forward pass: Compute output.

Loss calculation: Compare output with actual value.

Backward pass: Adjust weights using gradient descent.

Repeat until convergence.

Convolutional Neural Networks (CNNs)

Designed for image processing and computer vision tasks.

Uses convolutional layers to detect patterns like edges, textures, etc.

Pooling layers reduce dimensionality, improving efficiency.

Example applications: Image Captioning, Object Detection, Face Recognition.

🔹 Key components:

Convolutional layers (Feature extraction)

Pooling layers (Downsampling)

Fully Connected layers (Classification)

Recurrent Neural Networks (RNNs)

Designed for sequential data like text, speech, and time series.

Maintains a memory of previous inputs using loops.

Common problem: Vanishing gradient (solved by LSTM & GRU).

Example applications: Text Generation, Speech Recognition, Machine Translation.

🔹 Variants:

Vanilla RNN: Simple version, suffers from vanishing gradient.

LSTM (Long Short-Term Memory): Fixes vanishing gradient issue.

GRU (Gated Recurrent Unit): Similar to LSTM but computationally efficient.

Summary:


Logic Gates → Basis of computation.

Perceptron → Simple neuron that mimics logic gates.

ANN (MLP) → Multi-layer perceptron solves non-linear problems.

Backpropagation → Algorithm for training neural networks.

CNN → Best for images.

RNN → Best for sequential data.

Let me know if you need more details on any stage!

A simple Multi-Layer Perceptron (MLP) in PyTorch to learn the XOR function

XOR (Exclusive OR) एक प्रसिद्ध लॉजिकल फंक्शन है, जिसे मशीन लर्निंग में अक्सर यह जाँचना के लिए उपयोग किया जाता है कि कोई मॉडल non-linear समस्याएँ हल कर सकता है या नहीं। यह एक सरल लेकिन शक्तिशाली उदाहरण है, जो दर्शाता है कि केवल एक linear मॉडल पर्याप्त नहीं होता।

इस अध्याय में, हम PyTorch का उपयोग करते हुए एक Multi-Layer Perceptron (MLP) बनाएँगे, जो XOR function को सिख सके। हम हर चरण को विस्तारपूर्वक समझेंगे — डेटा तैयार करना, मॉडल बनाना, ट्रेनिंग करना और prediction करना।


XOR Function क्या है?

XOR एक binary logic function है जो true return करता है जब दो inputs में से केवल एक true होता है।

इनपुट x1इनपुट x2आउटपुट (x1 ⊕ x2)
000
011
101
110

❗ XOR एक non-linearly separable function है, जिसका अर्थ है कि आप एक simple straight line से इन inputs को classify नहीं कर सकते।

इसलिए हमें चाहिए — एक non-linear model जैसे कि MLP।


🧠 Multi-Layer Perceptron (MLP) का परिचय

MLP एक feedforward neural network है जिसमें तीन प्रमुख layers होती हैं:

  1. Input Layer – जो raw inputs को लेती है।
  2. Hidden Layer(s) – जो inputs को process करके features सीखती है।
  3. Output Layer – जो final prediction देती है।

MLP में hidden layers और non-linear activation functions की वजह से यह linear models से ज़्यादा शक्तिशाली होता है।


📐 MLP Architecture for XOR (चित्रात्मक रूप)

    Input:     x1   x2
│ │
▼ ▼
[ Hidden Layer ]
[ 4 Neurons + ReLU ]

[ Output Layer ]
[ 1 Neuron + Sigmoid ]

यह architecture हमें XOR function को सिखाने में मदद करेगा।


🛠️ PyTorch में Step-by-Step Implementation

🧾 Step 1: Dataset तैयार करना

import torch

# इनपुट और आउटपुट डेटा (XOR टेबल)
X = torch.tensor([[0,0], [0,1], [1,0], [1,1]], dtype=torch.float32)
Y = torch.tensor([[0], [1], [1], [0]], dtype=torch.float32)

🧾 Step 2: Model Class बनाना

import torch.nn as nn

class XOR_MLP(nn.Module):
def __init__(self):
super(XOR_MLP, self).__init__()
self.hidden = nn.Linear(2, 4) # 2 इनपुट → 4 hidden neurons
self.relu = nn.ReLU() # Non-linearity
self.output = nn.Linear(4, 1) # Hidden → Output
self.sigmoid = nn.Sigmoid() # 0-1 के बीच output squeeze

def forward(self, x):
x = self.hidden(x)
x = self.relu(x)
x = self.output(x)
x = self.sigmoid(x)
return x

🧾 Step 3: Model Initialization और Optimizer Setup

model = XOR_MLP()

# Loss Function और Optimizer
criterion = nn.BCELoss() # Binary Cross Entropy Loss
optimizer = torch.optim.Adam(model.parameters(), lr=0.1)

🧾 Step 4: Model Training Loop

for epoch in range(1000):
optimizer.zero_grad() # Gradients reset करो
outputs = model(X) # Forward pass
loss = criterion(outputs, Y) # Loss compute
loss.backward() # Backpropagation
optimizer.step() # Weights update

if epoch % 100 == 0:
print(f"Epoch {epoch}, Loss: {loss.item():.4f}")

🧾 Step 5: Prediction और Evaluation

with torch.no_grad():
predicted = model(X)
predicted_classes = (predicted > 0.5).float()
print("\nPrediction:")
for i in range(len(X)):
print(f"Input: {X[i].tolist()} => Predicted: {predicted_classes[i].item():.0f}")

📊 Output (उदाहरण)

Epoch 0, Loss: 0.6931
...
Epoch 900, Loss: 0.0012

Prediction:
Input: [0.0, 0.0] => Predicted: 0
Input: [0.0, 1.0] => Predicted: 1
Input: [1.0, 0.0] => Predicted: 1
Input: [1.0, 1.0] => Predicted: 0

📌 निष्कर्ष (Conclusion)

  • XOR function को सीखने के लिए एक simple linear model काम नहीं करता।
  • Hidden layer और non-linear activation function (जैसे ReLU) की मदद से MLP इस complex pattern को सिख सकता है।
  • यह example बताता है कि कैसे deep learning non-linear समस्याओं को हल करने में सक्षम होती है।

✅ अभ्यास प्रश्न (Exercises)

  1. XOR function को सिखाने के लिए hidden layer में neurons की संख्या कम या ज़्यादा करने पर क्या प्रभाव पड़ता है? एक्सपेरिमेंट करके बताइए।
  2. Sigmoid की जगह Tanh activation function का प्रयोग कीजिए। क्या परिणामों में कोई अंतर आया?
  3. अगर हम hidden layer को हटा दें तो क्या model XOR function सीख पाएगा? क्यों?

🎯 ऑब्जेक्टिव प्रश्न (MCQs)

  1. XOR function कैसा function है?
    • (a) Linearly separable
    • (b) Non-linearly separable ✅
    • (c) Linear
    • (d) Constant
  2. MLP में कौन सा activation function non-linearity लाता है?
    • (a) Linear
    • (b) ReLU ✅
    • (c) Softmax
    • (d) None
  3. PyTorch में binary classification के लिए कौन-सा loss function प्रयोग होता है?
    • (a) MSELoss
    • (b) CrossEntropyLoss
    • (c) BCELoss ✅
    • (d) NLLLoss

Categories ML

Arduino Ecosystem

Arduino प्लेटफॉर्म की शुरुआत 2005 में हुई थी, और यह आज इलेक्ट्रॉनिक्स और एम्बेडेड डिज़ाइन के क्षेत्र में सबसे योग्य और प्रमुख ब्रांडों में से एक बन गया है। Arduino के मूल स्तंभों में हार्डवेयर, सॉफ्टवेयर और प्रोग्रामिंग शामिल हैं। Arduino बोर्ड एक माइक्रोकंट्रोलर आधारित हार्डवेयर प्लेटफॉर्म है, जो विभिन्न सेंसर, मोटर्स, एलईडी और अन्य इलेक्ट्रॉनिक उपकरणों को नियंत्रित करने के लिए उपयोग किया जाता है। इस पर कोड लिखने के लिए Arduino प्रोग्रामिंग भाषा (जो Wiring पर आधारित है) और Arduino IDE (Integrated Development Environment) का उपयोग किया जाता है, जो Mac, Windows और Linux पर चलता है। कोड (स्केच) लिखने के बाद इसे USB के माध्यम से बोर्ड पर अपलोड किया जाता है। अपना खुद का प्रोजेक्ट बनाने के लिए Arduino बोर्ड (Uno, Mega, Nano, आदि), Arduino IDE सॉफ़्टवेयर, सेंसर और मॉड्यूल (जैसे Ultrasonic Sensor, IR Sensor, आदि), मोटर, एलईडी, जम्पर वायर, ब्रेडबोर्ड और पावर सप्लाई (बैटरी या USB केबल) की आवश्यकता होती है। इन सभी components के माध्यम से, Arduino का उपयोग रोबोटिक्स, IoT, होम ऑटोमेशन और कई अन्य इलेक्ट्रॉनिक्स प्रोजेक्ट्स में किया जाता है।

Arduino Board को समझते है :

Arduino Uno बोर्ड के विभिन्न महत्वपूर्ण घटकों और पिनों को दिखाया गया है। आइए एक एक कर विस्तार में जानते हैं :-

  1. Reset Button (रिसेट बटन) :
    यह बटन Arduino बोर्ड को रीसेट करने के लिए उपयोग किया जाता है, जिससे कोड का निष्पादन (Execution) फिर से शुरू हो जाता है।
  2. USB B Type (यूएसबी बी टाइप) :
    यह USB पोर्ट Arduino को कंप्यूटर से कनेक्ट करने के लिए उपयोग किया जाता है, जिससे प्रोग्रामिंग और पावर सप्लाई संभव होती है।
  3. Poly Fuse (पॉली फ्यूज़) :
    यह बोर्ड को अधिक करंट से बचाने के लिए एक सुरक्षा फ्यूज़ के रूप में कार्य करता है।
  4. AT-Mega 16U2 (एटी-मेगा 16U2) :
    यह माइक्रोकंट्रोलर USB और सीरियल कम्युनिकेशन को नियंत्रित करता है, जिससे कंप्यूटर और Arduino बोर्ड के बीच डेटा ट्रांसफर किया जाता है।
  5. Crystal Oscillator (क्रिस्टल ऑस्सीलेटर) :
    यह Arduino के माइक्रोकंट्रोलर को स्थिर घड़ी संकेत (Clock Signal) प्रदान करता है, जिससे यह सही समय पर कार्य कर सके।
  6. Voltage Regulator (वोल्टेज रेगुलेटर) :
    यह Arduino को स्थिर वोल्टेज प्रदान करता है और अधिक वोल्टेज से बचाव करता है।
  7. Comparator (कम्पेरेटर) :
    यह एक इलेक्ट्रॉनिक घटक है जो वोल्टेज की तुलना करता है और आउटपुट देता है।
  8. DC Jack (डीसी जैक) :
    यह पोर्ट Arduino को 9V या 12V की बैटरी या एडॉप्टर से पावर देने के लिए उपयोग किया जाता है।
  9. Capacitor (कैपेसिटर) :
    यह सर्किट में वोल्टेज स्टेबलाइज़ेशन और शॉर्ट सर्किट से सुरक्षा प्रदान करता है।
  10. Protection Diode (प्रोटेक्शन डायोड) :
    यह Arduino को गलत ध्रुवीयता (Reverse Polarity) से बचाने के लिए लगाया जाता है।
  11. Power Supply Section (पावर सप्लाई सेक्शन) :
    यह सेक्शन Arduino को आवश्यक पावर (5V या 3.3V) प्रदान करता है।
  12. ICMP (USB) :
    यह इन-सर्किट सीरियल प्रोग्रामर (ICSP) है, जिसका उपयोग माइक्रोकंट्रोलर को सीधा प्रोग्राम करने के लिए किया जाता है।
  13. Digital Input/Output Pins (डिजिटल इनपुट/आउटपुट पिन्स) :
    ये पिन्स डिजिटल सिग्नल को इनपुट और आउटपुट के रूप में कार्य करने के लिए उपयोग किए जाते हैं।

Arduino Uno में कुल 14 डिजिटल पिन (D0-D13) होते हैं।

  1. In Circuit Serial Programmer (SPI) (इन-सर्किट सीरियल प्रोग्रामर) :
    इसका उपयोग Arduino के माइक्रोकंट्रोलर को SPI प्रोटोकॉल के माध्यम से प्रोग्राम करने के लिए किया जाता है।
  2. AT-Mega328 Microcontroller (एटी-मेगा328 माइक्रोकंट्रोलर) :
    यह Arduino Uno का मुख्य माइक्रोकंट्रोलर है, जो सभी निर्देशों (Instructions) को प्रोसेस करता है और Arduino के सभी कार्यों को नियंत्रित करता है।
  3. Analog Input Pins (एनालॉग इनपुट पिन्स) :
    ये पिन्स एनालॉग सिग्नल को प्रोसेस करने के लिए उपयोग किए जाते हैं।

Arduino Uno में कुल 6 एनालॉग पिन (A0-A5) होते हैं।

इस तरह, Arduino के ये सभी पिन और घटक मिलकर इसे एक शक्तिशाली माइक्रोकंट्रोलर प्लेटफॉर्म बनाते हैं, जो विभिन्न प्रकार के इलेक्ट्रॉनिक्स और प्रोग्रामिंग प्रोजेक्ट्स में उपयोग किया जाता है |

Basic Operation

अधिकांश Arduino बोर्ड इस तरह डिज़ाइन किए गए हैं कि उन पर माइक्रोकंट्रोलर में एक समय में केवल एक प्रोग्राम चलाया जा सकता है। यह प्रोग्राम किसी एक विशिष्ट कार्य को करने के लिए डिज़ाइन किया जा सकता है, जैसे कि एक LED को ब्लिंक कराना। इसके अलावा, यह कई कार्यों को एक चक्र (Cycle) में लगातार निष्पादित करने के लिए भी प्रोग्राम किया जा सकता है।

जो भी प्रोग्राम माइक्रोकंट्रोलर में लोड किया जाता है, वह जैसे ही बोर्ड को पावर मिलती है, निष्पादन (Execution) शुरू कर देता है। हर प्रोग्राम में एक फ़ंक्शन होता है जिसे “loop” कहा जाता है। इस loop फ़ंक्शन के अंदर आप निम्नलिखित कार्य कर सकते हैं:

  • किसी सेंसर का डेटा पढ़ना
  • लाइट चालू करना
  • यह जांचना कि कोई विशेष स्थिति (Condition) पूरी हो रही है या नहीं
  • उपरोक्त सभी कार्य एक साथ करना।

Arduino पर प्रोग्राम की गति अत्यधिक तेज़ होती है, जब तक कि हम इसे धीमा करने के लिए कोई निर्देश न दें। प्रोग्राम की गति इस पर निर्भर करती है कि कोड कितना बड़ा है और माइक्रोकंट्रोलर को इसे Execution करने में कितना समय लगता है, लेकिन आमतौर पर यह माइक्रोसेकंड (एक सेकंड का दस लाखवां भाग) में होता है।

The basic operation of an Arduino

Circuit Basics


सर्किट में कम से कम एक सक्रिय इलेक्ट्रॉनिक घटक (Active Electronic Component) और एक प्रवाहकीय सामग्री (Conductive Material) जैसे तार (Wires)जुड़े होते हैं, जिससे विद्युत धारा (Current) प्रवाहित हो सके । जब आप Arduino के साथ काम करते हैं, तो अधिकांश मामलों में आपको अपने प्रोजेक्ट के लिए एक सर्किट बनाना होता है |

सर्किट का एक सरल उदाहरण LED सर्किट है। इसमें एक तार Arduino के एक पिन से LED तक जुड़ा होता है, और बीच में एक रेज़िस्टर (Resistor) होता है, जो LED को अत्यधिक विद्युत प्रवाह (High Current) से बचाने के लिए लगाया जाता है। इसके बाद यह तार ग्राउंड पिन (GND) से जुड़ता है। जब Arduino का पिन HIGH (उच्च) स्थिति में सेट किया जाता है, तो माइक्रोकंट्रोलर (Microcontroller) सर्किट में विद्युत धारा प्रवाहित करने की अनुमति देता है, जिससे LED जल उठती है। जब पिन को LOW (निम्न) स्थिति में सेट किया जाता है, तो विद्युत प्रवाह बंद हो जाता है और LED बुझ जाती है।