Theory
કહેવડાવવાને બદલે શીખવું
ધારો કે તમારે આગાહી કરવી છે કે કયા વિદ્યાર્થીઓનું placement થશે. તમે નિયમો હાથે લખવાનો પ્રયત્ન કરી શકો: જો marks 70 થી વધારે હોય અને projects 2 થી વધારે હોય, તો placement થશે. પણ ખરી લઢણો એટલી બધી ગૂંચવણભરી અને સૂક્ષ્મ હોય છે કે હાથે લખેલા નિયમોમાં એ પકડાય નહીં.
Machine learning (ML) જુદો રસ્તો લે છે: નિયમો programming કરવાને બદલે તમે computer ને એ નિયમો data માંથી શીખવા દો છો, એટલે કે અગાઉના વિદ્યાર્થીઓના દાખલા અને એમનું placement થયું કે નહીં એ પરથી. આ પાઠ ML એટલે શું, એનું life cycle, અને supervised તથા unsupervised learning વચ્ચેનો પાયાનો ભેદ સમજાવે છે.
Theory
Machine learning એટલે શું
Machine learning એટલે computer ને દરેક નિયમ સ્પષ્ટ રીતે programming કરીને આપવાને બદલે એને data માંથી લઢણો શીખતાં શીખવવું. તમે એને દાખલા આપો છો, અને એ inputs ને પરિણામો સાથે જોડતી લઢણો શોધી કાઢે છે, પછી એ લઢણો નવા કિસ્સાઓ પર લગાડે છે.
એમાંથી જ એના ફાયદા નીકળે છે: ML એવી સમસ્યાઓ ઉકેલી શકે છે જે હાથે code કરવા માટે બહુ ગૂંચવણભરી હોય (ચહેરા ઓળખવા, spam ગાળવું), એ જેમ વધુ data જુએ તેમ સુધરે છે, અને એ મોટા પાયે આગાહીઓ આપોઆપ કરી આપે છે. જ્યાં નિયમો માણસ માટે લખવા જેટલા સીધા ન હોય કે છુપાયેલા હોય, પણ દાખલારૂપ data પુષ્કળ હોય, ત્યાં ML ખીલી ઊઠે છે. ખરી સમસ્યાઓનો બહુ મોટો અને વધતો જતો ફાલ આ જ પ્રકારનો છે.
At a glance
| તબક્કો | એમાં શું થાય છે |
|---|---|
| Data ભેગો કરવો | સંબંધિત data ભેગો કરવો (દાખલા તરીકે અગાઉના વિદ્યાર્થીઓની નોંધ) |
| Data તૈયાર કરવો | એને સાફ કરવો: ખૂટતી કિંમતો, outliers અને બંધારણ સંભાળવાં (EDA નાં કૌશલ્યો) |
| Model train કરવું | Model પસંદ કરવું અને એને તૈયાર data માંથી લઢણો શીખવા દેવી |
| મૂલ્યાંકન કરવું | એણે ન જોયો હોય એવા data પર એ કેટલી સારી આગાહી કરે છે તે ચકાસવું |
| Deploy કરવું અને દેખરેખ રાખવી | એને નવા કિસ્સાઓ પર વાપરવું, અને એ સચોટ રહે છે કે નહીં તે તપાસતા રહેવું |
Theory
Supervised અને unsupervised
ML માં સૌથી મોટો ભાગલો એ છે કે તમારા data સાથે labels, એટલે કે જાણીતા સાચા જવાબો, આવે છે કે નહીં.
Supervised learning label વાળો data વાપરે છે: દરેક દાખલા સાથે સાચું પરિણામ પણ હોય છે. તમે model ને અગાઉના વિદ્યાર્થીઓનાં લક્ષણો બતાવો છો અને સાથે એ પણ કે દરેકનું placement થયું કે નહીં, અને એ નવા વિદ્યાર્થીઓ માટે placement ની આગાહી કરતાં શીખે છે. 'Supervision' એટલે એ જ જાણીતા જવાબો, જેમાંથી એ શીખે છે.
Unsupervised learning label વગરનો data વાપરે છે: કોઈ સાચું પરિણામ આપવામાં આવતું નથી. એને બદલે model જાતે જ છુપાયેલી રચના શોધી કાઢે છે, દાખલા તરીકે સરખાપણાના આધારે વિદ્યાર્થીઓને કુદરતી clusters માં વહેંચી દેવા, અને એ પણ ક્યાં જૂથ છે એ કહ્યા વગર. Supervised જાણીતા લક્ષ્યની આગાહી કરતાં શીખે છે; unsupervised તમે જણાવી ન હોય એવી લઢણો શોધી કાઢે છે.
Quiz
તમારી પાસે અગાઉના વિદ્યાર્થીઓનો data છે, જેમાં દરેક નોંધમાં વિદ્યાર્થીનું placement થયું કે નહીં (હા કે ના) એ પણ છે, અને તમે નવા વિદ્યાર્થીઓ માટે placement ની આગાહી કરવા model ને train કરો છો. આ કયા પ્રકારનું machine learning છે?
- Unsupervised, કારણ કે computer જાતે શોધી કાઢે છે
- Supervised, કારણ કે training data જાણીતા પરિણામ (placement હા કે ના) થી label થયેલો છે
- બેમાંથી એકેય નહીં; આગાહી કરવી એ machine learning નથી
- Unsupervised, કારણ કે પરિણામ ફક્ત બે જ છે
Show the answer
Supervised, કારણ કે training data જાણીતા પરિણામ (placement હા કે ના) થી label થયેલો છે
આ supervised learning છે: training data label વાળો છે, અગાઉના દરેક વિદ્યાર્થીની નોંધમાં જાણીતું સાચું પરિણામ (placement: હા કે ના) છે, અને model એ label વાળા દાખલાઓમાંથી શીખીને નવા વિદ્યાર્થીઓ માટે પરિણામની આગાહી કરે છે. વિકલ્પ A ખોટો છે: unsupervised learning label વગરના data સાથે કામ કરે છે અને જાતે રચના શોધે છે; અહીં તો પરિણામો આપેલાં જ છે, અને એ જ supervised ની વ્યાખ્યા છે. વિકલ્પ C ખોટો છે: દાખલાઓમાંથી શીખીને આગાહી કરવી એ તો machine learning નો મુખ્ય પ્રકાર જ છે. વિકલ્પ D વર્ગીકરણ સમજવામાં ભૂલ કરે છે: પરિણામોની સંખ્યા (બે) એને unsupervised બનાવતી નથી; મહત્ત્વનું એ છે કે label વાળા જવાબો શીખવાનું દોરે છે, અને એટલે એ supervised છે. નિર્ણાયક પ્રશ્ન આ છે: training data માં જાણીતા જવાબો છે (supervised) કે નથી (unsupervised)?
Think first
નિયમો હાથે લખવા કરતાં machine learning ક્યારે વધુ સારું?
ક્યારેક તો બે ચાર if-else નિયમો જ સમસ્યા સરસ રીતે ઉકેલી દે છે. તો ML ક્યારે વધુ સારું સાધન છે, અને ક્યારે એ વધુ પડતું ગણાય? વિચારીને પછી tap કરો.
Show the answer
ML ત્યારે પોતાની જગ્યા કમાય છે જ્યારે લઢણો નિયમો તરીકે લખવા માટે બહુ ગૂંચવણભરી કે બહુ છુપાયેલી હોય, પણ દાખલારૂપ data પુષ્કળ હોય; સાદી અને સારી રીતે સમજાયેલી સમસ્યાઓ માટે તો હાથે લખેલા નિયમો જ સહેલા અને સારા છે.
Spam ગાળવાનું જ લો: કોઈ email ને spam બનાવતા સંકેતો અગણિત, સૂક્ષ્મ અને સતત બદલાતા હોય છે, દરેક તરકીબને આવરી લેતા નિયમો કોઈ માણસ લખી કે સાચવી ન શકે, પણ લાખો label વાળા દાખલા (spam કે spam નહીં) ML model ને લઢણો શીખવા દે છે અને spam બદલાય તેમ એને પણ બદલાવા દે છે. ચહેરા ઓળખવા, વસ્તુઓ સૂચવવી, કે ડઝનેક એકબીજા પર અસર કરતાં પરિબળોમાંથી પરિણામની આગાહી કરવી, એ બધામાં પણ એવું જ છે: નિયમો હાથે જાણવા લગભગ અશક્ય હોય છે, છતાં data માંથી શીખી શકાય એવા હોય છે.
બીજી બાજુ, જો સમસ્યાના નિયમો સ્પષ્ટ અને સ્થિર હોય, જેમ કે Celsius ને Fahrenheit માં ફેરવવું, સંખ્યા બેકી છે કે નહીં તે તપાસવું, કે નક્કી કરેલો tax slab લગાડવો, તો સામાન્ય code જ ML કરતાં સહેલો, ઝડપી, ચોક્કસ અને વધુ ભરોસાપાત્ર છે; ત્યાં machine learning વાપરવું એટલે નકામી ગૂંચવણ ઊભી કરવી.
એટલે નિર્ણય બે પ્રશ્નો પર ટકે છે: નિયમો હાથે code કરવા માટે બહુ ગૂંચવણભરી કે છુપાયેલા છે? અને શીખવા માટે પૂરતો પ્રતિનિધિરૂપ data છે? બંનેનો જવાબ હા હોય તો ML શક્તિશાળી છે; જો તર્ક સાદો અને જાણીતો હોય તો સીધા નિયમો જ લખો. સમસ્યા પ્રમાણે સાધન પસંદ કરો: નિયમો જાણી શકાય એમ હોય ત્યારે નિયમો, ન હોય ત્યારે learning.
Summary
Key takeaways
- Machine learning computer ને નિયમો સ્પષ્ટ રીતે programming કરીને આપવાને બદલે data માંથી લઢણો શીખતાં શીખવે છે.
- ફાયદા: એ હાથે code કરવા માટે બહુ ગૂંચવણભરી સમસ્યાઓ ઉકેલે છે, વધુ data સાથે સુધરે છે, અને મોટા પાયે આગાહી આપોઆપ કરે છે.
- સામાન્ય ML life cycle: data ભેગો કરવો, એને તૈયાર અને સાફ કરવો, model train કરવું, એનું મૂલ્યાંકન કરવું, પછી deploy કરીને દેખરેખ રાખવી.
- Supervised learning label વાળો data (જાણીતાં પરિણામો) વાપરીને આગાહી કરતાં શીખે છે, દાખલા તરીકે placement હા કે ના.
- Unsupervised learning label વગરના data માં છુપાયેલી રચના શોધે છે, દાખલા તરીકે વિદ્યાર્થીઓને જૂથોમાં cluster કરવા.
- પુષ્કળ data સાથેની ગૂંચવણભરી અને છુપાયેલી લઢણો માટે ML બંધબેસે છે; સાદા અને જાણીતા નિયમો હાથે લખવા જ સારા.
- યાદ રાખવાની કડી: ML data માંથી શીખે છે; supervised પાસે જવાબ (labels) હોય છે, unsupervised રચના શોધી કાઢે છે.