Friday, October 23, 2026

The application of the VERSION-SPACE-LEARNING algorithm

VERSION-SPACE-LEARNING အယ်လ်ဂိုရီသမ် (Candidate Elimination လို့လည်း ခေါ်တယ်။) 

            ကို Restaurant Data အပေါ် အသုံးချရာတွင်၊ ဖြစ်နိုင်ချေရှိသော ယူဆချက်များ (hypotheses) အားလုံးပါဝင်သည့် 'Version Space' တစ်ခုကို တည်ဆောက်ပြီး ဥပမာ (examples) တစ်ခုစီတိုင်းအတွက် ကိုက်ညီမှုရှိသော ယူဆချက်များကို စစ်ထုတ်သွားခြင်း ဖြစ်တယ်။

Restaurant Data တွင် "WillWait" ဟူသော Boolean target (Yes/No) ကို ခန့်မှန်းရန်အတွက် Alternate, Bar, Fri/Sat, Hungry, Patrons, Price, Raining, Reservation, Type, Est ဟူသော input attribute (၁၀) ခု ပါဝင်တယ်။

VERSION-SPACE-LEARNING အယ်လ်ဂိုရီသမ် အလုပ်လုပ်ပုံမှာ အောက်ပါအတိုင်း ဖြစ်ပါတယ်။

  • Version Space ကို ဘောင်ခတ်ခြင်း: Version Space (V) အား ယေဘုယျအကျဆုံး ယူဆချက်များပါဝင်သည့် G-set နှင့်၊ အတိကျဆုံးဖြစ်အောင် ကန့်သတ်ထားသည့် ယူဆချက်များပါဝင်သည့် S-set တို့ကို အသုံးပြု၍ ဘောင်ခတ် ကိုယ်စားပြုဖော်ပြသည်။

  • Positive Example များ (WillWait = Yes): အယ်လ်ဂိုရီသမ်သည် ဥပမာအသစ်နှင့် ကိုက်ညီစေရန် S-set ထဲရှိ ယူဆချက်များကို ပိုမိုယေဘုယျကျအောင် (Generalize) ပြောင်းလဲပေးပြီး၊ ၎င်းဥပမာနှင့် ကိုက်ညီမှုမရှိသော G-set ထဲမှ ယူဆချက်များကို ဖယ်ရှားသည်။

  • Negative Example များ (WillWait = No): ဥပမာအသစ်အား ဖယ်ထုတ်နိုင်ရန် G-set ထဲရှိ ယူဆချက်များကို ပိုမိုတိကျအောင် (Specialize) ခွဲဖြာပြောင်းလဲပေးပြီး၊ ၎င်းဥပမာနှင့် ကိုက်ညီနေသော (မှားယွင်းနေသော) S-set ထဲမှ ယူဆချက်များကို ဖယ်ရှားသည်။

Restaurant Data ပေါ်တွင် အသုံးချခြင်း၏ ရလဒ်နှင့် တွေ့ရှိချက် (Limitation) 

            Conjuntive Hypothesis (AND logic သက်သက်) ကိုသာ အသုံးပြုထားသည့် မူလ Version Space Learning ဖြင့် ဤ Restaurant Data ကို တွက်ချက်ပါက၊ အယ်လ်ဂိုရီသမ်သည် အစပိုင်း ဥပမာအနည်းငယ်တွင် ပုံမှန်အလုပ်လုပ်သော်လည်း နောက်ပိုင်းတွင် Version Space ပြိုကွဲသွားခြင်း (Empty ဖြစ်သွားခြင်း) ကို ကြုံတွေ့ရမည် ဖြစ်သည်။ အကြောင်းရင်းမှာ Positive Example မျိုးစုံ (ဥပမာ x1, x3, x4) များ၌ တူညီသော attribute တန်ဖိုးများ မရှိသလောက် နည်းပါးသောကြောင့်၊ S-set သည် လျင်မြန်စွာပင် အရာအားလုံးနှင့် ကိုက်ညီသည့် < ?, ?, ?, ?, ?, ?, ?, ?, ?, ? > အခြေအနေသို့ ရောက်ရှိသွားမည် ဖြစ်သည်။ ထိုအခါ Negative Example တစ်ခုဝင်လာသည်နှင့် S-set မှ ကာကွယ်ပေးနိုင်ခြင်း မရှိတော့ဘဲ G-set နှင့် S-set တို့ ဖြတ်တောက်မှု (Intersection) သည် Empty ဖြစ်သွားမည် ဖြစ်သည်။ ဤသည်မှာ Version-space ချဉ်းကပ်မှု၏ အဓိက အားနည်းချက်တစ်ခုဖြစ်သည့် "Disjunction ပြဿနာ" (OR logic လိုအပ်ခြင်း) ကို လက်တွေ့သက်သေပြလိုက်ခြင်း ဖြစ်ပါသည်။

            အဆိုပါ သီအိုရီ အလုပ်လုပ်ပုံနှင့် Version Space ပြိုကွဲသွားသည့် အဆင့်အထိကို အသေးစိတ် ပုံဖော်တွက်ချက်ပြထားသည့် အပြည့်အစုံ အလုပ်လုပ်နိုင်သော Python ပရိုဂရမ်မှာ အောက်ပါအတိုင်း ဖြစ်ပါတယ်။


Python
import pandas as pd
import copy

# Figure 19.2 မှ Restaurant Data အချက်အလက်များ[cite: 1]
# Columns: Alt, Bar, Fri, Hun, Pat, Price, Rain, Res, Type, Est, WillWait
data = [
    ['Yes', 'No', 'No', 'Yes', 'Some', '$$$', 'No', 'Yes', 'French', '0-10', 'Yes'],
    ['Yes', 'No', 'No', 'Yes', 'Full', '$', 'No', 'No', 'Thai', '30-60', 'No'],
    ['No', 'Yes', 'No', 'No', 'Some', '$', 'No', 'No', 'Burger', '0-10', 'Yes'],
    ['Yes', 'No', 'Yes', 'Yes', 'Full', '$', 'Yes', 'No', 'Thai', '10-30', 'Yes'],
    ['Yes', 'No', 'Yes', 'No', 'Full', '$$$', 'No', 'Yes', 'French', '>60', 'No'],
    ['No', 'Yes', 'No', 'Yes', 'Some', '$$', 'Yes', 'Yes', 'Italian', '0-10', 'Yes'],
    ['No', 'Yes', 'No', 'No', 'None', '$', 'Yes', 'No', 'Burger', '0-10', 'No'],
    ['No', 'No', 'No', 'Yes', 'Some', '$$', 'Yes', 'Yes', 'Thai', '0-10', 'Yes'],
    ['No', 'Yes', 'Yes', 'No', 'Full', '$', 'Yes', 'No', 'Burger', '>60', 'No'],
    ['Yes', 'Yes', 'Yes', 'Yes', 'Full', '$$$', 'No', 'Yes', 'Italian', '10-30', 'No'],
    ['No', 'No', 'No', 'No', 'None', '$', 'No', 'No', 'Thai', '0-10', 'No'],
    ['Yes', 'Yes', 'Yes', 'Yes', 'Full', '$', 'No', 'No', 'Burger', '30-60', 'Yes']
]

attributes = ['Alternate', 'Bar', 'Fri/Sat', 'Hungry', 'Patrons', 'Price', 'Raining', 'Reservation', 'Type', 'WaitEstimate']

def is_consistent(hypothesis, example):
    """Hypothesis သည် ပေးထားသော ဥပမာနှင့် ကိုက်ညီမှု ရှိ/မရှိ စစ်ဆေးရန်"""
    for h_val, e_val in zip(hypothesis, example):
        if h_val != '?' and h_val != e_val:
            return False
    return True

def more_general(h1, h2):
    """h1 သည် h2 ထက် ပို၍ ယေဘုယျကျခြင်း (generalize ဖြစ်ခြင်း) ရှိ/မရှိ စစ်ဆေးရန်"""
    for v1, v2 in zip(h1, h2):
        if v1 != '?' and v1 != v2:
            return False
    return True

def version_space_learning(dataset):
    # S-set ကို အတိကျဆုံး အခြေအနေဖြင့် စတင်မည် ('0' သည် ကန့်သတ်ချက်အမြင့်ဆုံးကို ကိုယ်စားပြုသည်)
    S = ['0'] * len(attributes)
    # G-set ကို ယေဘုယျအကျဆုံး အခြေအနေဖြင့် စတင်မည် ('?' သည် မည်သည့်တန်ဖိုးမဆို ကိုယ်စားပြုသည်)
    G = [['?'] * len(attributes)]

    print(f"{'='*60}\nအစပြုချိန် S-set: {S}")
    print(f"အစပြုချိန် G-set: {G}\n{'='*60}")

    for i, row in enumerate(dataset):
        x = row[:-1]
        y = row[-1]
        print(f"\nExample {i+1} ကို စစ်ဆေးခြင်း: {x} => Target: {y}")

        if y == 'Yes':
            # Positive Example ဖြစ်လျှင်
            
            # ၁. G-set ထဲမှ ဥပမာ x နှင့် မကိုက်ညီသော ယူဆချက်များကို ဖယ်ရှားမည်
            G = [g for g in G if is_consistent(g, x)]
            
            # ၂. S-set ကို ဥပမာ x နှင့် ကိုက်ညီအောင် Generalize လုပ်မည်
            if S[0] == '0':
                S = list(x)
            else:
                for j in range(len(S)):
                    if S[j] != '?' and S[j] != x[j]:
                        S[j] = '?'
                        
            # S-set သည် G-set မှ ယူဆချက်တစ်ခုခုအောက်တွင် specific မဖြစ်တော့ပါက Version Space ပြိုကွဲပြီဖြစ်သည်
            if not any(more_general(g, S) for g in G):
                print("\n[!] သတိပေးချက်: Version Space ပြိုကွဲသွားပါပြီ (Empty ဖြစ်သွားပါသည်)။")
                print("အကြောင်းရင်း: S-set သည် လွန်ကဲစွာ ယေဘုယျကျသွားပြီး G-set နှင့် မကိုက်ညီတော့ပါ။")
                print("ကောက်ချက်: ဤ Restaurant Data ၏ Target Concept သည် AND logic သီးသန့်ဖြင့် ဖော်ပြ၍မရဘဲ၊ Disjunction (OR logic) များ လိုအပ်ပါသည်။")
                break

        else:
            # Negative Example ဖြစ်လျှင်
            
            # ၁. S-set သည် negative ဥပမာနှင့် ကိုက်ညီနေပါက Version space ပြိုကွဲသည်
            if S[0] != '0' and is_consistent(S, x):
                print("\n[!] သတိပေးချက်: Version Space ပြိုကွဲသွားပါပြီ။ S-set သည် Negative Example ကို လက်ခံနေပါသည်။")
                break
                
            # ၂. G-set ကို ဥပမာ x ကို ဖယ်ထုတ်နိုင်ရန် Specialize လုပ်မည်
            new_G = []
            for g in G:
                if is_consistent(g, x):
                    for j in range(len(g)):
                        if g[j] == '?':
                            # S-set ၏ တန်ဖိုးကို အသုံးပြု၍ Negative example ကို ရှောင်လွှဲနိုင်သော hypothesis အသစ် ဖန်တီးမည်
                            if S[j] != '0' and S[j] != '?':
                                if S[j] != x[j]:
                                    new_g = copy.deepcopy(g)
                                    new_g[j] = S[j]
                                    new_G.append(new_g)
                else:
                    new_G.append(g)

            # G-set ထဲမှ ပို၍ ယေဘုယျမကျသော (redundant ဖြစ်နေသော) ယူဆချက်များကို ဖယ်ရှားမည်
            G = []
            for g1 in new_G:
                if not any(more_general(g1, g2) for g2 in new_G if g1 != g2):
                    G.append(g1)

        print(f"Update ပြီးသော S-set: {S}")
        print(f"Update ပြီးသော G-set: {G}")

# ပရိုဂရမ်ကို run ရန်
version_space_learning(data)

Saturday, October 10, 2026

28.3.2 Surveillance, security, and privacy

၂၈.၃.၂ စောင့်ကြည့်စစ်ဆေးခြင်း၊ လုံခြုံရေးနှင့် ကိုယ်ရေးကိုယ်တာလုံခြုံမှု 

၁၉၇၆ ခုနှစ်မှာ ဂျိုးဇက် ဝိုက်ဇန်ဘောင်း (Joseph Weizenbaum) က အလိုအလျောက် အသံကိုခွဲခြားသိမြင်နိုင်တဲ့ နည်းပညာ (automated speech recognition technology) ဟာ နေရာအနှံ့ ကြေးနန်းနဲ့ဖုန်း ခိုးနားထောင်ခြင်း (widespread wiretapping) ကို ဖြစ်ပေါ်စေနိုင်ပြီး၊ အဲဒီကတစ်ဆင့် နိုင်ငံသားတွေရဲ့ လွတ်လပ်ခွင့် (civil liberties) ဆုံးရှုံးသွားနိုင်တယ်လို့ သတိပေးခဲ့ပါတယ်။ ဒီနေ့ခေတ်မှာတော့ အဲဒီခြိမ်းခြောက်မှု (threat) ဟာ တကယ်ပဲ ဖြစ်လာခဲ့ပါပြီ။ အီလက်ထရောနစ် ဆက်သွယ်ရေး (electronic communication) အများစုဟာ စောင့်ကြည့်စစ်ဆေးလို့ရတဲ့ ဗဟိုဆာဗာတွေ (central servers) ကနေ ဖြတ်သန်းသွားလာနေပါတယ်။ မြို့ကြီးတွေမှာလည်း လူတစ်ယောက်ရဲ့ အသံ (voice)၊ မျက်နှာ (face) နဲ့ လမ်းလျှောက်ပုံ (gait) တွေကို ကြည့်ပြီး ဘယ်သူဘယ်ဝါမှန်း ခွဲခြားနိုင်၊ ခြေရာခံ (identify and track) နိုင်တဲ့ မိုက်ခရိုဖုန်းတွေ၊ ကင်မရာတွေ အပြည့်ရှိနေပါပြီ။ အရင်တုန်းကဆိုရင် စောင့်ကြည့်စစ်ဆေးခြင်း (Surveillance) လုပ်ဖို့အတွက် စရိတ်ကြီးမားပြီး ရှားပါးတဲ့ လူသားအရင်းအမြစ်တွေ (expensive and scarce human resources) လိုအပ်ပေမယ့်၊ အခုအခါမှာတော့ စက်တွေကနေတစ်ဆင့် အစုလိုက်အပြုံလိုက် အကြီးအကျယ် (mass scale) လုပ်ဆောင်နိုင်နေပါပြီ။ (ဥပမာ - အရင်က လူတစ်ယောက်ကို စောင့်ကြည့်ဖို့ စုံထောက်တစ်ယောက် လိုပေမယ့်၊ အခုတော့ AI ကင်မရာတစ်လုံးတည်းနဲ့ လူထောင်ပေါင်းများစွာကို တစ်ပြိုင်နက် စောင့်ကြည့်နိုင်နေတာမျိုး ဖြစ်ပါတယ်။)

၂၀၁၈ ခုနှစ် စာရင်းတွေအရ တရုတ်နိုင်ငံမှာ စောင့်ကြည့်ကင်မရာ (surveillance cameras) သန်း ၃၅၀ လောက်နဲ့ အမေရိကန်ပြည်ထောင်စုမှာ သန်း ၇၀ လောက် ရှိနေပါပြီ။ တရုတ်နိုင်ငံနဲ့ တခြားနိုင်ငံတွေဟာ နည်းပညာနိမ့်ကျတဲ့ နိုင်ငံတွေ (low-tech countries) ဆီကို ဒီစောင့်ကြည့်စစ်ဆေးရေး နည်းပညာတွေကို စတင်တင်ပို့နေကြပါပြီ။ အဲဒီလို တင်ပို့ခံရတဲ့ နိုင်ငံတချို့ဟာ နိုင်ငံသားတွေကို မတရားဆက်ဆံတာ (mistreating their citizens) တွေနဲ့၊ ဖယ်ကျဉ်ခံထားရတဲ့ လူနည်းစုအသိုင်းအဝိုင်းတွေ (marginalized communities) ကို မတန်တဆ ပစ်မှတ်ထား နှိပ်ကွပ်တာတွေကြောင့် နာမည်ပျက် (reputations) ရှိတဲ့ နိုင်ငံတွေ ဖြစ်နေပါတယ်။ AI အင်ဂျင်နီယာတွေ (AI engineers) အနေနဲ့ ဘယ်လိုမျိုး စောင့်ကြည့်စစ်ဆေးမှု အသုံးချနည်းတွေက လူ့အခွင့်အရေး (human rights) နဲ့ ကိုက်ညီမှုရှိတယ် (compatible) ဆိုတာကို ရှင်းရှင်းလင်းလင်း သိထားသင့်ပြီး၊ မကိုက်ညီတဲ့ အသုံးချမှုတွေ (incompatible applications) မှာ ပါဝင်လုပ်ဆောင်ပေးဖို့ကို ငြင်းဆန် (decline) သင့်ပါတယ်။

ကျွန်တော်တို့ရဲ့ အဖွဲ့အစည်းတွေ (institutions) ဟာ အွန်လိုင်းပေါ်ကနေ ပိုပြီး လည်ပတ်လုပ်ကိုင်လာကြတာနဲ့အမျှ၊ ဆိုက်ဘာရာဇဝတ်မှု (cybercrime - ဥပမာ - လှည့်စားပြီး အချက်အလက်ရယူခြင်း - phishing၊ ခရက်ဒစ်ကတ် လိမ်လည်မှု - credit card fraud၊ ကွန်ပျူတာကွန်ရက်များကို ခိုးယူထိန်းချုပ်ခြင်း - botnets၊ ငွေညှစ်ဆော့ဖ်ဝဲလ် - ransomware) တွေနဲ့ ဆိုက်ဘာအကြမ်းဖက်မှု (cyberterrorism) တွေရဲ့ အန္တရာယ်ကို ပိုပြီး ကျရောက်လွယ် (vulnerable) လာပါတယ်။ (အဲဒီ ဆိုက်ဘာအကြမ်းဖက်မှုတွေထဲမှာ ဆေးရုံတွေနဲ့ လျှပ်စစ်စွမ်းအင်စက်ရုံတွေကို ပိတ်ပစ်လိုက်တာ ဒါမှမဟုတ် အလိုအလျောက်မောင်းနှင်တဲ့ ကားတွေကို ကြားဖြတ်ထိန်းချုပ်လိုက်တာ စတဲ့ အသက်အန္တရာယ် ဖြစ်စေနိုင်တဲ့ တိုက်ခိုက်မှု - potentially deadly attacks တွေတောင် ပါဝင်ပါတယ်။) စက်သင်ယူမှု (Machine learning) ဟာ ဆိုက်ဘာလုံခြုံရေး တိုက်ပွဲ (cybersecurity battle) မှာ နှစ်ဖက်စလုံးအတွက် စွမ်းအားကြီးမားတဲ့ ကိရိယာတစ်ခု (powerful tool) ဖြစ်နိုင်ပါတယ်။ တိုက်ခိုက်သူတွေ (Attackers) ဟာ လုံခြုံရေးအားနည်းချက်တွေ (insecurities) ကို လိုက်လံစုံစမ်းဖို့ (probe) အလိုအလျောက်လုပ်ဆောင်တဲ့စနစ် (automation) ကို သုံးနိုင်သလို၊ လှည့်စားပြီး အချက်အလက်ရယူဖို့ ကြိုးစားတာတွေ (phishing attempts) နဲ့ အလိုအလျောက် ငွေညှစ်တာတွေ (automated blackmail) လုပ်ဖို့အတွက် အားဖြည့်သင်ယူခြင်း (reinforcement learning) ကိုလည်း အသုံးချနိုင်ပါတယ်။ ကာကွယ်သူတွေ (Defenders) ဘက်ကလည်း ဝင်ရောက်လာတဲ့ အင်တာနက် အသွားအလာ ပုံစံတွေထဲက ပုံမှန်မဟုတ်တဲ့အရာတွေကို (anomalous incoming traffic patterns) ထောက်လှမ်းရှာဖွေဖို့ ကြီးကြပ်သူမဲ့ သင်ယူခြင်း (unsupervised learning) ကို အသုံးပြုနိုင်သလို (Chandola et al., 2009; Malhotra et al., 2015)၊ လိမ်လည်မှု (fraud) တွေကို ရှာဖွေဖို့ တခြား machine learning နည်းစနစ်အမျိုးမျိုးကိုလည်း အသုံးပြုနိုင်ပါတယ် (Fawcett and Provost, 1997; Bolton and Hand, 2002)။ ဒီလို ဆိုက်ဘာတိုက်ခိုက်မှုတွေဟာ ပိုမို ရှုပ်ထွေးဆန်းပြားလာတာနဲ့အမျှ (As attacks get more sophisticated)၊ လုံခြုံရေးကျွမ်းကျင်သူတွေတင်မကဘဲ အင်ဂျင်နီယာအားလုံးမှာ အစကတည်းက လုံခြုံစိတ်ချရတဲ့ စနစ်တွေ (secure systems) ကို ဒီဇိုင်းဆွဲဖန်တီးရမယ့် တာဝန်ပိုကြီးလာပါတယ်။ ခန့်မှန်းချက်တစ်ခု (forecast) အရ (Kanal, 2017)၊ cybersecurity မှာ အသုံးပြုမယ့် machine learning စျေးကွက်ဟာ ၂၀၂၁ ခုနှစ်ရောက်ရင် ဒေါ်လာ ဘီလီယံ ၁၀၀ လောက်အထိ ရှိလာမယ်လို့ ဆိုပါတယ်။

ကျွန်တော်တို့ရဲ့ နေ့စဉ်ဘဝတွေမှာ ကွန်ပျူတာတွေနဲ့ အပြန်အလှန်ဆက်သွယ် အသုံးပြုချိန်တွေ တိုးများလာတာနဲ့အမျှ၊ အစိုးရတွေနဲ့ ကော်ပိုရေးရှင်းကြီးတွေဟာ ကျွန်တော်တို့နဲ့ ပတ်သက်တဲ့ ဒေတာအချက်အလက်တွေကို ပိုပြီး စုဆောင်းလာကြပါတယ်။ ဒေတာစုဆောင်းသူတွေ (Data collectors) မှာ သူတို့လက်ထဲရောက်နေတဲ့ ဒေတာတွေကို ကောင်းမွန်စွာ ထိန်းသိမ်းစောင့်ရှောက်သူတွေ (good stewards) ဖြစ်ဖို့ ကိုယ်ကျင့်တရားပိုင်းဆိုင်ရာရော၊ ဥပဒေပိုင်းဆိုင်ရာပါ တာဝန် (moral and legal responsibility) ရှိပါတယ်။ အမေရိကန်ပြည်ထောင်စုမှာဆိုရင် ကျန်းမာရေးအာမခံဆိုင်ရာ သယ်ဆောင်နိုင်မှုနှင့် တာဝန်ခံမှု အက်ဥပဒေ (Health Insurance Portability and Accountability Act - HIPAA) နဲ့ မိသားစု ပညာရေးဆိုင်ရာ အခွင့်အရေးများနှင့် ကိုယ်ရေးကိုယ်တာလုံခြုံမှု အက်ဥပဒေ (Family Educational Rights and Privacy Act - FERPA) တို့က ဆေးဘက်ဆိုင်ရာနဲ့ ကျောင်းသား မှတ်တမ်းတွေရဲ့ ကိုယ်ရေးကိုယ်တာလုံခြုံမှု (privacy) ကို ကာကွယ်ပေးထားပါတယ်။ ဥရောပသမဂ္ဂ (European Union) ရဲ့ အထွေထွေ ဒေတာကာကွယ်ရေး စည်းမျဉ်း (General Data Protection Regulation - GDPR) ကလည်း ကုမ္ပဏီတွေအနေနဲ့ သူတို့ရဲ့စနစ်တွေကို ဒေတာကာကွယ်ရေးကို ထည့်သွင်းစဉ်းစားပြီး ဒီဇိုင်းဆွဲဖို့ မဖြစ်မနေ ပြဋ္ဌာန်းထား (mandates) ပါတယ်။ ဒါ့အပြင် ဒေတာစုဆောင်းတာပဲဖြစ်ဖြစ်၊ စီမံဆောင်ရွက်တာပဲဖြစ်ဖြစ် (collection or processing of data) လုပ်လုပ်တိုင်း သုံးစွဲသူရဲ့ သဘောတူခွင့်ပြုချက် (user consent) ကို ရယူဖို့လည်း လိုအပ်ပါတယ်။

တစ်ဦးချင်းစီရဲ့ ကိုယ်ရေးကိုယ်တာ လုံခြုံခွင့် (individual’s right to privacy) နဲ့ ချိန်ခွင်လျှာညှိရမယ့်အရာကတော့ ဒေတာတွေကို မျှဝေခြင်း (sharing data) ကနေ လူ့အဖွဲ့အစည်းက ရရှိလာမယ့် တန်ဖိုး (value that society gains) ပဲ ဖြစ်ပါတယ်။ ကျွန်တော်တို့အနေနဲ့ အကြမ်းဖက်သမားတွေကို တားဆီးချင်ပေမယ့် ငြိမ်းချမ်းစွာ သဘောကွဲလွဲဆန္ဒပြသူတွေကို ဖိနှိပ်တာမျိုး (oppressing peaceful dissent) မဖြစ်စေချင်ပါဘူး။ အလားတူပဲ ရောဂါတွေကို ကုသချင်ပေမယ့် လူတစ်ဦးချင်းစီရဲ့ ကိုယ်ပိုင်ကျန်းမာရေးရာဇဝင်ကို လျှို့ဝှက်ထားပိုင်ခွင့်ကိုလည်း မထိခိုက် (without compromising) စေချင်ပါဘူး။ ဒီအတွက် အဓိကကျတဲ့ လုပ်ထုံးလုပ်နည်းတစ်ခုကတော့ "မည်သူမည်ဝါဖြစ်ကြောင်း ဖော်ပြချက်ကို ဖယ်ရှားခြင်း" ("de-identification") ပါပဲ။ ဒါဟာ ပုဂ္ဂိုလ်ရေးအရ ခွဲခြားသိမြင်နိုင်တဲ့ အချက်အလက်တွေကို (personally identifying information) (ဥပမာ - နာမည်၊ လူမှုဖူလုံရေးနံပါတ် စတာတွေကို) ဖယ်ရှားပစ်တာပါ။ ဒါမှသာ ဆေးဘက်ဆိုင်ရာ သုတေသီတွေက ဒီဒေတာတွေကို သုံးပြီး အများအကျိုးအတွက် (advance the common good) ဆောင်ရွက်နိုင်မှာ ဖြစ်ပါတယ်။ ပြဿနာကတော့ အဲဒီလို ဖယ်ရှားထားတဲ့ ဒေတာတွေကို မျှဝေလိုက်တဲ့အခါမှာ မူလပိုင်ရှင်ကို ပြန်လည်ခြေရာခံမိသွားတာမျိုး (re-identification) ဖြစ်သွားနိုင်တာပါပဲ။ ဥပမာအနေနဲ့၊ ဒေတာတွေထဲကနေ နာမည်၊ လူမှုဖူလုံရေးနံပါတ်နဲ့ လမ်းလိပ်စာတွေကို ဖယ်ရှားလိုက်ပေမယ့် မွေးသက္ကရာဇ်၊ လိင် နဲ့ စာတိုက်သင်္ကေတ (zip code) တွေ ပါနေသေးတယ်ဆိုရင်၊ လာတန်ယာ ဆွီနီ (Latanya Sweeney) (၂၀၀၀) ပြသခဲ့သလိုပဲ၊ အမေရိကန်လူဦးရေရဲ့ ၈၇ ရာခိုင်နှုန်းကို ဘယ်သူဘယ်ဝါဆိုတာ တိတိကျကျ ပြန်ပြီး ဖော်ထုတ် (uniquely re-identified) လို့ ရနေပါတယ်။ ဆွီနီ ဟာ သူမနေထိုင်ရာ ပြည်နယ်အုပ်ချုပ်ရေးမှူး ဆေးရုံတက်ရချိန်မှာ သူ့ရဲ့ ကျန်းမာရေးမှတ်တမ်းကို ဒီနည်းနဲ့ ပြန်လည်ဖော်ထုတ်ပြပြီး ဒီအချက်ကို အလေးအနက်ထား ထောက်ပြခဲ့ပါတယ်။ "Netflix ဆု" ("Netflix Prize") ပြိုင်ပွဲမှာဆိုရင်၊ လူတစ်ဦးချင်းစီရဲ့ ရုပ်ရှင်အပေါ် အဆင့်သတ်မှတ်ပေးထားတဲ့ မှတ်တမ်း (individual movie ratings) တွေကို de-identified လုပ်ပြီး ထုတ်ပြန်ပေးခဲ့ပါတယ်။ ပြီးတော့ ပြိုင်ပွဲဝင်တွေကို လူတစ်ယောက်က ဘယ်ရုပ်ရှင်တွေကို ကြိုက်နိုင်မလဲဆိုတာကို တိတိကျကျ ခန့်မှန်းပေးနိုင်မယ့် machine learning အယ်လ်ဂိုရစ်သမ် (algorithm) တစ်ခု ဖန်တီးဖို့ တောင်းဆိုခဲ့ပါတယ်။ ဒါပေမဲ့ သုတေသီတွေဟာ Netflix ဒေတာဘေ့စ်ထဲက rating ပေးထားတဲ့ ရက်စွဲတွေကို، သုံးစွဲသူတွေက တစ်ခါတလေ သူတို့ရဲ့ နာမည်အရင်းကိုသုံးပြီး အဆင့်သတ်မှတ်လေ့ရှိတဲ့ Internet Movie Database (IMDB) ထဲက ဆင်တူတဲ့ အဆင့်သတ်မှတ်မှု ရက်စွဲတွေနဲ့ တိုက်ဆိုင်စစ်ဆေး (matching) ပြီး၊ အဲဒီသုံးစွဲသူတွေဟာ ဘယ်သူတွေလဲဆိုတာကို ပြန်လည်ဖော်ထုတ်နိုင်ခဲ့ကြပါတယ် (Narayanan and Shmatikov, 2006)။

ဒီလို အန္တရာယ်ကို "အချက်အလက် ကွက်လပ်များကို ယေဘုယျပြုလုပ်ခြင်း" ("generalizing fields") အားဖြင့် အတိုင်းအတာတစ်ခုအထိ လျော့ပါးသက်သာစေနိုင် (mitigated) ပါတယ်။ ဥပမာ - မွေးသက္ကရာဇ် အတိအကျနေရာမှာ မွေးတဲ့ ခုနှစ် သီးသန့် ဒါမှမဟုတ် “အသက် ၂၀ မှ ၃၀ ကြား” ဆိုပြီး ပိုကျယ်ပြန့်တဲ့ အပိုင်းအခြား (broader range) တစ်ခုနဲ့ အစားထိုးလိုက်တာမျိုးပါ။ အချက်အလက် ကွက်လပ် (field) တစ်ခုလုံးကို ဖျက်ပစ်လိုက်ခြင်းဟာလည်း “မည်သည့်အရာမဆို” (“any”) ဆိုပြီး ယေဘုယျပြုလုပ်လိုက်တဲ့ ပုံစံတစ်မျိုးပဲ ဖြစ်ပါတယ်။ ဒါပေမဲ့ ဒီလို ယေဘုယျပြုလုပ်ခြင်း (generalization) တစ်ခုတည်းနဲ့တော့ မှတ်တမ်းတွေကို ပြန်လည်ဖော်ထုတ်ခံရခြင်းကနေ လုံခြုံစိတ်ချရတယ်လို့ အာမခံ (guarantee) လို့မရပါဘူး။ ဥပမာ - zip code 94720 နယ်မြေထဲမှာ အသက် ၉၀ ကနေ ၁၀၀ ကြားရှိတဲ့လူဆိုလို့ တစ်ယောက်တည်းပဲ ရှိနေနိုင်တာမျိုးပါ။ အသုံးဝင်တဲ့ ဂုဏ်သတ္တိ (useful property) တစ်ခုကတော့ "k-အမည်မသိဖြစ်ခြင်း" ("k-anonymity") ဖြစ်ပါတယ်။ ဒေတာဘေ့စ်ထဲက မှတ်တမ်းတစ်ခုစီတိုင်းဟာ တခြားသော မှတ်တမ်းအနည်းဆုံး k-1 ခုနဲ့ ခွဲခြားရခက်နေမယ် (indistinguishable) ဆိုရင်၊ အဲဒီ ဒေတာဘေ့စ်ကို k-အမည်မသိပြုလုပ်ထားသည် (k-anonymized) လို့ ခေါ်ပါတယ်။ (ဆိုလိုတာက လူတစ်ယောက်ကို ရှာရင် အနည်းဆုံး တူညီနေတဲ့ နောက်ထပ်လူ k-1 ယောက် ရှိနေလို့ တိတိကျကျ ဆွဲထုတ်လို့ မရတော့တာပါ။) အကယ်လို့ ဒေတာတွေထဲမှာ ဒီထက်ပိုပြီး ထူးထူးခြားခြား တစ်ဦးတည်းဖြစ်နေတဲ့ (more unique) မှတ်တမ်းတွေ ရှိနေမယ်ဆိုရင်တော့၊ အဲဒီမှတ်တမ်းတွေကို နောက်ထပ် ထပ်ပြီး ယေဘုယျပြုလုပ်ဖို့ (further generalized) လိုအပ်ပါလိမ့်မယ်။

မည်သူမည်ဝါမှန်းမသိအောင် ဖယ်ရှားထားတဲ့ မှတ်တမ်းတွေကို မျှဝေမယ့်အစား နောက်ထပ် ရွေးချယ်စရာ နည်းလမ်းတစ်ခု (alternative) ကတော့၊ မှတ်တမ်းအားလုံးကို လျှို့ဝှက် (private) သိမ်းဆည်းထားပြီး၊ "စုစုပေါင်းကို မေးမြန်းရှာဖွေခြင်း" ("aggregate querying") ကိုသာ ခွင့်ပြုပေးခြင်း ဖြစ်ပါတယ်။ ဒေတာဘေ့စ်ကို မေးမြန်းရှာဖွေမှုတွေ (queries) ပြုလုပ်ဖို့အတွက် API တစ်ခုကို ပံ့ပိုးပေးထားပြီး၊ မှန်ကန်တဲ့ မေးမြန်းမှုတွေ (valid queries) အတွက်ဆိုရင် ဒေတာတွေကို အရေအတွက် (count) ဒါမှမဟုတ် ပျမ်းမျှတန်ဖိုး (average) နဲ့ အကျဉ်းချုံးဖော်ပြထားတဲ့ တုံ့ပြန်မှု (response) တစ်ခု ရရှိပါလိမ့်မယ်။ ဒါပေမဲ့ အဲဒီတုံ့ပြန်မှုက ကိုယ်ရေးကိုယ်တာလုံခြုံမှုဆိုင်ရာ အာမခံချက်တွေကို ချိုးဖောက်နေမယ် (violate certain guarantees of privacy) ဆိုရင်တော့ ဘယ်လိုတုံ့ပြန်မှုကိုမှ ပေးမှာမဟုတ်ပါဘူး။ ဥပမာအနေနဲ့၊ ကူးစက်ရောဂါဗေဒပညာရှင် (epidemiologist) တစ်ယောက်ကို zip code တစ်ခုစီမှာရှိတဲ့ ကင်ဆာရောဂါသည် ရာခိုင်နှုန်းကို မေးမြန်းခွင့်ပြုနိုင်ပါတယ်။ လူအရေအတွက် အနည်းဆုံး n ယောက်ရှိတဲ့ zip code တွေအတွက် ရာခိုင်နှုန်းတစ်ခုကို ပေးပါလိမ့်မယ် (ကိန်းဂဏန်း အတိအကျမဖြစ်စေဖို့ ကျပန်းဆူညံသံ - random noise - လို့ခေါ်တဲ့ အပြောင်းအလဲ နည်းနည်း ထည့်ပေးထားပါလိမ့်မယ်)။ ဒါပေမဲ့ လူအရေအတွက် n ယောက်ထက်နည်းတဲ့ zip code တွေအတွက်ကတော့ ဘယ်လိုအဖြေမှ ပေးမှာမဟုတ်ပါဘူး။

မေးမြန်းမှု အများအပြား (multiple queries) ကို အသုံးပြုပြီး မည်သူမည်ဝါဖြစ်ကြောင်း ဖုံးကွယ်ထားမှုကို ချိုးဖောက်ဖော်ထုတ်ခြင်းကနေ ကာကွယ်ဖို့အတွက် ဂရုစိုက်ရပါမယ်။ ဥပမာ - “အသက် ၃၀-၄၀ ကြား XYZ ကုမ္ပဏီ ဝန်ထမ်းများ၏ ပျမ်းမျှလစာနှင့် အရေအတွက်” ဆိုတဲ့ မေးမြန်းချက်က [$81,234, 12] ဆိုတဲ့ အဖြေကိုပေးပြီး၊ “အသက် ၃၀-၄၁ ကြား XYZ ကုမ္ပဏီ ဝန်ထမ်းများ၏ ပျမ်းမျှလစာနှင့် အရေအတွက်” ဆိုတဲ့ မေးမြန်းချက်က [$81,199, 13] ဆိုတဲ့ အဖြေကို ပေးတယ်ဆိုပါစို့။ အကယ်လို့ ကျွန်တော်တို့က LinkedIn ကိုသုံးပြီး XYZ ကုမ္ပဏီမှာရှိတဲ့ အသက် ၄၁ နှစ်အရွယ် ဝန်ထမ်းတစ်ယောက်တည်းကို ရှာတွေ့သွားမယ်ဆိုရင်၊ သူဟာ ဘယ်သူလဲဆိုတာကို ကျွန်တော်တို့ အောင်မြင်စွာ ဖော်ထုတ်နိုင်သွားပြီဖြစ်ပြီး၊ အဖြေတွေအားလုံးဟာ လူ ၁၂ ယောက်နဲ့အထက် ပါဝင်နေပေမယ့်လည်း သူ့ရဲ့လစာ အတိအကျကို ကျွန်တော်တို့ တွက်ချက်နိုင်သွားပါပြီ။ ဒီလိုမျိုး မဖြစ်အောင် ကာကွယ်ဖို့အတွက် စနစ်ကို ဂရုတစိုက် ဒီဇိုင်းဆွဲရပါမယ်။ မေးမြန်းနိုင်တဲ့ မေးခွန်းတွေအပေါ် ကန့်သတ်ချက် (limits on the queries) (ဥပမာ - တစ်ခုနဲ့တစ်ခု မထပ်နေတဲ့ ကြိုတင်သတ်မှတ်ထားသော အသက်အပိုင်းအခြားတွေကိုသာ မေးခွင့်ပြုတာမျိုး) နဲ့ ရလဒ်တွေရဲ့ တိကျမှု (precision of the results) (ဥပမာ - အပေါ်က မေးခွန်းနှစ်ခုစလုံးအတွက် အဖြေကို “$81,000 ဝန်းကျင်” လို့ပဲ ပေးလိုက်တာမျိုး) တွေကို ပေါင်းစပ်အသုံးပြုရပါမယ်။

ပိုမိုခိုင်မာတဲ့ အာမခံချက်တစ်ခုကတော့ "ကွဲပြားခြားနားသော ကိုယ်ရေးကိုယ်တာလုံခြုံမှု" ("differential privacy") ပဲ ဖြစ်ပါတယ်။ ၎င်းက တိုက်ခိုက်သူအနေနဲ့ queries အများကြီးလုပ်နိုင်ပြီး တခြားဆက်စပ်နေတဲ့ ဒေတာဘေ့စ်တွေ (linking databases) ကို ဝင်ရောက်ကြည့်ရှုခွင့် ရနေရင်တောင်မှ၊ ဒေတာဘေ့စ်ထဲက ဘယ်လူတစ်ဦးတစ်ယောက်ကိုမှ ပြန်လည်ဖော်ထုတ်လို့ မရနိုင်ဘူးဆိုတာကို သေချာစေပါတယ်။ ဒီ query တွေရဲ့ တုံ့ပြန်မှုဟာ ရလဒ်ထဲကို ဆူညံသံ အနည်းငယ် ပေါင်းထည့်ပေးတဲ့ ကျပန်း အယ်လ်ဂိုရစ်သမ် (randomized algorithm) တစ်ခုကို အသုံးပြုထားပါတယ်။ ဒေတာဘေ့စ်တစ်ခု D၊ အဲဒီဒေတာဘေ့စ်ထဲက မှတ်တမ်းတစ်ခု r၊ မေးမြန်းမှု Q နဲ့ အဲဒီမေးမြန်းမှုအတွက် ဖြစ်နိုင်ခြေရှိတဲ့ အဖြေ y တို့ကို ပေးထားတယ်ဆိုပါစို့။ အကယ်လို့ ကျွန်တော်တို့က မှတ်တမ်း r ကို ထည့်လိုက်တဲ့အခါ တုံ့ပြန်မှု y ဖြစ်ပေါ်လာနိုင်ခြေရဲ့ လော့ဂ်တန်ဖိုး (log probability) ဟာ ε (အက်ပစီလွန် - epsilon) ထက် ပိုပြီး ပြောင်းလဲသွားခြင်းမရှိဘူးဆိုရင်၊ အဲဒီဒေတာဘေ့စ် D မှာ ε–differential privacy ရှိတယ်လို့ ကျွန်တော်တို့ ပြောနိုင်ပါတယ်။

| log P(Q(D)=y) - log P(Q(D+r)=y)| ≤ ε.

တစ်နည်းအားဖြင့် ပြောရရင်၊ လူတစ်ယောက်ဟာ ဒေတာဘေ့စ်ထဲမှာ ပါဝင်ဖို့ ဆုံးဖြတ်သည်ဖြစ်စေ၊ မဆုံးဖြတ်သည်ဖြစ်စေ သူများတွေ ရရှိနိုင်တဲ့ အဖြေတွေအပေါ် သိသိသာသာ ကွဲပြားမှု (appreciable difference) မဖြစ်စေပါဘူး။ ဒါကြောင့်မို့လို့ ပါဝင်ဖို့အတွက် ကိုယ်ရေးကိုယ်တာလုံခြုံမှုအရ တွန့်ဆုတ်စရာ (privacy disincentive) မရှိတော့ပါဘူး။ ဒေတာဘေ့စ် အများအပြားကို ဒီ differential privacy ရရှိအောင် အာမခံနိုင်ဖို့ ဒီဇိုင်းဆွဲထားကြပါတယ်။

အခုအချိန်အထိ ဗဟိုဒေတာဘေ့စ် (central database) တစ်ခုကနေ de-identified လုပ်ထားတဲ့ ဒေတာတွေကို မျှဝေတဲ့ ကိစ္စကို ကျွန်တော်တို့ စဉ်းစားသုံးသပ်ခဲ့ပါတယ်။ "ပူးပေါင်းသင်ယူခြင်း" ("federated learning") (Konečný et al., 2016) လို့ခေါ်တဲ့ ချဉ်းကပ်နည်းမှာတော့ ဗဟိုဒေတာဘေ့စ် မရှိပါဘူး။ အဲဒီအစား သုံးစွဲသူတွေဟာ ကိုယ်ပိုင်ဒေတာတွေကို လျှို့ဝှက်ထားနိုင်တဲ့ ကိုယ်ပိုင် နေရာခံဒေတာဘေ့စ်တွေ (local databases) ကိုပဲ ထိန်းသိမ်းထားကြပါတယ်။ ဒါပေမဲ့ သူတို့ဟာ သူတို့ရဲ့ ဒေတာတွေနဲ့ ပိုကောင်းအောင် လုပ်ထားတဲ့ machine learning မော်ဒယ်တစ်ခုရဲ့ ကန့်သတ်ချက်တန်ဖိုးတွေ (parameters) ကိုတော့ ကိုယ်ရေးကိုယ်တာ ဒေတာတွေ ပေါက်ကြားနိုင်တဲ့ အန္တရာယ် (risk of revealing) မရှိဘဲ မျှဝေနိုင်ကြပါတယ်။ ဥပမာအနေနဲ့ သုံးစွဲသူတွေ သူတို့ဖုန်းထဲမှာပဲ အလုပ်လုပ်နိုင်တဲ့ အသံနားလည်မှု အက်ပ်လီကေးရှင်း (speech understanding application) တစ်ခုကို မြင်ယောင်ကြည့်ပါ။ အဲဒီအက်ပ်ထဲမှာ အခြေခံ အာရုံကြောကွန်ရက် (baseline neural network) တစ်ခု ပါဝင်ပြီး၊ သုံးစွဲသူရဲ့ဖုန်းကနေ ကြားရတဲ့ စကားလုံးတွေကို သုံးပြီး ဖုန်းထဲမှာတင် နေရာခံ လေ့ကျင့်မှု (local training) လုပ်ခြင်းအားဖြင့် အဲဒီကွန်ရက်ကို ပိုကောင်းအောင် လုပ်ပါတယ်။ အက်ပ်ပိုင်ရှင်တွေက သုံးစွဲသူတချို့ (a subset of the users) ဆီကနေ သူတို့ဆီမှာ ပိုကောင်းလာတဲ့ နေရာခံ ကွန်ရက်ရဲ့ parameter တန်ဖိုးတွေကို အချိန်အပိုင်းအခြားအလိုက် တောင်းယူ (poll) ပါလိမ့်မယ်၊ ဒါပေမဲ့ သူတို့ရဲ့ ကုန်ကြမ်းဒေတာ (raw data - ဥပမာ အသံဖိုင်တွေ) ကို လုံးဝ မတောင်းပါဘူး။ အဲဒီ parameter တန်ဖိုးတွေကို ပေါင်းစပ်လိုက်တဲ့အခါ ပိုမိုကောင်းမွန်တဲ့ မော်ဒယ်အသစ်တစ်ခုကို ရရှိလာပြီး၊ အဲဒီမော်ဒယ်ကို သုံးစွဲသူအားလုံးဆီကို ပြန်ဖြန့်ဝေပေးပါတယ်။ ဒါကြောင့် သုံးစွဲသူအားလုံးဟာ တခြားသူတွေရဲ့ ဖုန်းတွေမှာ လေ့ကျင့်ထားတဲ့ အကျိုးကျေးဇူး (benefit of the training) တွေကို ရရှိသွားကြပါတယ်။ (ဆိုလိုတာက ဒေတာတွေက ဖုန်းထဲက မထွက်သွားဘဲ၊ သင်ယူထားတဲ့ အသိဉာဏ်လေးတွေကိုပဲ စုပေါင်းပြီး မော်ဒယ်အသစ်ကို ပိုတော်အောင် လုပ်လိုက်တာပါ။)

ဒီစနစ်က ကိုယ်ရေးကိုယ်တာလုံခြုံမှုကို ထိန်းသိမ်းထား (preserve privacy) နိုင်ဖို့အတွက်၊ သုံးစွဲသူတစ်ဦးစီက မျှဝေလိုက်တဲ့ မော်ဒယ် parameter တွေကို နောက်ကြောင်းပြန် ပြုပြင်ဖန်တီးခြင်း (reverse-engineered - ရလဒ်မှတစ်ဆင့် မူလဒေတာကို ပြန်လည်ဖော်ထုတ်ခြင်း) မလုပ်နိုင်ဘူးဆိုတာကို ကျွန်တော်တို့ အာမခံနိုင်ဖို့ လိုပါတယ်။ အကယ်လို့ ကျွန်တော်တို့က parameter အကြမ်း (raw parameters) တွေကို ဒီအတိုင်း ပို့လိုက်မယ်ဆိုရင်၊ ၎င်းတို့ကို စစ်ဆေးနေတဲ့ တိုက်ခိုက်သူ (adversary) တစ်ယောက်က၊ ဥပမာ- သုံးစွဲသူရဲ့ဖုန်းမှာ ဘယ်လို စကားလုံးမျိုးကို ကြားခဲ့ရတယ် ဆိုတာကို ကောက်ချက်ချ (deduce) သွားနိုင်တဲ့ အခွင့်အရေး ရှိနေပါတယ်။ ဒီအန္တရာယ်ကို ဖယ်ရှားပစ်နိုင်တဲ့ နည်းလမ်းတစ်ခုကတော့ "လုံခြုံစွာ စုစည်းပေါင်းစပ်ခြင်း" ("secure aggregation") ပါပဲ (Bonawitz et al., 2017)။ အခြေခံသဘောတရားကတော့ ဗဟိုဆာဗာအနေနဲ့ နေရာအနှံ့က သုံးစွဲသူ (distributed user) တစ်ဦးစီဆီကနေ parameter တန်ဖိုး အတိအကျကို သိစရာမလိုပါဘူး။ မေးမြန်းထားတဲ့ သုံးစွဲသူအားလုံးဆီကနေ parameter တစ်ခုချင်းစီအတွက် ပျမ်းမျှတန်ဖိုး (average value) ကိုသာ သိဖို့ လိုပါတယ်။ ဒါကြောင့် သုံးစွဲသူတစ်ဦးစီက သူတို့ရဲ့ parameter တန်ဖိုးတွေကို အတုအယောင် ကိန်းဂဏန်းတစ်ခု (unique mask) ပေါင်းထည့်ခြင်းဖြင့် ဖုံးကွယ် (disguise) ထားနိုင်ပါတယ်။ အဲဒီပေါင်းထည့်လိုက်တဲ့ mask တွေအားလုံးရဲ့ စုစုပေါင်း ပေါင်းလဒ်က သုည ဖြစ်နေသရွေ့၊ ဗဟိုဆာဗာအနေနဲ့ မှန်ကန်တဲ့ ပျမ်းမျှတန်ဖိုးကို တွက်ချက်နိုင်ပါလိမ့်မယ်။ (ဥပမာ - လူ ၃ ယောက်က လစာ ၅၀၊ ၆၀၊ ၇၀ ရတယ်ဆိုပါစို့။ သူတို့က +၁၀၊ -၅၊ -၅ ဆိုတဲ့ mask တွေ ထည့်ပြီး ၆၀၊ ၅၅၊ ၆၅ လို့ ပို့လိုက်မယ်။ ဗဟိုဆာဗာက ပေါင်းလိုက်ရင် ၁၈၀ ရပြီး ပျမ်းမျှ ၆၀ ဆိုတာ မှန်ကန်စွာ သိပေမယ့် တစ်ယောက်ချင်းစီရဲ့ လစာအမှန်ကိုတော့ မသိတော့ပါဘူး။) လုပ်ထုံးလုပ်နည်း (protocol) ရဲ့ အသေးစိတ်အချက်အလက်တွေက ဒါဟာ ဆက်သွယ်ရေးပိုင်းအရ ထိရောက်မှု (efficient in terms of communication) ရှိစေဖို့ (ပေးပို့လိုက်တဲ့ ဘစ် - bits တွေရဲ့ ထက်ဝက်တောင်မကတာက masking နဲ့ဆိုင်နေပါတယ်)၊ သုံးစွဲသူတချို့ ပြန်လည်မတုံ့ပြန်နိုင်တဲ့အခါ (failing to respond) မှာလည်း ခိုင်ခံ့စွာ ဆက်လက်အလုပ်လုပ်နိုင်ဖို့ (robust) နဲ့၊ ရန်သူ သုံးစွဲသူတွေ၊ ခိုးနားထောင်သူတွေ (eavesdroppers) သို့မဟုတ် ရန်သူ ဗဟိုဆာဗာကို ရင်ဆိုင်ရရင်တောင် လုံခြုံစိတ်ချမှု (secure) ရှိစေဖို့ သေချာအောင် လုပ်ဆောင်ပေးပါတယ်။


REF:

Stuart Russell နဲ့ Peter Norvig 

“Artificial Intelligence: A Modern Approach, Fourth Edition”

Chapter 28 Philosophy, Ethics, and Safety of AI

28.3.2 Surveillance, security, and privacy, pp.1041-1043