AWS AI/ML මූලිකාංග | Supervised, Unsupervised, Reinforcement Learning | Sinhala Guide

AWS AI/ML මූලිකාංග | Supervised, Unsupervised, Reinforcement Learning | Sinhala Guide

ආයුබෝවන්! ඩිජිටල් ලෝකය දිනෙන් දින වෙනස් වෙනවා වගේම, Artificial Intelligence (AI) සහ Machine Learning (ML) කියන දේවල් දැන් අපේ ජීවිතේට සහ ව්‍යාපාර වලට නැතුවම බැරි අංගයක් බවට පත් වෙලා. විශේෂයෙන්ම, Cloud Computing එක්ක මේක තවත් වේගවත් වෙලා තියෙනවා. මේ ටියුටෝරියල් එකෙන් අපි බලමු, AI/ML කියන්නේ මොනවද, ඒක කොහොමද වැඩ කරන්නේ, ඒ වගේම Amazon Web Services (AWS) හරහා අපිට මේවා කොහොමද ප්‍රයෝජනයට ගන්න පුළුවන් කියලා.

ඔබ Software Engineer කෙනෙක්ද, Data Scientist කෙනෙක්ද, නැත්නම් Tech industry එකට අලුතින් එන කෙනෙක්ද, මේ මාර්ගෝපදේශය AI/ML වල මූලික දැනුම ලබාගන්න ඔබට ගොඩක් වැදගත් වෙයි. අදම මේ අලුත්ම තාක්ෂණයන් ගැන ඉගෙනගෙන, ඔබේ ඩිජිටල් ගමන සාර්ථක කරගන්න අපිත් එක්ක එකතු වෙන්න!

AI/ML කියන්නේ මොනවද? (What is AI/ML?)

Artificial Intelligence (AI) - කෘතිම බුද්ධිය

සරලවම කිව්වොත්, AI කියන්නේ මිනිස් මොළයේ තීරණ ගැනීමේ හැකියාව, ඉගෙනීමේ හැකියාව, ප්‍රශ්න විසඳීමේ හැකියාව සහ අවට පරිසරය තේරුම් ගැනීමේ හැකියාව පරිගණකයකට හෝ යන්ත්‍රයකට ලබා දීමයි. මේකෙදි අපේ අරමුණ, යන්ත්‍රයකට මිනිසෙකුට වගේ හිතන්න, තේරුම් ගන්න, සහ ක්‍රියා කරන්න පුළුවන් තත්වයට පත් කරන එක.

  • උදාහරණ: Self-driving cars (ස්වයංක්‍රීයව ධාවනය වන වාහන), Voice assistants (Siri, Alexa), Chess-playing computers.

Machine Learning (ML) - යන්ත්‍ර ඉගෙනීම

ML කියන්නේ AI එකේම කොටසක් (subset එකක්). මේකෙදි වෙන්නේ, අපි යන්ත්‍රයකට ඍජුවම "මේ දේ මෙහෙම කරන්න" කියලා program කරන්නේ නැතුව, data වලින් ඉගෙන ගන්න අවස්ථාව දෙන එක. යන්ත්‍රය තොරතුරු රාශියක් විශ්ලේෂණය කරලා, ඒවයින් රටා (patterns) හොයාගෙන, අලුත් දත්ත වලට අනුව තීරණ ගන්න පුරුදු වෙනවා. හිතලා බලන්න, ළමයෙක් අත්දැකීම් වලින් ඉගෙන ගන්නවා වගේ.

  • උදාහරණ: Email spam detection (ස්පෑම් ඊමේල් හඳුනාගැනීම), Product recommendations (ඔබට ගැලපෙන භාණ්ඩ නිර්දේශ කිරීම), Medical diagnosis (රෝග විනිශ්චය).

ඉතින්, AI කියන්නේ ලොකු umbrella එකක්, ML කියන්නේ ඒ යටතේ තියෙන ප්‍රධානම තාක්ෂණයක්.

Machine Learning වල ප්‍රධාන වර්ග (Main Types of Machine Learning)

ML වල ප්‍රධාන කාණ්ඩ තුනක් තියෙනවා. අපි මේ තුනම එකින් එක බලමු.

1. Supervised Learning (අධීක්ෂණය කරන ලද ඉගෙනීම)

Supervised Learning වලදී, අපි යන්ත්‍රයට දත්ත ලබා දෙනකොට, ඒ දත්ත වලට අදාළ 'පිළිතුරු' (labels) මොනවද කියලා කියලා දෙනවා. හරියට ළමයෙකුට පොතක් පෙන්වලා "මේක බල්ලෙක්", "මේක බළලෙක්" කියලා කියලා දෙනවා වගේ. යන්ත්‍රය මේ labeled data වලින් ඉගෙනගෙන, අලුතින් එන දත්ත වලට අදාළව නිවැරදි පිළිතුරක් දෙන්න පුරුදු වෙනවා.

  • වැදගත්කම: Labeled data අවශ්‍යයි.
  • භාවිතා වන අවස්ථා:
    • Regression: අඛණ්ඩ අගයක් (continuous value) පුරෝකථනය කිරීම.
      • උදාහරණ: ගෙයක මිල පුරෝකථනය කිරීම (කාමර ගණන, ප්‍රදේශය වගේ features අනුව).
    • Classification: දත්ත කාණ්ඩයකට (category) වර්ග කිරීම.
      • උදාහරණ: ඊමේල් එකක් spamnot spam ද කියා වර්ග කිරීම; රූපයක සිටින්නේ බළලෙක්ද බල්ලෙක්ද කියා හඳුනාගැනීම.

AWS සේවා: Amazon Forecast (කාල ශ්‍රේණි පුරෝකථනය), Amazon Rekognition (රූප සහ වීඩියෝ විශ්ලේෂණය), Amazon Comprehend (පෙළ විශ්ලේෂණය - sentiment analysis වගේ).

2. Unsupervised Learning (අධීක්ෂණය නොකරන ලද ඉගෙනීම)

Unsupervised Learning වලදී, අපි යන්ත්‍රයට labeled data දෙන්නේ නැහැ. ඒ වෙනුවට, යන්ත්‍රය තමන්ට ලබාදෙන unlabeled data වල තියෙන රටා (patterns), සමානකම් (similarities), සහ වෙනස්කම් (differences) තනිවම හොයාගන්න උත්සාහ කරනවා. හරියට ළමයෙකුට සෙල්ලම් බඩු රාශියක් දීලා "මේවා වර්ග කරන්න" කියලා කිව්වාම, ඒ ළමයා ඒවායේ හැඩය, පාට වගේ දේවල් අනුව තනිවම වර්ග කරනවා වගේ.

  • වැදගත්කම: Labeled data අවශ්‍ය නැහැ.
  • භාවිතා වන අවස්ථා:
    • Clustering: දත්ත කණ්ඩායම් වලට (clusters) එකතු කිරීම.
      • උදාහරණ: පාරිභෝගිකයින් ඔවුන්ගේ මිලදී ගැනීමේ රටා අනුව විවිධ කොටස් වලට වෙන් කිරීම (customer segmentation).
    • Dimensionality Reduction: සංකීර්ණ දත්ත සරල කිරීම.

AWS සේවා: Amazon SageMaker (කස්ටම් Unsupervised ML මොඩලයක් හදන්න), Amazon Personalize (recommendation systems වලදී යම්තාක් දුරට clustering භාවිත වෙනවා).

3. Reinforcement Learning (ශක්තිමත් කිරීමේ ඉගෙනීම)

Reinforcement Learning කියන්නේ ටිකක් වෙනස් ක්‍රමවේදයක්. මේකෙදි agent කෙනෙක් (යන්ත්‍රය) පරිසරයක් (environment) එක්ක අන්තර්ක්‍රියා කරමින් ඉගෙන ගන්නවා. යන්ත්‍රය යම් ක්‍රියාවක් කළාම, ඒකට 'ත්‍යාගයක්' (reward) හෝ 'දඬුවමක්' (penalty) ලැබෙනවා. මේ rewards සහ penalties මත පදනම් වෙලා, යන්ත්‍රය තමන්ගේ හැසිරීම සකස් කරගෙන, දීර්ඝ කාලීනව වැඩිම rewards ප්‍රමාණයක් ලබාගන්න ඉගෙන ගන්නවා. හරියට බල්ලෙකුට උපක්‍රම පුරුදු කරනවා වගේ - නිවැරදි දෙයක් කළාම කෑම ටිකක් දෙනවා, වැරදි දෙයක් කළාම බනිනවා.

  • වැදගත්කම: අත්හදා බැලීම් (trial-and-error) මගින් ඉගෙන ගන්නවා.
  • භාවිතා වන අවස්ථා:
    • Robotics (රොබෝවරුන්), Game playing (ක්‍රීඩා කිරීම - AlphaGo), Self-driving cars.

AWS සේවා: AWS DeepRacer (reinforcement learning concepts ඉගෙන ගන්න පුළුවන් කුඩා රේසින් කාර් එකක්).

ML Lifecycle එක සහ ප්‍රධාන පද (ML Lifecycle and Key Terminology)

ඕනෑම ML project එකක් සාමාන්‍යයෙන් යම්කිසි පියවර මාලාවක් ඔස්සේ සිදුවෙනවා. මේක තමා ML Lifecycle එක.

ML Lifecycle එකේ පියවර:

  1. Problem Definition (ගැටලුව හඳුනාගැනීම): මොකක්ද අපි විසඳන්න හදන්නේ? මොකක්ද අපේ අරමුණ? (උදා: ගනුදෙනුකරුවන්ගේ churn rate එක පුරෝකථනය කිරීම).
  2. Data Collection & Preparation (දත්ත එකතු කිරීම සහ සකස් කිරීම):
    • අවශ්‍ය දත්ත එකතු කිරීම (ඩේටාබේස්, API, සෙන්සර්).
    • දත්ත පිරිසිදු කිරීම (missing values, errors හඳුනාගෙන නිවැරදි කිරීම).
    • දත්ත පරිවර්තනය (features ඉංජිනේරුකරණය). මේ අවස්ථාවෙදි තමා Features සහ Labels සකස් වෙන්නේ.
  3. Model Training (මොඩලය පුහුණු කිරීම):
    • අපේ දත්ත වලට ගැලපෙන ML Algorithm එකක් තෝරා ගැනීම.
    • ඒ තෝරාගත් Algorithm එක අපේ prepared data මත train කිරීම. මේ ක්‍රියාවලියේදී model එක බිහිවෙනවා.
  4. Model Evaluation (මොඩලය ඇගයීම):
    • පුහුණු කළ model එක කොච්චර හොඳට වැඩ කරනවද කියලා testing data භාවිතා කරලා පරීක්ෂා කිරීම. (Accuracy, Precision, Recall වගේ metrics භාවිතයෙන්).
  5. Model Deployment (මොඩලය යෙදවීම):
    • හොඳින් ක්‍රියා කරන model එක සැබෑ ලෝකයේ භාවිතය සඳහා සූදානම් කිරීම (API එකක් විදිහට, serverless function එකක් විදිහට).
  6. Monitoring & Maintenance (නිරීක්ෂණය සහ නඩත්තු කිරීම):
    • Deploy කරපු model එක කාලයත් එක්ක කොහොමද වැඩ කරන්නේ කියලා නිරීක්ෂණය කිරීම. (දත්ත රටා වෙනස් වෙනවා නම්, model එක නැවත train කරන්න වෙනවා).

ප්‍රධාන පද (Key Terminology):

  • Features: මේවා තමයි input variables. Model එක පුරෝකථනයක් කරන්න පාවිච්චි කරන දත්ත. (උදා: ගෙයක මිල පුරෝකථනය කරනවා නම්, කාමර ගණන, වර්ග අඩි ප්‍රමාණය, ප්‍රදේශය).
  • Labels: මේවා output variables. Supervised Learning වලදී අපේ model එක පුරෝකථනය කරන්න උත්සාහ කරන අගය. (උදා: ගෙයක මිල).
  • Model: පුහුණු කළ Algorithm එක. මේක දත්ත වල තියෙන රටා ඉගෙනගෙන, අලුත් input data වලට අදාළව predictions කරන්න පුළුවන් තත්වයට පත් වූ දෙයක්.
  • Training Data: Model එක පුහුණු කරන්න අපි භාවිතා කරන දත්ත කට්ටලය.
  • Testing Data: Model එක කොච්චර හොඳින් වැඩ කරනවද කියලා පරීක්ෂා කරන්න භාවිතා කරන, Model එක පුහුණු කරන්න භාවිතා නොකළ දත්ත කට්ටලය.
  • Prediction/Inference: පුහුණු කළ model එකක් අලුත් දත්ත වලට අදාළව ප්‍රතිඵලයක් හෝ පුරෝකථනයක් ලබා දීම.
  • Algorithm: Model එකක් තැනීමට භාවිතා කරන ගණිතමය හෝ ස්ථිතිකමය ක්‍රමවේදය (උදා: Linear Regression, Decision Tree, Neural Network).

ව්‍යාපාර වලට AI/ML වලින් ලැබෙන වටිනාකම (Business Value of AI/ML)

AI/ML කියන්නේ නිකම්ම cool තාක්ෂණයක් විතරක් නෙවෙයි, ව්‍යාපාර වලට විශාල වටිනාකමක් එකතු කරන දෙයක්.

  • කාර්යක්ෂමතාව වැඩි කිරීම (Efficiency Gains):
    • පුනරාවර්තන කාර්යයන් (repetitive tasks) ස්වයංක්‍රීය කිරීම (automation).
    • (උදා: Customer Support Chatbots, Document Processing).
  • හොඳ තීරණ ගැනීම (Improved Decision-Making):
    • දත්ත විශ්ලේෂණය කරලා වටිනා insights ලබා දීම.
    • (උදා: Market Trend Prediction, Fraud Detection).
  • පාරිභෝගික අත්දැකීම් වැඩි දියුණු කිරීම (Enhanced Customer Experience):
    • පාරිභෝගිකයින්ට ගැලපෙන personalized recommendations ලබා දීම.
    • (උදා: Netflix, Amazon වල Product Recommendations).
  • අලුත් නිෂ්පාදන සහ සේවා (New Products & Services):
    • AI/ML මගින් කලින් කරන්න බැරි වෙච්ච අලුත් දේවල් හඳුන්වා දීම.
    • (උදා: Voice-activated smart devices, Advanced Medical Imaging).
  • තරඟකාරී වාසිය (Competitive Advantage):
    • වෙළඳපොලේ අන් අයට වඩා ඉදිරියෙන් සිටීම.

AWS AI/ML Services දළ විශ්ලේෂණයක් (An Overview of AWS AI/ML Services)

AWS කියන්නේ Cloud Computing වල නායකයා. එයාලා AI/ML සේවා විශාල ප්‍රමාණයක් ඉදිරිපත් කරනවා. මේ සේවා අපිට ස්ථර තුනකට බෙදන්න පුළුවන්.

1. Top Layer: AI Services (Pre-trained APIs)

මේවා තමයි ML දැනුමක් නැති අයට වුණත් AI/ML වල බලය පාවිච්චි කරන්න පුළුවන් High-Level AI services. මේවා pre-trained models විදිහට API හරහා ලබා දෙනවා. අපිට අවශ්‍ය වෙන්නේ API එකට input එක දීලා, output එක ගන්න එක විතරයි. Machine Learning ගැන ගැඹුරු දැනුමක් නැති Software Developers ලාට මේවා ගොඩක් ප්‍රයෝජනවත්.

  • Amazon Rekognition: රූප සහ වීඩියෝ විශ්ලේෂණය. (මුහුණු හඳුනාගැනීම, වස්තු හඳුනාගැනීම, ක්‍රියාකාරකම් හඳුනාගැනීම).
  • Amazon Polly: පෙළ ශබ්ද බවට පරිවර්තනය කිරීම (Text-to-Speech).
  • Amazon Transcribe: ශබ්දය පෙළ බවට පරිවර්තනය කිරීම (Speech-to-Text).
  • Amazon Comprehend: පෙළ විශ්ලේෂණය (Text Analytics - sentiment analysis, key phrase extraction).
  • Amazon Translate: භාෂා පරිවර්තනය.
  • Amazon Forecast: ව්‍යාපාරික පුරෝකථන (sales forecasting, demand forecasting).
  • Amazon Personalize: පුද්ගලීකරණය කළ නිර්දේශ පද්ධති (recommendation systems).

උදාහරණයක්: Amazon Rekognition API Call එකක් (Conceptual JavaScript)

අපිට S3 bucket එකක තියෙන රූපයක් විශ්ලේෂණය කරලා ඒකේ මොනවද තියෙන්නේ කියලා හොයාගන්න පුළුවන්. මේකෙන් පේනවා නේද, ML model එකක් හදන්න මහන්සි වෙන්නේ නැතුව, pre-built service එකක් කොච්චර පහසුවෙන් පාවිච්චි කරන්න පුළුවන්ද කියලා.

// Conceptual AWS Rekognition API call (JavaScript SDK example)

// ඔබ Node.js භාවිත කරනවා නම්, AWS SDK එක require කරන්න:
// const AWS = require('aws-sdk');
// AWS.config.update({ region: 'us-east-1' }); // ඔබේ region එක දෙන්න

// Browser එකක නම්, AWS SDK script එක load කර තිබිය යුතුයි.
const rekognition = new AWS.Rekognition();

const params = {
  Image: {
    S3Object: {
      Bucket: 'your-s3-bucket-name', // ඔබේ S3 bucket එකේ නම
      Name: 'path/to/your/image.jpg' // රූපයේ path එක
    },
  },
  MaxLabels: 10, // උපරිම ලේබල ගණන
  MinConfidence: 70 // අවම විශ්වාසනීයත්ව මට්ටම (%)
};

rekognition.detectLabels(params, function(err, data) {
  if (err) {
    console.error("Error detecting labels:", err, err.stack); // error එකක් ආවොත්
  } else {
    console.log("Labels detected:", data.Labels);           // සාර්ථක ප්‍රතිචාරය
    // ඔබට data.Labels array එක iterate කරලා තවත් විස්තර ලබාගන්න පුළුවන්
  }
});

2. Middle Layer: Machine Learning Services (Amazon SageMaker)

මේ ස්ථරය Data Scientists ලාට සහ ML Engineers ලාට තමයි වැඩියෙන් ගැලපෙන්නේ. Amazon SageMaker කියන්නේ end-to-end ML platform එකක්. ඒකෙන් අපිට ML models හදන්න, පුහුණු කරන්න, deploy කරන්න සහ monitor කරන්න අවශ්‍ය හැම දෙයක්ම ලබා දෙනවා. ඔබට කස්ටම් ML solutions හදන්න අවශ්‍ය නම් මේක නියම විසඳුමක්.

  • Amazon SageMaker Studio: ML development සඳහා IDE එකක්.
  • SageMaker Notebook Instances: Jupyter Notebooks භාවිතයෙන් කෝඩ් ලියන්න.
  • SageMaker Ground Truth: Data labeling සඳහා (ඔබේ දත්ත වලට labels එකතු කරන්න).
  • SageMaker JumpStart: Pre-built models සහ algorithms භාවිතා කරන්න.
  • SageMaker Training: විශාල වශයෙන් models පුහුණු කරන්න.
  • SageMaker Hosting: Models deploy කරලා predictions ගන්න.

උදාහරණයක්: Amazon SageMaker එකේ Simple Model Training Script එකක් (Python)

මේ Python script එකෙන් පෙන්නන්නේ SageMaker එකේ Logistic Regression model එකක් train කරන හැටි. මේ වගේ කෝඩ් එකක් අපි SageMaker training job එකකට දෙනවා. එතකොට SageMaker එක අවශ්‍ය පරිදි compute resources (CPU/GPU) ලබා දීලා මේ script එක ක්‍රියාත්මක කරලා model එක train කරලා save කරනවා.

# Simple Python code for a hypothetical SageMaker training script

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import joblib
import os

if __name__ == '__main__':
    # 1. Load data (මෙතනදී සාමාන්‍යයෙන් S3 එකෙන් දත්ත load කරනවා)
    # Dummy data example for demonstration
    data = pd.DataFrame({
        'feature1': [1,2,3,4,5,6,7,8,9,10],
        'feature2': [10,9,8,7,6,5,4,3,2,1],
        'label': [0,0,0,0,1,1,1,1,1,1] # Supervised Learning සඳහා label එක
    })

    X = data[['feature1', 'feature2']] # Features
    y = data['label']                   # Label

    # 2. Split data into training and testing sets
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    # 3. Train a simple model (Logistic Regression)
    model = LogisticRegression()
    model.fit(X_train, y_train)

    # 4. Save the model to a directory that SageMaker expects
    # 'SM_MODEL_DIR' is an environment variable set by SageMaker
    model_dir = os.environ.get('SM_MODEL_DIR', './')
    joblib.dump(model, os.path.join(model_dir, 'model.joblib'))

    print("Model training complete and saved successfully in:", model_dir)

මේ script එක පාවිච්චි කරලා ඔබට SageMaker එකේ training job එකක් නිර්මාණය කරන්න පුළුවන්. ඊට පස්සේ ඒ model එක deploy කරලා real-time predictions ගන්නත් පුළුවන්.

3. Bottom Layer: ML Frameworks & Infrastructure

මේ ස්ථරය තමයි වඩාත්ම low-level එක. මෙතනදී ඔබට ඔබේම ML frameworks (TensorFlow, PyTorch, MXNet) සහ Infrastructure (EC2 instances, S3 storage) පාවිච්චි කරලා Machine Learning solution එකක් බිල්ඩ් කරන්න පුළුවන්. ඔබට deep technical control එකක් අවශ්‍ය නම් සහ විශේෂිත වූ hardware (GPU instances) අවශ්‍ය නම් මේ ස්ථරය තමයි හොඳම.

  • Amazon EC2: Powerful virtual servers (GPU instances සමඟ).
  • Amazon S3: විශාල දත්ත කට්ටල ගබඩා කිරීමට.
  • Amazon ECR: Docker images ගබඩා කිරීමට (ඔබේ ML environment එක containerize කරනවා නම්).
  • AWS Batch: විශාල ML training jobs ධාවනය කිරීමට.

නිගමනය (Conclusion)

ඉතින් යාලුවනේ, මේ මාර්ගෝපදේශය හරහා අපි AI/ML වල මූලිකාංග, ඒවයේ වර්ග, ML Lifecycle එක සහ ව්‍යාපාර වලට මේවායින් ලැබෙන වටිනාකම ගැන අවබෝධයක් ලබාගත්තා. ඒ වගේම AWS විසින් මේ සඳහා සපයන ත්‍රි-ස්ථර සේවාවන් ගැනත් අපි සාකච්ඡා කළා.

AI/ML කියන්නේ අනාගතයේ වැඩිපුරම බලපාන තාක්ෂණයන්ගෙන් එකක්. ඒකෙන් අපිට විශාල අවස්ථා ප්‍රමාණයක් විවෘත වෙනවා. AWS Free Tier එක පාවිච්චි කරලා අදම මේ සේවා එක්ක වැඩ කරන්න පටන් ගන්න. Amazon Rekognition API එකකින් රූපයක් විශ්ලේෂණය කරන්න උත්සාහ කරන්න, නැත්නම් SageMaker Studio Lab එකෙන් පොඩි ML model එකක් හදන්න උත්සාහ කරන්න.

ඔබේ අත්දැකීම් සහ ප්‍රශ්න පහතින් comment කරන්න! මේ ගමනේදී අපි හැමෝටම එකිනෙකාට උදව් වෙන්න පුළුවන්. මේ වගේම තවත් ටියුටෝරියල් එක්ක නැවත හමුවෙමු!