Machine Learning – 2 – Statistical Learning

Statistical Learning

புள்ளி விவரங்களைக் கொண்டு கற்பதே இயந்திர வழிக்கற்றலின் அடிப்படை. எந்த ஒரு கணிப்பும் தரவுகளாக அளிக்கப்படும் புள்ளி விவரங்களின் அடிப்படையிலேயே அமைகிறது. இத்தகைய புள்ளி விவரங்களைத் திறம்படக் கையாண்டு கணினிக்குக் கற்றுக் கொடுப்பது எப்படி என்று இப்பகுதியில் காணலாம். இதுவே Statistical learning model என்று அழைக்கப்படும்.

Domain set: உள்ளீடாகத் தருகின்ற புள்ளி விவரங்களே இவ்வாறு அழைக்கப்படும். x={…..} என்பது domain set / instance space எனப்படும். இதிலுள்ள ஒவ்வொரு தனித்தனி விவரமும் domain points / instances எனும் பெயரில் அழைக்கப்படும்.

உதாரணத்துக்கு ஒரு 1000 பக்க நோட்டுப்புத்தகத்தின் விலையை எவ்வளவு வைக்கலாம் என ஒரு algorithmn மூலம் கணிப்பதற்கு, இதுவரை நாம் விலை நிர்ணயித்துள்ள நோட்டுப்புத்தகங்களின் பக்கங்கள் இதற்கு உள்ளீடாக அளிக்கப்படுகின்றன.

X = [10, 50, 150, …. 600, 800]

Label set: வெளியீடாக வர வேண்டிய விவரங்களை இது பெற்றிருக்கும். Y = {……..} . உள்ளீடாக இருக்கின்ற தரவுகள் எந்தெந்த வகையின் கீழ் அமையும் எனும் மதிப்புகள் இதில் காணப்படும். இத்தகைய விவரங்களைத் தர உதவுபவர் ‘domain expert’ என்று அழைக்கப்படுவார்.

உள்ளீட்டில் நாம் அளித்த நோட்டுப்புத்தகங்களின் விலைகள் இங்கு காணப்படும்.

Y = [50, 95, 250, …. 750, 999]

Mapping function: மேற்கூறிய இரண்டையும் வைத்துக்கொண்டு உள்ளீட்டுக்கும் வெளியீட்டுக்கும் இடையேயான தொடர்பை ஏற்படுத்தும் வேலையை mapping function (f) செய்கிறது. இதனை வைத்துத் தான் நமது algorithm நம்முடைய தரவுகளைப் பற்றிக் கற்றுக் கொள்கிறது.

f : x → y

f : 10 பக்கங்கள் -> 50 ரூபாய் ; 50 பக்கங்கள் -> 95 ரூபாய் ; 150 பக்கங்கள் -> 250 ரூபாய் ….

Probability Distribution: நாம் கொடுக்கின்ற மாதிரித் தரவுகள் பரவலாக அமைய வேண்டும். வெறும் ஓரிரண்டு தரவுகளை மட்டும் கொடுத்துவிட்டு கணிப்புகள் நிகழ்த்தக் கூடாது. உதாரணத்துக்கு 10 பக்கம் அடுத்து 500 பக்கம் எனுமிரண்டு புத்தகத்தின் விலையை மட்டும் கொடுத்து விட்டு, திடீரென 1000 பக்க புத்தகத்தின் விலையை கணிக்கச் சொன்னால், அந்தக் கணிப்பு தவறாகத் தான் இருக்கும். இது ஓரளவுக்கு சரியாக இருக்க வேண்டுமானால், நாம் பயிற்சி அளிக்கப் பயன்படுத்தும் தரவுகளானது சீரான முறையில் பரவலாக அமைய வேண்டும். அதாவது 10, 50, 150 …. என சீரான முறையில் பல்வேறு புத்தகங்களின் பக்கங்களும், அதற்கான விலைகளும்  கொடுக்கப்பட வேண்டும். இதுவே probability distribution எனப்படும். இதனடிப்படையில் எடுக்கப்படும் முடிவே சரியானதாக இருக்கும்.

Sample data: நாம் தேர்ந்தெடுத்து அனுப்பும் மாதிரித் தரவுகளே sample data அல்லது training data எனப்படும். உதாரணத்துக்கு நம்மிடம் 500 புத்தகங்களின் பக்கங்களும், அதற்கான விலைகளும் இருக்கிறதெனில், அவை அனைத்தையும் கொடுத்துப் பழக்காமல், 0 – 50 பக்கங்கள் கொண்ட புத்தகத்திலிருந்து ஒரு புத்தகத்தின் விலை மற்றும் 50 – 100 பக்கங்கள் கொண்ட புத்தகத்திலிருந்து மற்றொரு புத்தகத்தின் விலை என்பது போன்று நாம் தேர்ந்தெடுத்து அனுப்பும் மாதிரித் தரவுகளே Sample data எனப்படும்.

Learner: நாம் தேர்ந்தெடுத்து அனுப்பியுள்ள மாதிரித் தரவுகளின் அடிப்படையில் புத்தகங்களின் விலையை நிர்ணயிப்பது பற்றிய அறிவை நமது algorithm- வளர்த்துக் கொள்கிறது. அவ்வாறு கற்றுக் கொண்ட algorithm-ஆனது learner என்று அழைக்கப்படுகிறது. (A(S) = Algorithm of sample data)

A (S)

Predictor: Learner வளர்த்துக் கொண்ட அறிவின் மூலம், label செய்யப்படாத புதிய சில புள்ளி விவரங்கள் வரும்போது அவற்றையெல்லாம் எந்தெந்த label-ன் கீழ் அமைக்கலாம் என கணிப்பது Predictor எனப்படும். இதுவே hypothesis / classifier எனும் பல்வேறு பெயர்களில் அழைக்கப்படுகின்றன. (h = hypothesis). அதாவது அதிகபட்சமாக 800 பக்கங்கள் கொண்ட புத்தகத்தின் விலை வரை மட்டும் தான் நமக்குத் தெரியுமெனில், அதற்கு மேல் பக்கங்கள் உயர உயர அதன் விலையை எவ்வளவு வைக்கலாம் என்பதை predictor கணித்துக் கூறும்.

h : x → y

Validation data: ஒரு predictor-ன் கணிப்பு சரியாக உள்ளதா என சோதிப்பது observation எனவும், அதற்கு உதவும் தரவுகள் validation data என்றும் அழைக்கப்படும். ஒரு சிறந்த predictor-ஐத் தேர்வு செய்வதற்கு குறைந்தபட்சம் 30 observation-ஆவது தேவை. அதாவது நாம் 500 sample data-வைக் கையில் வைத்துள்ளோம் என்றால், அவை அனைத்தையும் கொடுத்து learner-ஐக் கற்பிக்காமல், வெறும் 300 தரவுகளை மட்டும் கொடுத்து கற்பிக்க வேண்டும். பின்னர் கற்றுக் கொடுத்த algorithm மூலம் மீதமுள்ள 200 தரவுகளுக்கான விலையை கணிக்கச் சொல்ல வேண்டும். இவ்வாறு ஒரு algorithm சரியாக கணிக்கிறதா இல்லையா என்பதை சோதிப்பதற்கு உதவும் அந்த 200 தரவுகளே validation data எனப்படும். பொதுவாக sample data-வின் 25% validation data-ஆக அமையும்.

Loss / Risk: கணிப்பு எப்போதும் 100% சரியாக அமையாது. அவ்வாறு அமைவது தவறும் கூட. predictor மூலம் எடுக்கப்படும் கணிப்பு உண்மையான மதிப்புடன் எந்த அளவு விகிதத்தில் வேறுபடுகிறது என்பதைக் கணக்கிட்டுக் கூறுவதே risk ஆகும். அதாவது நாம் validation data-ஐக் கொடுத்து சோதிக்கும் போது, நம் கையில் உள்ள உண்மையான மதிப்புக்கும், அதன் கணிப்புக்கும் உள்ள வேறுபாடே ‘இழப்பு’ எனப்படும். உதாரணத்துக்கு 850 பக்கங்கள் கொண்ட நோட்டுப்புத்தகத்தின் விலை 1200 ரூபாய் என நமக்கு ஏற்கனவே தெரிந்தாலும், ஒரு algorithm மூலம் கணிக்கப்படும் கணிப்பானது 1190 ரூபாய் அல்லது 1210 ரூபாய் என்றுதான் இருக்கும். ஏனெனில் இதுவரை அது கற்றுக்கொண்ட புத்தகங்களின் விலையை வைத்து தோராயமாக ஒரு விலையைக் கணிக்கும்போது, அது இவ்வாறுதான் இருக்கும். இதுவே சரியான முறையும் கூட. இந்த கடுகளவு வேறுபாடு இருந்தால்தான், நமது algorithm சரியாக வேலை செய்கிறது என்று அர்த்தம். விடையை மிகத் துல்லியமாகக் கொடுத்தால், அது தரவுகளைக் கற்றுக்கொண்டு கணிப்பு நிகழ்த்தாமல், மனப்பாடம் செய்து கொண்டு ஒப்பிக்கிறது என்றே அர்த்தம் (இதனைப் பற்றி over-fitting-ல் காணலாம்). இதுபோன்ற Risk-ஐ அளவிடுவதில் 2 படிகள் உள்ளன. முதலில் true risk அடுத்து empirical risk.

True Risk : 1200 ரூபாய் மதிப்பு கொண்ட நோட்டுப்புத்தகத்தின் விலையானது 1190 ரூபாய் என கணிக்கப்படும்போது, இடையிலுள்ள 10  ரூபாய் என்பதுதான் உண்மையான risk. இதனை generalization error என்றும் கூறுவர். பொதுப்படையான ஒன்றை உருவாக்குவதால் ஏற்படுகின்ற பிழை எனப் பொருள். ஆனால் இது போன்ற பிழைகளை ஒவ்வொரு தரவிற்க்கும் தனித்தனியாகக் கணக்கிட்டுக் கூறுவதற்கு பதிலாக அவைகளின் சராசரியான empirical risk என்ற ஒன்று கண்டறியப்படுகிறது.  R(h) என்பது Risk of hypothesis ஆகும். அதாவது கணிப்பின் மூலம் எடுக்கப்பட்ட வெளியீடும் h(x), mapping மூலம் அமைய வேண்டிய உண்மையான வெளியீடும் f(x) சமமாக இல்லாத பட்சத்தில், அது ஒரு Risk என்பதையே கீழ்க்கண்ட சூத்திரம் கூறுகிறது.

Empirical risk: சோதனைக்காக நாம் 200 புத்தகங்களை அளிப்பதாக வைத்துக் கொண்டால், அவை ஒவ்வொன்றின் உண்மையான விலைக்கும் – கணிக்கப்படுகின்ற விலைக்குமான வேறுபாட்டைக் கண்டறிந்து, அவற்றை சராசரி எடுப்பதன் மூலம் அனைத்துத் தரவுகளுக்குமான தோராயமான risk ஒன்றை அமைக்கலாம். இதுவே empirical risk ஆகும். இதன் மூலம் கணிக்கப்படுகின்ற புத்தகங்களின் விலையானது தோராயமாக இவ்வளவு ரூபாய் வேறுபாட்டில் அமைந்திருக்கும் என நம்மால் வரையறுத்துக் கூற முடியும்.

Empirical Risk Minimization : நமது சோதனைக்காக பல்வேறு algorithms கொண்டு உருவாக்கப்பட்ட பல்வேறு predictor-களில் சிறந்ததைக் கண்டறிய validation data-வைக் கொடுத்து ஒவ்வொரு கணிப்பானும் ஆராயப்படுகிறது. பல்வேறு observations மூலம் ஒவ்வொன்றிலும் உள்ள இழப்பின் சராசரியானது கண்டுபிடிக்கப்படுகிறது.  இத்தகைய சராசரி இழப்பின் மதிப்புகளில் எதனுடைய மதிப்பு மிகக் குறைவாக உள்ளதோ அதனைக் கண்டுபிடிப்பதே Empirical Risk Minimization எனப்படும். இதற்கான சூத்திரம் பின்வருமாறு. இதில் arg min என்பது argument of minimum எனப் பொருள்படும். இவ்வாறு கண்டறியப்பட்ட மதிப்பினை, ஒவ்வொரு algorithm-ம் தனக்கென்றே கொண்டுள்ள ஒருசில parameters கொண்டு அளவிடுகிறது. அதன் பின்னரே இந்தக் கணிப்பினை எவ்வளவு தூரம் நம்பலாம், இதனால் கணிக்கப்படும் மதிப்பு எந்த அளவுக்குத் துல்லியமாக இருக்கும் என்பது போன்ற விஷயங்களெல்லாம் கணக்கிட்டுக் கூறுகிறது. இதைப் பற்றி PAC Model-ல் காணலாம்.

%d bloggers like this: