ஒரு படத்தைப் பார்த்து அது என்னவென்று எப்படி கணினி கண்டுபிடிக்கிறது?

2015 –ஆம் ஆண்டு, அமெரிக்காவில் உள்ள மிஷிகன் மாநிலத்திற்குச் சென்றிருந்தேன். இந்திய உணவு விடுதியில் சாப்பிட்டுவிட்டு, எனக்குப் பக்கத்தில் உள்ள Best Buy  என்ற மின்னணுச் சில்லரை வியாபாரக் கடைக்குச் செல்ல வேண்டியிருந்தது.

அங்கு விடுதியில் வேலை செய்யும் தொழிலாளி ஒருவரிடம் வழி கேட்டேன். அங்கு, மேஜையிலிருந்த ஆண்ட்ராய்டு திறன்பேசியிடம், ’பக்கத்தில் Best Buy எங்கிருக்கிறது?’ என்று ஆங்கிலத்தில் கேட்டார். அவர் கையுறை அணிந்திருந்ததால், இப்படி கூகிள் வரைபடத்துடன் பேசினார்.

சிவராமனோ, மாணிக்கமோ அவர் பெயர் நினைவில்லை. எப்படி கூகிள் வரைபடம், அவருடைய இந்திய ஆங்கிலத்தைப் புரிந்து கொண்டது? சரியாக அந்த விடுதியிலிருந்து கடைக்கு வழியைக் காட்டியது. திறன்பேசியைச் சற்று திருப்பி என்னைப் படிக்கச் சொன்னார் அவர்.

எந்திரக் கற்றலியல் ஒன்றும் எதிர்காலச் சமாச்சாரம் இல்லை. இன்று கூகிளின் பல முயற்சிகளில் எந்திரக் கற்றலியல் மறைந்துள்ளது. சமீபத்திய கூகிள் பிக்ஸல் திறன்பேசி ஒரு செயற்கை நுண்ணறிவை அடிப்படையாகக் கொண்ட முதல் திறன்பேசி என்று ஒரு தொழில்நுட்பக் கட்டுரையில் சமீபத்தில் படிதேன்.

~oOo~

ஆராய்ச்சிக் கட்டுரைகளிலும், சின்னச் சின்ன சோதனைகளில் ஓரளவு வெற்றி பெற்ற இவ்வகைச் செயற்கை நரம்பணு வலையமைப்புகளுக்கு ஒரு திருப்புமுனையாக இருந்த வருடம் – 2012. உலகம், இது வெறும் பலகலைக்கழக விளையாட்டு அல்ல என்று சீரியஸாக எடுத்துக் கொண்டது இவ்வாண்டில். இதற்குக் காரணம் கனடாவின் டொரோண்டோ பல்கலைக்கழக ஆராய்ச்சியாளர்கள் குழு ஒன்று உருவாக்கிய நிரல், பல கோடிப் படங்களை மிகக் குறைந்த தவறுகளுடன் சரியாக அடையாளம் காட்டியது. ஜெஃப் ஹிண்டன் தலைமையிலான இக்குழு, எந்திரக் கற்றலியல் உலகில் புரட்சி செய்தது என்று தாராளமாகச் சொல்லலாம். இத்தனைக்கும் அவர்களுடைய செயற்கை நரம்பணு வலையமைப்புக்கு வெறும் இரண்டு வாரப் பயிற்சி மட்டுமே அளிக்கப்பட்டது.  எப்படி இது திடீரென்று சாத்தியமானது?

திடீரென்று எதுவும் நடக்க வில்லை. ஸ்டாண்ஃபோர்டு மற்றும் பிரின்ஸ்டன் பல்கலைக்கழகங்கள், இணையத்தில் உள்ள பல கோடிப் படங்களை, பல்லாயிரம் தன்னாவலார்கள் மூலம் பட்டியலிட்டது. இதில், அன்றாடப் பொருள்கள், மிருகங்கள், பறவைகள் எல்லாவற்றையும் பட்டியலிட்டார்கள். கூகிள் இதற்குப் பல விதத்திலும் உதவியது. பல கோடி படங்களை கூகிள் இன்றும் தன்னுடைய தேடல் எஞ்சின் மூலம் தேக்குகிறது. இது மிகவும் பெரிய ஒரு பணி. நாய் என்றால், பல லட்சம் நாய்களின் படங்கள், நாறகாலி என்றால், இன்னும் சில லட்சம் என்று இந்த Imagenet உருவாகியது.

உதாரணத்திற்குக், கீழே உள்ளப் பட்டியல், சில வகைப்பாடுகளின் பட்டியல் அளவைக் காட்டுகிறது. 339 ஆயிரம் மலர்களின் படங்களைப் பட்டியலிட்டுள்ளார்கள்,  அதே போல, 374 ஆயிரம் வாகனங்களின் படங்களையும் பட்டியலிட்டுள்ளார்கள். ஒவ்வொரு வகையிலும் பல நூறு வேறுபாடுகள் அடங்கும், உதாரணத்திற்கு, ஒரு ஃபோர்டு ஃபோகஸ் காரின் நூற்றுக்கணக்கான படங்கள் பட்டியலிடப்பட்டிருக்கும். இதில் இந்தக் காரின் பல்வேறு கோணங்களில் எடுத்தப் புகைப்படங்கள் அடங்கும்.

High level category # synset (subcategories) Avg # images per synset Total # images
animal 3822 732 2799K
appliance 51 1164 59K
bird 856 949 812K
fish 566 494 280K
flower 462 735 339K
food 1495 670 1001K
fruit 309 607 188K
furniture 187 1043 195K
musical instrument 157 891 140K
plant 1666 600 999K
reptile 268 707 190K
sport 166 1207 200K
tree 993 568 564K
vegetable 176 764 135K
vehicle 481 778 374K
person 2035 468 952K

 

இது எந்திரக் கற்றலியல் துறைக்கு, ஒரு மிகப் பெரிய வரப்பிரசாதம். எந்திரங்களுக்குப் பல படங்களைக் கற்றுக் கொடுப்பதற்கு மிகவும் முக்கியமான ஒரு முன்னேற்றம் இது. தன்னுடைய பல்லாண்டு உழைப்பை மிக அழகாக இங்கு இதன் ஆராய்ச்சியாளர் விளக்குகிறார்;

முக்கியமாகச், செயற்கை நரம்பணு வலையமைப்பிற்குத் தேவையான விஷயம் பயிற்சிப் படங்கள், இவ்வகை வலையமைப்புகளில், பல அடுக்குகள் இருக்கும் என்று சொல்லியிருந்தேன். இந்த அடுக்குகளில் முதல் அடுக்கு  உள்வாங்கும் அடுக்கு (input layer) என்று சொல்லப்படுகிறது. கடைசி அடுக்கு வெளிப்பாடு அடுக்கு (output layer) என்று சொல்லப்படுகிறது. வலையமைப்பின் தேவைக்கேற்ப, விஞ்ஞானிகள் பல இடை அடுக்குகளை நம் மூளையில் உள்ளது போல உருவாக்குகிறார்கள். இவற்றை மறை அடுக்குகள் (hidden layers) என்று சொல்லப்படுகிறது. இந்த அடுக்குகள் என்ன செய்கின்றன?

மேல்வாரியாகச் சொன்னால், கீழே விளக்கியுள்ளது போலப் புரிந்து கொள்ளலாம். அடைப்புக்குறிக்குள் கொஞ்சம் டெக்னிகலான விளக்கம். உதாரணத்திற்கு, ஒரு காரின் படத்தை இந்த வலையமைப்பின் முன் வைக்கிறோம் என்று வைத்துக் கொள்வோம்

  1. முதல் அடுக்கில் ஓரளவு குறைந்த பிரிதிறன் (low resolution) படத்தின் படமூலம் (pixels) உள்வாங்கப் படுகிறது (இது filtering என்று அழைக்கப்படுகிறது)
  2. அடுத்த அடுக்கில், முதல் அடுக்குடன் இணைக்கப்பட்டுள்ள இணைப்புகள் அந்தப் படத்தின் முக்கிய வடிவமைப்பு அம்சங்களைப் பிரித்தெடுக்கும் – காரின் டிக்கி, சக்கரம், எஞ்சின் பகுதி, பின் கண்ணாடிகள் போன்ற விஷயங்களை மட்டும் பிரித்தெடுக்கும் (இது, ஏராளமான உயர்க் கணிதமான Convolutions மூலம் நிகழ்கிறது. எந்த அம்சம் ஒரு கணினிக்கு முக்கியம் என்பது கணிதம் மூலமே நிச்சயிக்கப்படுகிறது. டிக்கி, எஞ்சின் போன்றவை ஒரு விளக்கத்திற்காக மட்டுமே பயன்படுத்தியுள்ளேன்)
  3. அடுத்த அடுக்கில், இன்னும் சில சின்ன வளைவுகள், நீட்டங்கள்  –  காரின் முன்பக்கம் தெரிவதென்றால், ரேடியேட்டர், தலை விளக்குப் பின் பக்கம் தெரிவதானால், டிக்கி விளக்குகள், காரின் பின் மற்றும் முன் கண்ணாடியின் வளைவுகள் போன்ற விஷயங்கள் அடுத்தக் கட்டமாக இருக்கலாம். (இவை ஓரளவு யூகம்தான் – ஒவ்வொரு படியிலும் நடப்பவைச் சிக்கலான படமூல அணி மாற்றங்கள் (matrix manipulation of the pixels) – இவற்றிற்கு ஒரு சரியான காட்சி சார்ந்த விளக்கம் என்பது இயலாத காரியம்)
  4. இப்படிப் படிப்படியாக நிகழும் இந்தப் படமூலச் சிதறல், இன்னும் சில படிகளைத் தாண்டி உள்வாங்கிய படம் காரா என்பதோடு நிற்காமல், இந்த வலையமைப்புப் பயிற்சிக்குப் பிறகு, ஃபோர்டு ஃபோகஸா என்று சரியான சாத்தியக்கூறுகள் வெளி வருவதால், வெளிப்பாடு அடுக்கில் தகுந்த முடிவை எடுக்க முடிகிறது

பயிற்சி மூலம், ஒரு செயற்கை நரம்பணு வலையமைப்பிற்குத் தகுந்த சார்புகளை (bias and weights) உள்வாங்கியிருக்கும். இதனால், தான் பார்க்காத கோணத்தில் ஃபோர்டு ஃபோகஸ் கார் இருந்தாலும், இந்த வலையமைப்பு அதைச் சரியாக அடையாளம் காட்டி விடும். மற்றபடி உள்ளே நடப்பவை கணித ஜாலங்கள் என்றும் கொள்ளலாம்.

இது போலத்தான், சற்று மங்கிய வெளிச்சத்தில், அரைகுறையாகத் தெரியும் லாரிகள், பாதசாரிகள், சைக்கிள்கள், சாலைக் குறிகைகள் எல்லாவற்றையும் தானோட்டிக் கார்கள் அடையாளம் காட்டி முடிவெடுக்கிறது.

இதில் முக்கியமான விஷயம் ஃபோர்டு காரின் கலர் முக்கியமில்லை. அதன் அளவுகள், அந்தக் காருக்கும் தானோட்டிக் காருக்கும் உள்ள தூரம், ஃபோர்டு கார் செல்லும் கோணம், இவை எல்லாம் தான் முக்கியம்.

இந்தத் தொழில்நுட்பம், இன்று திறன்பேசியில் சில்லரை வியாபாரக் கடை பேரைச் சொன்னால், ஒலியிலிருந்து, அதை ஒரு தேடல்ச் சொற்றொடராக மாற்றுகிறது. கூகிள் வரைபடம் மற்ற வேலைகளைச் செய்கிறது. இங்குச் செயற்கை நரம்பணு வலையமைப்பின் வேலை, குரலை வைத்துச் சரியான சொல்லைக் கண்டுபிடிப்பது. பல குரல்களிலும் பயிற்சி செய்யப்பட்ட இந்த வலையமைப்பு, நமது மாணிக்கத்தின் ஆணையைப் பல அடுக்குகளில் கணித ஜாலத்தால், சரியாக Best Buy என்று கண்டுபிடித்து விடுகிறது. ஒன்றை கவனித்தீர்களா? நான் மாணிக்கத்தை வழி கேட்ட விடுதியில் திறன்பேசியைச் சுற்றிச் சத்தம் இருந்தது. மற்றவர்கள் சத்தப்படுத்தி/பேசி உண்டு கொண்டிருந்தார்கள். இவ்வகைச் சத்தங்களையும் தாண்டி, இந்தச் செயற்கைத் திறன் மென்பொருள் எப்படிச் சரியாகச் சொற்களைக் கண்டு பிடிக்கிறது? எல்லாம் filtering  மூலம் நடப்பவை. இந்த நிரலுக்கு எஸ்பிபியா அல்லது யேசுதாஸா என்று கண்டுபிடிக்கத் தேவையில்லை. என்ன சொல்கிறார் நமது மாணிக்கம் என்பதே முக்கியம்.

செயற்கை நரம்பணு வலையமைப்பிற்குப் பயிற்சி என்பது ஒரு மிகச் சிக்கலான பிரச்னை. நாம் பார்த்த இரு உதாரணங்களிலும், இதை எளிதில் புரிந்து கொள்ளலாம், Imagenet -ல் 374,000 படங்கள், வாகனப் படங்கள். ஒரு படத்தின் பிரிதிறன்,(resolution)  32 x 32 என்று கொண்டால் கூட, ஒரு படத்திற்கு 1024 படமூலங்கள் உள்ளன. இதற்குக் குறைந்தபட்சம் 1024 செயற்கை நரம்பணுக்கள் முதல் அடுக்கில் தேவை. 374,000 * 1024 = கிட்டத்தட்ட 383 பில்லியன் பயிற்சிப் படமூலங்கள் இதில் அடங்கும் என்றால் தலை சுற்றும் விஷயம். நாம் தலை நரைத்து, இந்தத் தொழில்நுட்பத்தின் பயனையே பார்க்க முடியாது. அதே போல, உலகில் உள்ள பல மனிதக் குரல்களைக் கொண்டு Best Buy  என்று சொல்ல வைத்துச் செயற்கை நரம்பணு வலையமைப்பைப் பயிற்சிக்க முடியாது. இதற்கு என்ன வழி?

இது சற்று நம்புவதற்குக் கடினமான விஷயம். ஆனால், சில வாகனங்களை மட்டுமே ஒரு பயிற்சிக்காகப் பயன்படுத்திக் கொண்டு புதிய வாகனப் படங்களை உட்கொண்டவுடன் செயற்கை நரம்பணு வலையமைப்பு வாகனம் என்று அடையாளம் காட்டக் கற்றால், மிகவும் எளிதாகிவிடும் அல்லவா? இதைத்தான் சில உயர்கணிமை மூலம் ஜெஃப் ஹிண்டன் மற்றும் யான் லகூன் என்ற இரு விஞ்ஞானிகளும் முன் வைத்தனர். புதிய வாகனங்களைக் கண்டவுடன், தன்னுடைய வலையமைப்பு சார்புத் தன்மையை (bias) மாற்றிக் கொண்டே இருக்கும். இதனால், புதிய விஷயங்களையும் இவ்வகை வலையமைப்புகள் வடிவமைக்கப்பட்ட ஒரு குறுகிய உலகில் கற்கின்றன. இதனாலேயே இந்தத் துறை எந்திரக் கற்றலியல் என்று அழைக்கப்படுகிறது.

இந்தத் தொழில்நுட்பம் பற்றி வாசகர்கள் தீவிரம் காட்டினால், விவரமாகத் தமிழில் எழுத முடியும். இந்தத் தொடருக்கு இந்த அளவு போதும் என்பது என்னுடைய கணிப்பு.

காமிரா மூலம் வந்த படத்திலிருந்து பல பொருட்களையும் இப்படித்தான் தானோட்டிக் கார் அடையாளம் கண்டுபிடிக்கிறது. அட புதிய 2017 மெர்ஸிடஸ் மாடல் என்று வியக்கத் தேவையில்லை. 16 அடி நீளம், 6 அடி அகலம் உள்ள கார் ஒன்று 300 மீட்டர் காருக்கு முன்னால், 117 கி,மீ. வேகத்தில் பயணிக்கிறது. அதாவது, பயணம் செய்யும் தானோட்டிக் கார் 120 கி,மீ. வேகத்தில் பயணம் செய்கிறது என்றால், 9 நொடி இடைவெளி என்று அர்த்தம். இந்த இடைவெளிக்கு, பாதுகாப்பான வேகம் 90 கி,மீ என்றால், 12 நொடி இடைவெளி என்று கணக்கிடுவது கணினிக்கு பெரிய விஷயமல்ல. உடனே காரின் வேகத்தை 120 -லிருந்து  மணிக்கு 90 கி,மீ வேகத்திற்குக் குறைக்க வேண்டும்.

  1. முன்னே இருப்பது ஒரு நகரும் கார் என்பதையும் அதன் வேகம் மற்றும் இடைவெளி போன்ற விஷயங்களை, விடியோவின் தொடர் ஃப்ரேம்களைக் கொண்டு கணிக்கப்படுகிறது
  2. காரின் வேகத்தைக் குறைக்கக் காரின் அடிப்படைக் கட்டுப்பாட்டிற்கு (automobile platform)  இந்த மென்பொருள் ஆணைகளை அனுப்புகிறது
  3. காரின் அடிப்படைக் கட்டுப்பாடுகள் வேகத்தைக் குறைப்பதோடு, மற்ற விஷயங்களையும் கட்டுப்படுத்துகிறது – இந்த வேகக்குறைப்பு நேருகையில் சாலை வளைந்து போகலாம் – வரை பாதையைப் பார்த்துக் காரைச் சற்றுத் திருப்புவதும் நேர வேண்டும். வரைபாதையைச் சரியாக அளப்பது போன்ற விஷயங்களை அடிப்படைக் காரின் கட்டுப்பாடு, இன்று நன்றாகவே செய்கிறது
  4. மிக முக்கியமான தொழில்நுட்பம் என்பது தானோட்டிக் காரின் கண்ணான செயற்கை நரம்பணு வலையமைப்பு மென்பொருள். ஆனால், இது ஒன்று மட்டுமே எல்லாச் செயல்களையும் ஆற்றுவதில்லை. சுற்றியுள்ள மற்ற விஷயங்களை முடிவெடுக்க மென்பொருள் தேவைப்படுகிறது
  5. இன்னொரு குறிப்பிடத் தகுந்த விஷயம், இந்த முடிவுகள் நொடியின் நூற்றில் ஒரு பங்கு நேரத்தில் நிகழ வேண்டும். இந்த விஷயத்தில் மனிதர்களைத் தானோட்டிக் கார்கள் தூக்கிச் சாப்பிட்டு விடும். இன்றைய வடிவியல் செயலிகள் இந்தக் காரியத்தை நன்றாகவே செய்கின்றன – இவற்றை இயக்குவதென்னவோ செயற்கை நரம்பணு வலையமைப்பு மென்பொருள்
  6. எல்லாம் சரி, திடீரென்று குறுக்கே ஒரு மான் ஓடினால், பல அடுக்குச் செயற்கை நரம்பணு வலையமைப்பு மென்பொருள் வேலை செய்யக் காத்திருக்க முடியாது. இதனால், அருகே என்ன தடைகள் உள்ளன என்று கணிக்கும்  உணர்விகளுக்கும் காரின் அடிப்படைக் கட்டுப்பாட்டிற்கு நேரடித் தொடர்பும் இருக்கும்.

டார்பா சவாலிலிருந்து (DARPA challenge) இன்றைய தானோட்டிக் கார்கள், பல மடங்கு முன்னேறி விட்டன. இன்னும் சில தொழில்நுட்பப் பிரச்னைகள் இருக்கத்தான் செய்கிறது. இவற்றைப் பற்றிப் பின்னொரு பகுதியில் பார்ப்போம்.

மிகவும் சிக்கலான தொழில்நுட்பம் தானோட்டிக் காரின் தொழில்நுட்பம். பிரத்யேக உணர்விகள், மற்றும் அவற்றின் சங்கமம் மிகவும் முக்கியமான ஒரு சவாலான தொழில்நுட்பம். கார்களின் அடிப்படை கட்டுப்பாடுகள் எவ்வளவுதான் வளர்ந்திருந்தாலும், இவை சிக்கலானவை என்பதில் சந்தேகம் இல்லை. மேலும், இந்த அடிப்படைக் கட்டுப்பாடுகளை இயக்கும் மென்பொருட்களும் சிக்கலானவை. இயக்க அளவுகளை அளக்கும் மென்பொருள் மற்றும் சுற்றுப்புறத்தை அளக்கும் உணர்விகள், மற்றும் ஜிபிஎஸ் கொண்டு முன்னால், பின்னால், வலது மற்றும் இடது பக்கத்தில் இருக்கும் வாகனங்களை அடையாளம் காணும் செயற்கை நரம்பணு வலையமைப்பு மென்பொருள் புதிய தொழில்நுட்பம். இவற்றுடன் காரின் கணினியில் சேமிக்கப்பட்டுள்ள வரைபட மென்பொருளுடனும் சேர்ந்து இவை இயங்க வேண்டும்.

தலை சுற்றுவதைப் போன்று தோன்றினாலும், தானோட்டிக் கார்களைத் தயாரிக்கும் நிறுவனங்கள் ஏராளமான சோதனைகளைச் செய்து வருகிறார்கள். என்னதான் எந்திரக் கற்றலியல் முன்னேறினாலும், சாலைகளில் திடீர் அனுபவம் நாம் எல்லோரும் அறிந்த ஒன்று. கார்களுக்கு இது போன்ற அனுபவம் ஏற்படும் பொழுது எப்படிச் சமாளிப்பது என்பது சவால் தான்.

~oOo~

தமிழ்ப் பரிந்துரை

தமிழ்ச் சொற்கள் எல்லோருக்கும் புரிய வேண்டும் என்று சில ஆங்கிலச் சொற்களை கட்டுரையில் பயன்படுத்தியுள்ளேன். கார் சம்பந்தமான பல தொழில்நுட்பச் சொற்கள் தமிழில் அதிகம் புழக்கத்தில் இல்லை. உதாரணம், ஆக்ஸிலரேட்டர் மற்றும் ப்ரேக். இதை தமிழில் மொழிபெயர்த்தால், நம்மில் பலருக்கும் புரியாது. இதனால், இது போன்ற வழக்குச் சொற்களை அப்படியே பயன்படுத்தியுள்ளேன். சில புதிய சொற்களுக்கு நிகரான சில தமிழ்ச் சொற்களை இங்கு பரிசீலனைக்கென முன்வைக்கிறேன்

ஆங்கிலச் சொல் தமிழ்ப் பரிந்துரை
Input layer உள்வாங்கும் அடுக்கு
Hidden layers மறை அடுக்குகள்
Low resolution குறைந்த பிரிதிறன்
Pixels படமூலம்
Matrix manipulation of the pixels படமூல அணி மாற்றங்கள்
Bias சார்பு
Automobile platform காரின் அடிப்படைக் கட்டுப்பாடு
Artificial intelligence செயற்கை நுண்ணறிவு
Algorithm மென்பொருள் நெறிமுறை

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.