இயந்திரவழிக் கற்றல் என்பது தற்போது அதிகமாக வளர்ந்து வருகின்ற ஒரு துறை. ஒரு கணினிக்கு கற்பிப்பது, அதற்கு அறிவு புகட்டுவது, புகட்டப்பட்ட அறிவின் அடிப்படையில் கணினிகளையே முடிவினை மேற்கொள்ளுமாறு செய்வது போன்ற பல்வேறு விஷயங்களை இயந்திரவழிக் கற்றலில் காணலாம். மனிதன் செய்கின்ற வேலையை வெறும் நிரல்கள் எழுதி கணினியைச் செய்யவைப்பதன் பெயர் இயந்திரவழிக் கற்றல் ஆகாது. அதன் பெயர் தானியக்கம் (Automation). மனிதனைப் போன்று கணினிகளை யோசிக்க வைத்து, முடிவுகளையும் அதனை வைத்தே எடுக்க வைப்பது, அவ்வாறு எடுக்கப்படும் முடிவுகள் இயந்திரத்தனமாக அல்லாமல் அறிவின் அடிப்படையில் அமைவதற்கு என்னென்ன செய்ய வேண்டும், அவ்வாறு யோசிக்க வைப்பது எவ்வாறு சாத்தியப்பட்டது, அதிலுள்ள வழிமுறைகள் என்ன, கோட்பாடுகள் என்னென்ன என்பது போன்ற அனைத்தையும் விளக்குவதே இயந்திரவழிக் கற்றல் ஆகும். இவற்றையெல்லாம் செய்வதற்கு வெறும் தகவல் தொழில்நுட்ப அறிவோடு மட்டுமல்லாமல், கணிதம், புள்ளியியல் போன்ற மற்ற துறைகளிலும் சிறிது அடிப்படை அறிவினை வளர்த்துக் கொள்ள வேண்டும். அப்போதுதான் நம்மால் சுலபமாக கணினிக்குக் கற்றுக் கொடுக்க முடியும். மேலும் மாறும் சூழ்நிலைகளுக்கும், தரவுகளுக்கும் ஏற்ப தமது சோதனை முடிவுகளையும், கணிப்புகளையும் மாற்றி வழங்குவதே இயந்திரவழிக் கற்றலின் சிறப்புப் பண்பு ஆகும். இதையே Adaptivity என்று கூறுவர். எந்தெந்த வகையான சூழ்நிலைகள் இயந்திரவழிக் கற்றலுக்கு வழி வகுக்கின்றன என்பதைக் கீழே காணலாம்.
மனிதனுடைய அனுபவ அறிவால் செய்யக்கூடிய செயல்கள்: வாகனம் ஒட்டுவது, ஒருவருடைய குரலைக் கேட்டே ஆளை கணிப்பது போன்றவையெல்லாம் ஒருவர் தன்னுடைய அனுபவ அறிவாலும், புத்தி சாதுர்யத்தாலும் செய்யக் கூடியவை. இவற்றுக்கெல்லாம் நேரடியாக நிரல்கள் எழுதி கணினிக்கு சொல்லித்தர முடியாது. அந்த அனுபவத்தையும் அறிவையும் கொடுத்துத்தான் நாம் கணினியைப் பழக்க வேண்டும். மேலும் எத்துறை சார்ந்த விஷயங்களை நாம் கணினிக்குப் புகட்ட விரும்புகிறோமோ, அத்துறை சார்ந்த வல்லுநர்கள் மூலம் கணினிக்குப் போதிய அறிவினை வழங்க வேண்டும். இதையே domain expertise என்று கூறுவர்.
மனித சக்தியை மீறி செய்ய வேண்டிய செயல்கள்: விண்வெளி, பூகோளம், அறிவியல் போன்ற அனைத்துத் துறைகளிலும் பல்வேறு சோதனைகள் நடத்தப்படுகின்றன. அவை வெற்றியைத் தழுவ வேண்டுமென்றால், ஏற்கெனவே தோல்வியைத் தழுவிய முந்தைய சோதனை முடிவுகளை எடுத்து ஆராய்ந்து வெற்றிக்கான கணிப்பினைக் கூற வேண்டும். உதாரணத்துக்கு மருத்துவத் துறையை எடுத்துக்கொண்டால், பிரசவத்தின்போது பெண்களின் இறப்பு விகிதம் என்பது பாதிக்குப் பாதியாக இருந்தது. இதனைக் குறைப்பதற்கு இதுவரை பிரசவத்தின்போது இறந்த பலகோடிக்கணக்கான பெண்களின் ஆய்வறிக்கைகளை எடுக்க வேண்டும். அவற்றுள் ஒவ்வொரு பெண்ணும் எதனால் இறந்திருக்கிறாள், எத்தனை பெண்கள் ஒரே வகையான காரணத்தால் இறக்கிறார்கள், எத்தனை வகையான காரணங்கள் இறப்புக்கு வழிவகுக்கின்றன என்பது போன்ற விஷயங்களையெல்லாம் கண்டு பிடிக்க வேண்டும். இதெல்லாம் உண்மையிலேயே மனித சக்திக்கு அப்பாற்பட்ட செயல்தான். ஆகவே இவற்றைச் செய்வதற்கு கணினிகளைப் பழக்கி, ஒரே மாதிரியான pattern-ல் இருக்கும் தரவுகளைக் கண்டுபிடிக்கின்றனர். பின்னர் அவற்றை எடுத்து மருத்துவ வல்லுநர்கள் பரிசீலித்து “இறப்புக்கு வழிவகுக்கும் காரணிகள்” என முடிவு செய்கின்றனர். பின்னர் இதன் அடிப்படையில்தான் தற்போது கர்பிணியாக வருகின்ற பெண்களிடம் இவற்றில் ஏதேனும் ஒன்று தென்பட்டால் கூட உடனே அறுவை சிகிச்சை செய்து விடுகின்றனர். ஆகவேதான் தற்போது பாதிக்குப் பாதி பெண்களுக்கு அறுவை சிகிச்சை செய்யப்பட்டாலும், இறப்பு விகிதம் என்பது முழுவதுமாகக் குறைந்து விட்டது.
இயந்திரங்களுக்குக் கற்பிப்பது என்பது “விலங்குகள் எவ்வாறு கற்கின்றன” என்பதை அடிப்படையாக வைத்தே ஆராயப்பட்டது. இதில் பின்வரும் இரு பெரும் கோட்பாடுகள் முக்கியப் பங்கு வகிக்கின்றன.
Bait’s shyness: தம்மை ஈர்க்குமாறு இருக்கும் உணவினைக் கண்டு அஞ்சுதல் என்பதே இதன் பொருள். அதாவது விஷம் தடவப்பட்ட ஆனால் பார்ப்பதற்குக் கவரக்கூடிய வகையில் இருக்கும் சுவையூட்டப்பட்ட உணவுகளைக் கண்டு எலிகள் அச்சம் கொள்ளும். எனவே அவற்றை முழுதாக உட்கொள்வதற்கு முன்னர், உணவின் ஒரு சிறு பகுதியை எடுத்து முதலில் சாப்பிடும். அதனால் தனக்கு யாதொரு பாதிப்பும் இல்லையெனில் உண்ணலாம் என்றும், பதிப்பு நேர்ந்தால் உண்ண வேண்டாம் என்றும் முடிவெடுக்கும். பின்னர் மீண்டும் அதே போன்ற ஒரு உணவினை மறுமுறை காணும்போது, தான் ஏற்கனவே நடத்திய சோதனை முடிவுகளின் அடிப்படையில் உண்ணலாமா வேண்டாமா என முடிவெடுக்கும். இதுவே இயந்திரவழிக் கற்றலிலும் நடைபெறுகிறது. மாபெரும் தரவுகளிலிருந்து ஒரு சிறுபகுதியை எடுத்து கணிணியானது முதலில் ஆராயும். இதுவே sampling எனப்படும். அச்சிறு பகுதி தரவுகள் training data என்று அழைக்கப்படும். அத்தரவுகளை உண்ணலாம் வேண்டாம் என்பது போன்று வகைப்படுத்துவதே labeling எனப்படும். இம்முடிவுகளை வைத்து வருகின்ற புதிய தரவுகளைக் கணிப்பது Predicting the future data எனப்படும். இதுபோன்று பல்வேறு பதங்கள் இயந்திரவழிக் கற்றலில் பயன்படுத்தப்படுகின்றன. ஆனால் இதுபோன்ற தீர்மானங்கள் சிலசமயம் தவறாக மாறிவிடவும் வாய்ப்புள்ளது. இதற்கு ஒரு சிறந்த உதாரணமாக பின்வரும் கோட்பாட்டைக் கூறலாம்.
Pigeon’s superstition: புறாக்களின் தவறான கணிப்பு என்று நாம் இதைக் கூறலாம். ஒருமுறை B.F.Skinner எனும் மனோ தத்துவவியலாளர் புறாக்களை வைத்து ஆய்வு ஒன்றை நடத்தினார். அதில் பல புறாக்களை ஒன்றாக கூண்டிற்குள் வைத்து , அவைகளுக்கு குறிப்பிட்ட கால இடைவெளிகளில் உணவு சென்று சேருமாறு தானியங்கி ஒன்றை அமைத்தார். அதுவும் சரியாக செயல்பட்டு ஒவ்வொரு முறையும் உணவளித்து வந்தது. புறாக்கள் தனக்கு ஒவ்வொருமுறையும் உணவு எப்படி வருகிறது என்பதைக் கண்டுபிடிக்க அந்நேரத்தில் அது என்ன செய்துகொண்டிருந்தது என்பதை கவனிக்கத் தொடங்கியது. அதாவது ஒரு புறா தான் தலையசைக்கும்போதெல்லாம் உணவு வருவதால், தான் தலையசைப்பதால்தான் தனக்கு உணவு வருகிறதென்றும், மற்றொரு புறா அது குதித்துக்கொண்டிருக்கும்போதெல்லாம் உணவு வருவதால் அதனால்தான் உணவு வருகிறதென்றும் நினைத்துக் கொண்டது. ஆனால் இவையிரண்டும் தற்செயலாகத் தொடர்பான ஒன்றே! (temporal correlation) . உண்மையில் பார்த்தால் எந்தஒரு சம்மந்தமும் கிடையாது. ஆனால் புறாவோ இவ்விரண்டுக்கும் தவறான ஒரு தொடர்பினை உண்டாக்கி, அதனடிப்படையில் கணிப்பினை நிகழ்த்தி விடுகிறது. திடீரென தானியங்கி செயல்படும் நேரம் மாற்றப்பட்டு உணவு வரத் தொடங்கியது. ஆனால் இதையறியாப் புறாக்கள் தலையசைத்துப் பார்த்தும், குதித்துப் பார்த்தும் உணவு வராததால், அதன் எடை குறையத் தொடங்கியது. உணவு வருகின்ற நேரத்தை சரியாகக் கணிக்காததே இதற்குக் காரணம். இவ்வாறும் நமது இயந்திரங்களுக்கு நடந்துவிடக்கூடாது. தற்செயலாக நடைபெறும் தொடர்புடைய நிகழ்வுகளின் நிகழ்தகவு அதிகமாக இருந்தால் அதுவே நமது இயந்திரங்கள் நமக்கு அளிக்கும் கணிப்பாக இருந்துவிடக் கூடாது.
எலியினுடைய உதாரணத்தையே மீண்டும் பார்த்தால் அது சாப்பிட்டவுடன், ஒரு மின்சாரக் கம்பியில் அடிபட்டு பாதிப்படைகிறதெனில், இவ்விரண்டுக்கும் எந்த ஒரு தொடர்பும் இல்லையென்பது எலிக்குத் தெரியும். இதுபோன்று ஏலியிடம் காணப்படுகின்ற ஒரு அடிப்படையான அறிவையே நாம் கணினிக்குப் புகட்ட வேண்டும். இதுவே Inductive bios என்று அழைக்கப்படுகிறது. Biosed என்றால் பாரபட்சம் பார்ப்பது, ஒரு தலைப்பட்சமாக இருப்பது என்று பொருள். Inductive bios என்றால் இயந்திரத் தனமான முடிவுகளை அப்படியே ஏற்றுக்கொள்ளாமல் அறிவின் அடிப்படையில் பாரபட்சப் படுத்திப் பார்ப்பது என்று பொருள். இதுபோன்ற அறிவினை கணினிக்கு அளிப்பதற்கு அத்துறை சார்ந்த வல்லுநர்கள் தேவை. அவர்களே domain expert என்று அழைக்கப்படுகின்றனர்.
இயந்திர வழிக்கற்றலைப் பின்வரும் 4 விதங்களில் பிரிக்கலாம்.
1. Supervised vs Unsupervised Learning: ஒரு கணிப்பு நடைபெறுவதற்கு உள்ளீடு என்னவாக இருக்க வேண்டும்; வெளியீடு என்னவாக இருக்க வேண்டும்; இவ்விரண்டையும் எந்தெந்த விதிகளின்படி இணைக்க வேண்டும் போன்ற அனைத்தையும் சொல்லிக்கொடுத்துக் கண்காணிப்பது supervised/structured learning எனப்படும். உதாரணத்துக்கு நாம் கடைவீதிக்குச் சென்று வெண்டைக்காய் வாங்குவதற்கு முன், அதன் நிறத்தைப் பார்த்து அவ்வாறே அடிநுனியை லேசாகக் கிள்ளிப் பார்ப்போம். அது பசுமையாக, மிருதுவாக இருந்தால் வாங்கலாமென்றும், கடினமாக பழுப்பாக இருந்தால் வேண்டாமென்றும் முடிவு செய்வோம்.
- ஒரு வெண்டைக்காயை வாங்கலாமா வேண்டாமா என முடிவு செய்யும் காரணிகளான அதன் நிறம் தன்மை போன்றவை domain set எனப்படும். இவையே X எனும் உள்ளீட்டில் காணப்படும்.
- வாங்கலாம், வேண்டாம் எனும் மதிப்புகள் labels என்றழைக்கப்படும். இவையே Y எனும் வெளியீட்டில் அமையும்.
- ஒரு mapping function –ஆனது உள்ளீட்டில் உள்ள மதிப்புகளையும், வெளியீட்டில் உள்ள மதிப்புகளையும் தொடர்பு செய்யும். மென்மை -> வாங்கலாம், கடினம் -> வேண்டாம், பசுமை -> வாங்கலாம், பழுப்பு -> வேண்டாம். இதுவே rules set எனப்படும். f: X -> Y
- Rules set கற்பித்த விதிகளின் அடிப்படையில் கற்றுக்கொள்வது learner எனப்படும்.
- Learner கற்றுக்கொண்ட விஷயங்களின் அடிப்படையில் புதிதாக வருகின்ற உள்ளீடுகளுக்கு வெளியீடு என்னவாக இருக்கும் என முடிவு செய்வது predictor எனப்படும். அதாவது புதிதாக மற்றொரு வெண்டைக்காயைப் பார்க்கும்போது, அதனை மீண்டும் சோதனை செய்யத் தேவையில்லை. இந்த சோதனை முடிவுகளின் அடிப்படையிலேயே வாங்கலாம், வேண்டாம் என முடிவெடுக்கலாம்.
இதனை classification மற்றும் regression என்று 2 விதமாகப் பிரிக்கலாம். Classification-ல் மதிப்பு ஏதோ ஒரு வகையின் கீழ் அமையும். வெண்டைக்காய் உதாரணத்தில் வாங்கலாம் வேண்டாம் எனும் இரண்டு வகையின் கீழ் அமைவதை இதற்கு உதாரணமாகக் கொள்ளலாம். Regression-ன் மதிப்பு ஒரு உண்மையான முழு மதிப்பாக இருக்கும். வயிற்றிலுள்ள குழந்தையை scan செய்து ஆராய்ந்து அது பிறக்கும்போது எவ்வளவு எடை இருக்கும் என்பதை kg-ல் கணித்துக் கூறுவதை இதற்கு உதாரணமாகக் கொள்ளலாம்.
Unsupervised Learning – ல் வெறும் உள்ளீட்டுக்கான மதிப்புகள் மட்டுமே காணப்படும். வெளியீட்டுக்கான மதிப்பு என்னவாக இருக்குமென்றோ, அது எவ்விதிகளின்படி அமையுமென்றோ எந்தஒரு வரைமுறையும் கிடையாது. வெறும் உள்ளீட்டுக்கான மதிப்புகளை மட்டுமே ஆராய்ந்து, அதிலிருந்து ஒரு pattern-ஐக் கண்டுபிடித்து அதனை வெளியீட்டுக்கான கணிப்பாக நமக்கு வெளிப்படுத்தும். இதனை clustering மற்றும் association எனும் இரண்டு விதமாகப் பிரிக்கலாம். வாடிக்கையாளர்களின் விருப்பத்திற்கு ஏற்றார்போல் விற்பனையாகின்ற பொருட்களைக் கண்டுபிடித்து வகைப்படுத்துவதை clustering-க்கு உதாரணமாகக் கொள்ளலாம். இதில் விற்பனையாகின்ற தரவுகளை மட்டுமே உள்ளீடாக எடுத்துக்கொண்டு, அதன் போக்கிலேயே சென்று விற்பனையின் போக்கினைக் (sales pattern) கண்டுபிடிக்கும். அடுத்து இவ்வாறு கண்டுபிடிக்கப்பட்ட விவரங்களை எடுத்துக்கொண்டு, இதே மாதிரியான வேறு எந்தெந்த பொருட்களின் மீதெல்லாம் வாடிக்கையாளர்களுக்கு விருப்பம் தோன்றும் எனக் கணிப்பதை association-க்கு உதாரணமாகக் கொள்ளலாம். இதன் மூலம் ஒத்த விருப்பங்களின் கீழ் அமையும் பல்வேறு பொருட்களின் விற்பனையை நாம் அதிகரிக்கலாம். இதுவே unsupervised/unstructured learning எனப்படும்.
Structured மற்றும் Unstructured இவை இரண்டுக்கும் இடையில் அமைவது semi-structured learning எனப்படும். அதாவது ஒருசில தரவுகள் label செய்யப்பட்டும், மற்றவை label செய்யப்படாமலும் காணப்படும். உண்மையில் நிகழ்காலத்தில் வருகின்ற தரவுகள் நமக்கு இம்முறையில்தான் இருக்கும். பலகோடிக்கணக்கான தரவுகளை ஆராய்ந்து label செய்வது என்பது சத்தியமற்றது. அவ்வாறே அனைத்தையும் labelசெய்யாமல் விடுவதும் உதவாது. முக்கியமானவை label செய்யப்பட்டாக வேண்டும். இதுபோன்று label செய்யப்பட்டும் செய்யப்படாமலும் இருக்கும் தரவுகளை நாம் மேற்கண்ட இரண்டு விதங்களிலும் ஆராயலாம். மனித/மிருக முகங்களின் கணிப்பு, குரல்களின் கணிப்பு போன்றவை இம்முறையில்தான் அமையும். Structured முறையில் label செய்யப்பட்டவற்றை மட்டும் training data-ஆகக் கொடுத்து, அதனடிப்படையில் மற்றவைகளைக் கணிக்கலாம். Unstructured முறைப்படி label செய்யப்பட்ட மற்றும் செய்யப்படாத அனைத்திலிருந்தும் ஒரு pattern-ஐக் கண்டுபிடித்து அதை வைத்தும் கணிக்கலாம்.
2. Passive vs Active Learning: வருகின்ற தரவுகளை அப்படியே ஏற்றுக்கொண்டு, கொடுக்கப்பட்ட விதிகளின்படி ஆராய்ந்து கற்றுக்கொள்வது passive learning எனப்படும். ஒரு மின்னஞ்சல் spam-ஆ இல்லையா என சோதிப்பதை இதற்கு உதாரணமாகக் கொள்ளலாம். இதில் எவையெல்லாம் spam-ஐக் குறிக்கும் வார்த்தைகள் என்பது கணிணிக்குக் கற்பிக்கப்பட்டுவிடும். எனவே புதிதாக வருகின்ற ஒரு மின்னஞ்சல் இத்தகைய வார்த்தைகளில் ஏதேனும் ஒன்றைக் கொண்டிருந்தால் அதனை spam folder-க்கும், இல்லையெனில் inbox-க்கும் நகர்த்தும்.
திடீரென spam-க்குரிய எந்த ஒரு வார்த்தையையும் கொண்டிராமல், ஆனால் சந்தேகத்திற்குரிய வழக்கத்திற்கு மாறாக ஒரு மின்னஞ்சல் வருகிறதெனில் (anamoly detection), தனது சந்தேகத்தைத் தீர்த்துக்கொள்ளும் பொருட்டு பல்வேறு கேள்விகளை எழுப்பி, அதற்கான விடைகளைப் பயனர்களிடமிருந்து பெற்றுக்கொண்டு அதனடிப்படையில் கற்றலைத் தொடங்குது active learning எனப்படும்.
3. Adversarial Teacher Method: Spam filtering, malware detection, biometric recognition போன்றவற்றிலெல்லாம், ஆசிரியர் போன்று ஒருவர் செயல்பட்டு கொடுக்கப்பட்டுள்ள விதிகள் மீறப்படும்போதோ/சந்தேகிக்கப்படும்போதோ எது சரி எது தவறு என்பதை எடுத்துரைப்பார். வெறும் தரவுகளோடு சேர்த்து இம்முறையிலும் கணினிக்குக் கற்பிக்கப்படும்போது, காரண காரிய முறைப்படி பிரித்து கற்றுக்கொள்வதற்கான வாய்ப்பு அதற்குக் கிடைக்கிறது.
4. Online vs Batch Learning: நிமிடத்திற்கு நிமிடம் மாறுகின்ற தரவுகளைக் கண்காணித்து அதனடிப்படையில் கற்பது online learning எனவும், வரலாற்றுத் தரவுகளை எடுத்துக்கொண்டு அதனடிப்படையில் கற்பது batch learning எனவும் அழைக்கப்படும். Stock broker கணிக்கும் விதத்தை online-க்கு உதாரணமாகவும், மக்கள் தொகை கணிப்பு நடைபெறும் விதத்தை batch-க்கு உதாரணமாகவும் கொள்ளலாம். மக்கள் தொகை கணக்கெடுப்பில் 1970 – 80, 1981 – 90, 1991 – 2000, 2001 – 10 என்பது போன்று பல்வேறு பகுதிகளாகப் பிரிக்கப்பட்டு ஒவ்வொரு 10 வருடத்துக்கும் ஆய்வு நடைபெறுகிறது. இதனடிப்படையில் இனிவரும் வருடங்களுக்கான மக்கள் தொகை கணிப்பு நடைபெறும். இதுவே batch processing-க்கு சிறந்த உதாரணமாக அமையும்.
இயந்திர வழிக்கற்றலில் உள்ள பல்வேறு கோட்பாடுகள் பற்றியும் அவற்றின்படி அமைந்த பல்வேறு வழிமுறைகள் (algorithmns) பற்றியும் இனிவரும் கட்டுரைகளில் காணலாம்.