Theory
જે શબ્દો જોઈશે
Machine learning ની શબ્દાવલિ નાની છે, અને એને ચોકસાઈથી વાપરવાથી બધું વધુ સ્પષ્ટ બને છે. Placement ના dataset માં, આગાહી કરવા માટે તમે જે columns વાપરો છો (marks, attendance, projects) એનું એક નામ છે, જે વસ્તુની આગાહી કરો છો (placement થયું કે નહીં) એનું બીજું નામ છે, અને data ને વહેંચવાની રીતનાં પણ પોતાનાં નામ છે.
આ પાઠ એ શબ્દો પાકા કરે છે, એટલે કે features, labels, training/test/validation data, અને પછી એ બે નિષ્ફળતાઓ સમજાવે છે જેનાથી દરેક model એ બચવાનું હોય છે: overfitting અને underfitting. આ શબ્દાવલિ બરાબર બેસી જાય પછી બાકીનું ML ઘણું સહેલાઈથી વંચાય છે.
At a glance
| શબ્દ | અર્થ | Placement નો દાખલો |
|---|---|---|
| Dataset | દાખલાઓનો આખો સંગ્રહ | બધા વિદ્યાર્થીઓના રેકોર્ડ |
| Features | આગાહી કરવા વપરાતાં input ચલ | Marks, attendance, projects |
| Labels | પહેલેથી ખબર હોય એવો સાચો જવાબ (લક્ષ્ય) | Placement: હા કે ના |
| Training data | જેમાંથી model શીખે છે તે ભાગ | ધારો કે 70 ટકા વિદ્યાર્થીઓ |
| Validation data | વિકાસ દરમિયાન model ને સુધારવા વપરાતો ભાગ | Settings સરખાવવા માટેનો ટુકડો |
| Test data | અંતિમ કામગીરી માપવા અલગ રાખેલો ભાગ | તાલીમમાં model એ ક્યારેય ન જોયા હોય એવા વિદ્યાર્થીઓ |
Theory
Data ને વહેંચવું કેમ પડે
Model જે data માંથી શીખ્યું હોય એ જ data પર એની પરીક્ષા ક્યારેય ન લેવાય; એ તો વિદ્યાર્થીઓને પરીક્ષાના પ્રશ્નો અગાઉથી આપી દેવા જેવું થાય. એટલે dataset ને વહેંચવામાં આવે છે.
Model training data માંથી શીખે છે. Test data તમે અલગ રાખો છો, જે તાલીમ દરમિયાન એ ક્યારેય જોતું નથી, અને એના પરથી માપો છો કે નવા કિસ્સાઓમાં model કેટલું સારું કામ કરે છે; ખરેખર ભાત શીખાઈ છે કે નહીં એની એ જ એકમાત્ર પ્રામાણિક કસોટી છે. Validation data એ વધારાનો ટુકડો છે જે વિકાસ દરમિયાન model ને સુધારવા અને settings પસંદ કરવા વપરાય છે, જેથી test સેટ છેક છેલ્લે સુધી અડ્યા વગરનો રહે. એક ભાગ પર તાલીમ, બીજા ભાગ પર પરીક્ષા: આ અલગાવ પાયાનો છે.
Theory
Overfitting અને underfitting
દરેક model સામે બે સામસામી નિષ્ફળતાઓ ઊભી હોય છે.
Overfitting: model training data ને વધુ પડતું શીખી જાય છે, અને સામાન્ય ભાતને બદલે એનો ઘોંઘાટ તથા લઢણો પણ ગોખી લે છે. એ training data પર ઝળહળતા ગુણ મેળવે છે પણ નવા data પર નબળું પડે છે, એટલે કે એ સામાન્યીકરણ કરી શક્યું નહીં. જાણે એવો વિદ્યાર્થી જેણે જૂનાં પેપર શબ્દેશબ્દ ગોખી લીધાં હોય અને પ્રશ્નો બદલાતાં જ ગૂંચવાઈ જાય.
Underfitting: model ખરી ભાત પકડવા માટે વધુ પડતું સરળ હોય છે, એટલે એ training data પર પણ નબળું રહે છે, નવા data ની તો વાત જ જવા દો. જાણે એવો વિદ્યાર્થી જેણે એટલું ઓછું વાંચ્યું કે વિષય જ સમજાયો નહીં.
ધ્યેય આ બંનેની વચ્ચે છે: એવું model જે સાચી ભાત પકડે અને તેથી નહીં જોયેલા data પર પણ સારું સામાન્યીકરણ કરે.
Formula
Overfit ગોખે છે; underfit વધુ પડતું સરળ કરે છે
યાદ રાખવાની ચોખ્ખી રીત: overfit થયેલા model એ વધુ પડતી વિગત શીખી લીધી છે (ઘોંઘાટ સહિત), એટલે એ training data પર છવાઈ જાય છે પણ નવા data પર પડી ભાંગે છે; એણે સમજ્યું નહીં, ગોખ્યું. Underfit થયેલા model એ બહુ ઓછું શીખ્યું છે, એટલે એ બધે નિષ્ફળ જાય છે, training data પર પણ.
Overfitting ની ઓળખ મોટું અંતર છે: training data પર ઉત્તમ, test data પર નબળું. Underfitting બંને પર નબળા દેખાવ તરીકે બહાર આવે છે. એટલે જ તમે test સેટ અલગ રાખો છો; એના વગર તો overfitting પકડાય પણ નહીં.
Quiz
એક model training data પર 99 ટકા ગુણ મેળવે છે પણ નહીં જોયેલા test data પર ફક્ત 60 ટકા. મોટે ભાગે શું બન્યું હશે?
- Underfitting, કારણ કે 60 ટકા ઓછા કહેવાય
- Overfitting: એ training data ને વધુ પડતું શીખી ગયું (ઘોંઘાટ સહિત) અને નવા data પર સામાન્યીકરણ કરી શકતું નથી
- Model સંપૂર્ણ છે, કારણ કે training ની ચોકસાઈ ઊંચી છે
- કશું ખોટું નથી; ફક્ત training ની ચોકસાઈ જ મહત્ત્વની છે
Show the answer
Overfitting: એ training data ને વધુ પડતું શીખી ગયું (ઘોંઘાટ સહિત) અને નવા data પર સામાન્યીકરણ કરી શકતું નથી
મોટું અંતર, એટલે કે training data પર ઉત્તમ (99 ટકા) પણ નહીં જોયેલા test data પર ઘણું નબળું (60 ટકા), એ overfitting ની આગવી નિશાની છે: model એ સામાન્ય ભાતને બદલે training data નો ઘોંઘાટ અને લઢણો ગોખી લીધાં, એટલે એ સામાન્યીકરણ કરી શકતું નથી. વિકલ્પ A ખોટો છે: underfitting હોય તો training અને test બંને પર દેખાવ નબળો હોય, પણ અહીં training નો દેખાવ ખૂબ ઊંચો છે. વિકલ્પ C એક જાળ છે: એકલી ઊંચી TRAINING ચોકસાઈ સફળતા નથી; મહત્ત્વ નવા data પરના દેખાવનું છે, જે અહીં નબળો છે. વિકલ્પ D એ જ ભૂલ છે જેની સજા overfitting આપે છે: ફક્ત training data પરથી ચુકાદો આપવાથી સામાન્યીકરણની નિષ્ફળતા ઢંકાઈ જાય છે, અને એટલે જ test સેટ અલગ રખાય છે. Train અને test વચ્ચેનું મોટું અંતર એટલે overfitting.
Think first
Test સેટ સાવ અલગ જ કેમ રાખવો પડે?
તાલીમ દરમિયાન model એ test data ક્યારેય ન જુએ એ આટલું અગત્યનું કેમ છે? વિચારીને પછી tap કરો.
Show the answer
કારણ કે test સેટનો આખો હેતુ નવા, નહીં જોયેલા data ની નકલ કરવાનો છે, અને એ ત્યારે જ સચવાય જ્યારે model એ ખરેખર ક્યારેય એને જોયો ન હોય; નહીં તો તમારો કામગીરીનો અંદાજ ખોટી રીતે ફૂલેલો હોય.
જ્યારે model ખરી દુનિયામાં મુકાય છે, ત્યારે એની સામે એવા કિસ્સા આવે છે જે એણે શીખતી વખતે જોયા જ નહોતા, અને અગાઉથી જાણવા જેવી એક જ વાત હોય છે: એ કિસ્સાઓમાં એ કેટલું સારું કરશે? Test સેટ ભવિષ્યના પ્રતિનિધિ તરીકે ઊભો રહીને એ જવાબ આપે છે: તમે training data પર model ને તાલીમ આપો, પછી અલગ રાખેલા test data પર એને ચકાસો, જેનો તાલીમમાં કોઈ ભાગ નહોતો.
પણ જો test data આડકતરી રીતે પણ તાલીમમાં ભળી જાય, તો model એ ચોક્કસ દાખલા વ્યવહારમાં ગોખી લીધા હોય. પછી એ સારા ગુણ મેળવે તો એ સામાન્ય ભાત શીખ્યાને કારણે નહીં, પણ જવાબ જોઈ લીધા હોવાને કારણે; અને એ ખોટો આશાવાદી આંકડો ખરું નવું data આવતાં જ પડી ભાંગે.
એટલે જ validation સેટ અલગ ટુકડા તરીકે હયાત છે: વિકાસ દરમિયાન model સુધારવા અને પસંદ કરવા તમે validation data વાપરો છો, જેથી test સેટ છેક છેલ્લે સુધી નિર્મળ અને અડ્યા વગરનો રહે અને પ્રામાણિક અંતિમ પરીક્ષા બની રહે. આ શિસ્ત કડક છે એનું કારણ છે: તમારા કામગીરીના અંદાજની વિશ્વસનીયતા સંપૂર્ણપણે એના પર ટકે છે કે test data ખરેખર નહીં જોયેલો હોય. એને સીલબંધ રાખો, તો જ તમારું મૂલ્યાંકન અર્થપૂર્ણ બને.
Summary
Key takeaways
- Dataset એટલે દાખલાઓનો સંગ્રહ; features એટલે input ચલ અને labels એટલે પહેલેથી ખબર હોય એવા સાચા જવાબ.
- Placement ના data માં features એટલે marks, attendance અને projects, અને label એટલે placement થયું કે નહીં.
- Data વહેંચાય છે: training data (જેમાંથી model શીખે), validation data (વિકાસ દરમિયાન સુધારવા), test data (નહીં જોયેલા દેખાવ માપવા અલગ રાખેલો).
- જે data પર તાલીમ લીધી હોય એના પર ક્યારેય પરીક્ષા ન લેવાય; એક ભાગ પર તાલીમ, બીજા પર કસોટી.
- Overfitting: model training data ને વધુ પડતું શીખી જાય (ઘોંઘાટ સહિત) અને નવા data પર નિષ્ફળ જાય (train પર ઉત્તમ, test પર નબળું).
- Underfitting: model વધુ પડતું સરળ હોય અને training data પર પણ નબળું રહે (બંને પર નબળું).
- યાદ રાખવાની કડી: features અંદર, labels બહાર; overfit ગોખે છે, underfit વધુ પડતું સરળ કરે છે, અને ધ્યેય છે સામાન્યીકરણ.