|
රූපය 1: සාම්ප්රදායික ක්රමලේඛන ක්රියාවලිය |
සාම්ප්රදායික ක්රමලේඛන මෙන් නොව, ML හිදී අපට ඇල්ගොරිතමය හෙවත් විසදුම් ශ්රිතය යෙදීමට යන පද්ධතිය මඟින් ජනනය කරන බොහෝ ආදාන-ප්රතිදාන (input-output) දත්ත ලක්ෂ්යයන් අවශ්ය වේ. මෙම දත්ත භාවිතයෙන් ML ඉගෙනුම් ඇල්ගොරිතමය, අදාළ පද්ධතිය ක්රියාකරන ඇල්ගොරිතමය හෙවත් පද්ධති ශ්රිතය ස්වයංක්රීයව සොයා ගනු ඇත. එබැවින් මෙහිදී, විසඳුමේ ගුණාත්මකභාවය රදා පවතින්නේ ප්රධාන ලෙසම ඉගෙනීමේ ඇල්ගොරිතමය සහ ඉගෙනීමට යොදා ගන්නා දත්තවල ගුණාත්මකබව මතයි. (එනම් දත්ත කට්ටලය තුළ පද්ධතියට අදාළ සියළු අවස්ථා (scenarios) ආවරණය වී තිබිය යුතුය). සාම්ප්රදායික ක්රමලේඛයට සාපේක්ෂව ML ක්රියාවලියට අදියර දෙකක් ඇත,
- ඉගෙනීමේ (Learning) හෙවත් පුහුණුකිරීමේ (Training) අදියරය
- පුරෝකථනය (Prediction) හෙවත් අනුමාන (Inference) අදියරය
|
ඉගෙනීමේ (Learning) හෙවත් පුහුණුකිරීමේ (Training) අදියරය |
|
පුරෝකථනය (Prediction) හෙවත් අනුමාන (Inference) අදියරය රූපය 2: ML ක්රියාවලිය |
මොනවද මේ දත්තවල Features ?
අපි මුලින් ම සදහන් කල පරිදි ML හිදී මිනිස් ක්රියාකරුවකුගේ එක ප්රධාන කාර්යභාරයක් වන්නේ,
"ගැටලුවට සදහා ගැලපෙන සුදුසු අංග (features - ෆීචර්ස්) හඳුනා ගෙන ඒවා දත්තවලින් උකහා ගැනීම "
යන්නයි. මෙම කොටසේදී අපි බලමු දත්තවලින් උකහා ගන්නා Features මොනවද කියලා.
Features යනු මැනිය හැකි නැත්නම් සංඛ්යාමය වටිනාකමක් ඇති දත්තවල පවතින විවිධ ලාක්ෂණික වේ. ML වලදී වඩා සාර්ථක ප්රතිඵල ලබා ගැනීමට නම් වැඩි තොරතුරු ප්රමාණයක් අන්තර්ගත වන, එකිනෙකින් ස්වායක්ත Features තෝරා ගැනීම තීරණාත්මක පියවරකි. Features සාමාන්යයෙන් සංඛ්යාත්මක ය (numeric). පහත උදාහරණය බලන්න.
Uber හෝ PickMe වැනී කුලී රථ සේවයක ගාස්තුව තීරණය කිරීමට භාවිත කරන Features වන්නේ ආරම්භක සහ ගමනාන්තය අතර දුර, දවසේ වේලාව - දවසේ විවිධ වේලාවන්හි විවිධ ගාස්තු ඇති නිසා, සතියේ දිනයක් ද සති අන්තයේ දිනයක් ද යන්න, නිවාඩු දිනයක් ද නැද්ද යන්න, මාර්ග තදබදය, ගමනට යොදාගත් වාහන වර්ගය (ත්රි රෝද රථයක්ද - Uber-Tuk, සාමාන්ය රථයක්ද - Uer-Zip, සුඛෝපබෝගී රථයක්ද - UberGo or UberX) යනාදිය යි. වෙනත් රටවල නම් කාලගුණික තත්ත්වය ආශ්රිත Features වැනි තවත් විවිධ Features යොදා ගනු ලැබේ. එනම් හිම වැටෙනවාද නැද්ද යන්න වැනි සාධකයන් ය. මන්ද හිම වැටෙන විට කුලී රථ ගාස්තු ඉහළ යයි. එබැවින් ML ක්රම භාවිතා කරමින් කුලී රථ ගාස්තු තීරණය කිරීමේ ශ්රිතය පුරෝකථනය කිරීමට ඔබ උත්සාහ කරන්නේ නම් ඔබ භාවිත කල යුතු Features කෙසේ විය යුතුදැයි ඔබට දැන් අවබෝධයක් ඇත.
එනම්
Features යනු වෙනත් ආකාරයකින් කිවහොත්, ඔබ පුරෝකථනය හෝ ඇස්තමේන්තු කිරීමට යන පද්ධතියේ ප්රතිදානය (output) කෙරෙහි බලපාවි යයි අපේක්ෂිත සාධකයන් හෝ විචල්යයන් ය.
එබැවින් ඔබේ ML ගැටලුව big-data හෝ data-science හා සම්බන්ධ ගැටළුවක් නම්, බොහෝ විට ඒ හා සම්බන්ධ Features තෝරා ගැනීම ඉහත කුලී රථ ගාස්තු තීරණය කිරීමේ ගැටළුව හා සමාන වනු ඇත.
Machine Vision (රූප සහ වීඩියෝ - images and videos) ආශ්රිත ML ගැටළු සැලකු විට, එයට විශේෂ වූ
Features ඇත. උදාහරණ ලෙස ඔබට රූපයක පික්සල් අගයන්, රුපයක දාර-කොන්-රවුම් හැඩ (edges, corners and blobs) ආදියේ පිහිටීම, HOG
Features, SIFT
Features, SURF
Features, Optical Flow features ආදිය මෙහිදී
Features ලෙස භාවිත කළ හැකිය. Machine Vision සම්බන්ධ මූලික හැදින්වීමක් මගේ
මෙම ලිපියෙන් ඔබට ලබා ගත හැකිය.
ඒ වගේම ස්වාභාවික භාෂා සැකසීමේදී හෙවත් Natural Language Processing හා සම්බන්ධ ML ගැටලුවලට ඊට ආවේණික විශේෂ වෙනත් Features ඇත.
|
රූපය 3: Machine Vision වල Optical Flow Features |
|
රූපය 4: Machine Vision වල Edge Features |
සරල උදාහරණයක්
සත්ය වශයෙන්ම y = mx + c (නමුත් අප කලින් නොදන්නා) ලෙස හැසිරෙන පද්ධතියක ක්රියා කරන ශ්රිතය හෙවත් ඇල්ගොරිතමය සොයා ගැනීමට අපට අවශ්ය යැයි උපකල්පනය කරන්න. මේ ගැටළුව විසදීම සදහා ML හා සම්බන්ධ එක් ඉගෙනුම් ක්රමයක් (Learning Method එකක්) භාවිත කර බලමු.
පියවර 1:
පද්ධතියට ලබා දිය හැකි මුළු ආදාන පරාසයම (input range) ආවරණය වන පරිදි විවිධ ආදාන (inputs) ලබා දී පද්ධතියෙන් බොහෝ ආදාන-ප්රතිදාන දත්ත ලක්ෂ්ය (input-output data points) ප්රමාණයක් ලබා ගැනීම.
|
රූපය 5: සටහන් කර ගන්නා ලද දත්ත ලක්ෂ්යයන්
|
පියවර 2:
එකතු කරන ලද දත්ත ලක්ෂ්ය භාවිතයෙන් පුහුණුව කිරීමේ ක්රමවේදය (Learning Method) අපි (ML programmer) විසින් තීරණය කරන අතර, ඒ ඇසුරින් පද්ධතිය ක්රියාත්මක වන ශ්රිතය (Driving function) හඳුනා ගැනීම සඳහා පරිගණකයට/ ML ඇල්ගොරිතමයට ම ඉඩ දෙනු ලැබේ.
මෙම උදාහරණයේ දී භාවිත වන්නේ Linear Regression නම් ඒකජ බහුපදයක් සොයා ගැනීම සදහා භාවිත කල හැකි සරළ ML ඉගෙනුම් ඇල්ගොරිතමයකි.
මෙහිදී පද්ධතියේ ශ්රිතය y = mx + c ලෙස මුලින් උපකල්පනය කර, එම සම්බන්ධතාවයේ m සහ c අගයන් නිවැරදිව හඳුනා ගැනීම සිදී කරනු ලබයි. මෙම m සහ c අගයන් සොයා ගැනීමේ කොටස මෙම ගැටලුවට අදාළව ඉගෙනීමේ (Learning) හෙවත් පුහුණුකිරීමේ (Training) අදියරය යි .
m සහ c සෙවීමේ ක්රියාවලියේදී සරලවම සිදු වන්නේ අප (ML programmer) විසින් අර්ථ දක්වන ලද, ගැටලුවට ගැළපෙන යම් කිසි විශේෂිත ශ්රිතයක් (පද්ධතියේ ශ්රිතය වන y = mx + c නොවේ) වන Loss function එකක අගය අවම කිරීම හෝ Cost function එකක අගය උපරිම කිරීමයි (Solving an Optimization problem).
පියවර 3:
මේ වන විට අපි පද්ධතිය ක්රියා කරන ශ්රිතය (Driving Function) සොයා ගෙන ඇති බැවින්, දැන් අපට පද්ධතියට ඕනෑම ආදානයක් (Input) ලබා දී ඊට අදාළ පිළිතුර, නැතිනම් ප්රතිදානය (Output) ලබා ගත හැකිය. මෙය මෙම උදාහරණයට අදාල පුරෝකථනය (Prediction) හෙවත් අනුමාන (Inference) අදියරය ලෙස හැඳින්වේ.
|
රූපය 6: ML ඉගෙනුම් අවධිය (Learning Phase) සහ අනුමාන අවධිය (Regression Phase)
|
සාම්ප්රදායික ක්රමලේඛනයේදී (traditional programming), අප වෙනත් ක්රමයකින් පද්ධතියේ ධාවන ශ්රිතය (Driving Function) සොයා ගත යුතුය. එබැවින් Machine Learning (ML) යනු වචනයේ පරිසමාප්ත අර්ථයෙන් ම පරිගණකය විසින් අප වෙනුවෙන් ඉගෙනීමේ කොටස ඉටු කර දීමේ විධික්රමයකි.
මෙම උදාහරණය ඔබට ML පිළිබඳ දළ අවබෝධයක් ලබා දුන්නා යැයි මම සිතමි. මෙහිදී අප සාකච්චා කළේ ML හි සරලත ම ඉගෙනුම් ක්රමයකි. නමුත් ML හි, වඩාත් සංකීර්ණ ගැටළු විසදීමට සමත් විවිධ ඉගෙනුම් ක්රම පවතී. ඒවා අපි ඉදිරි ලිපිවලින් කතා කරමු.
විවිධ ML ගැටළු වර්ග
ප්රධාන වශයෙන් ML ගැටළු ආකාර දෙකක් තිබේ.
- වර්ගීකරණ ගැටළු (විවික්ත පද්ධති ශ්රිත පුරෝකථනය කිරීම) - Classification problems
- සන්තතික පද්ධති ශ්රිත පුරෝකථනය කිරීමේ ගැටළු - Regression problems
වර්ගීකරණ ගැටළු - Classification problems
වර්ගීකරණ ගැටළුවක් යනු, අපි සෙවීමට යන පද්ධති ශ්රිතයට (Driving/ System function) ගත හැක්කේ ප්රතිදාන අගයන් පරිමිත ප්රමාණයක් පමණක් වන ගැටලුවකි. එනම් පද්ධති ශ්රිතයේ සහවසම හෙවත් Co-domain එක නිඛිල (Integers) හෝ වෙනත් විවික්ත සංඛ්යා කුලකයකි.
උදාහරණයක් ලෙස මිනිසුන්ගේ ස්ලේශ්මල පටල දත්ත අධ්යයනය කර කොවිඩ් 19 (COVID-19) හදුනාගැනීමේ ගැටළුවක් ගත හොත්, එයට තිබිය හැක්කේ ප්රතිදාන (Outputs) දෙකක් පමණි. එනම් කොවිඩ් පොසිටිව් (COVID Positive) හෝ කොවිඩ් නෙගටිව් (COVID Negative) යන්නයි.
වෙනත් වචන වලින් කිවහොත් වර්ගීකරණ ගැටළුවක් හෙවත් Classification ගැටළුවක් යනු විවික්ත ශ්රිතයක් (Discrete Function) පුරෝකථනය කිරීමේ ගැටලුවකි.
|
රූපය 7: වර්ගීකරණ කිරීමක් |
සන්තතික පද්ධති ශ්රිත පුරෝකථනය කිරීමේ ගැටළු - Regression problems
යම් පද්ධතියක ප්රතිදානයට (Output) සන්තතික පරිමාණයෙන් අගයන් ගත හැකි නම් එය Regression ගැටළුවක් ලෙස විසදිය යුතු වේ. එනම් පද්ධති ශ්රිතයේ සහවසම හෙවත් Co-domain එක බොහෝ විට තාත්වික සංඛ්යා (Real numbers) කුලකයයි.
උදාහරණ ලෙස ඉතිහාසික දත්ත මත පදනම්ව සමාගමක කොටස් මිල පුරෝකථනය කිරීම, හෙට දවසේ උෂ්ණත්වය පුරෝකථනය කිරීම වැනි ගැටළු ගත හැකිය. ඉහත අප සාකච්ඡා කළ y=mx+c පද්ධතිය පුරෝකථනය කිරීමේ උදාහරණය ද Regression ගැටළුවකට උදාහරණයකි.
|
රූපය 8: සන්තතික ශ්රිත පුරෝකතනයක්
|
සමහර ML ගැටළු, වර්ගීකරණය (Classification) හෝ සන්තතික ශ්රිත පුරෝකතන (Regression) ගැටළු විය හැකි අතර තවත් සමහර ගැටළු මේ මූලික ගැටළු ආකාර දෙකෙහි මිශ්රණයක් ලෙස තිබිය හැකිය.
උදාහරණයක් ලෙස වස්තු හදුනා ගැනීමේ හෙවත් Object Detection ගැටළුවක් සැලකුවොත් එහි වස්තුව ස්ථානගත කර ගැනීමේ (Object Localization - Finding the Bounding Box) කොටස Regression ගැටළුවක් එකක් වන අතර වස්තුව කුමක්දැයි වෙන් කිරීම (Object classification) Classification ගැටළුවකි.
|
රූපය 9: වස්තු හදුනා ගැනීමේ (Object Detection) ගැටළුවක් |
ප්රධාන ML ඉගෙනුම් ක්රම
අපට කතා කළ හැකි ප්රධාන ML ඉගෙනුම් ක්රම තුනක් තිබේ.
- Supervised Learning - අධීක්ෂණයක් යටතේ ඉගෙනීම
- Unsupervised Learning - අධීක්ෂණය නොකළ ඉගෙනීම
- Reinforcement Learning - වැරදි වලින් ඉගෙනීම
Supervised Learning - අධීක්ෂණයක් යටතේ ඉගෙනීම
මෙම ක්රමයේදී අප (ML programmer) විසින් විවරණය හෙවත් ලේබල් කරන ලද (Annotated/ Labeled) වීශාල ආදාන-ප්රතිදාන (input-output) දත්ත ප්රමාණයක් (Training data-set) ඉගෙනුම් ඇල්ගොරිතමයට ලබා දිය යුතු අතර, ඉගෙනුම් ඇල්ගොරිතමය අප ලබා දුන් දත්තවලට අනුව ආදාන හා ප්රතිදාන අතර ශ්රිතය හෙවත් සම්බන්ධතාවය පුරෝකථනය කරනු ලබයි. ප්රමාණවත් නිරවද්යතාවක් ලැබෙන තුරු නැවත නැවත පුහුණු කිරීම සිදු කල යුතු වේ. නිරවද්යතාව පරික්ෂා කිරීමට වෙනත් දත්ත කට්ටලයක් (Test data-set) තිබිය යුතු ය.
විවරණය හෙවත් ලේබල් කරන ලද දත්ත (Annotated/ Labeled data) යනු, යම් අදානයකට (input) පැමිණිය යුතු ප්රතිදානය (output) සලකුණු කර තිබීමයි. වර්ගීකරණ (Classification) ගැටළු යටතේ අපි කතා කළ කොවිඩ්-19 (COVID-19) පොසිටිව් හෝ නෙගටිව් තීරණය කිරීමේ ගැටලුව මෙම ඉගෙනුම් ක්රමයෙන් විසදන්නේ නම්, ඔබට පුහුණු කිරීමට භාවිත කරන දත්ත කට්ටලය විවරණය හෙවත් ලේබල් කිරීමට (Annotate/ Label) සිදු වේ. එනම් ඔබේ දත්ත කට්ටලයේ එක එක දත්තය ගෙන, "මෙය කොවිඩ් පොසිටිව් සාම්පලයක්", "මෙය කොවිඩ් නෙගටිව් සාම්පලයක්" ලෙස සියලුම දත්ත ඔබට ලේබල් කිරීමට සිදු වනු ඇත. මෙම ඉගෙනුම් ක්රමයේදී ඉගෙනීමෙ කටයුත්ත සිදු කරන්නේ දත්ත කට්ටලයේ ඇති ආදානවල (Input) Features (ලිපියේ මුලින් සාකච්චා කරන ලද) සහ ඒවාට අදාල විවරණ හෙවත් ලේබල් භාවිතයෙනි. එනම් මෙම ඉගෙනුම් ක්රියාවලියට බාහිර අධීක්ෂණයක් (Supervision) අවශ්ය වේ.
👏👏👏
ReplyDelete