Computer Vision
ஒரு படத்தில் உள்ள வெவ்வேறு objects-ஐ அடையாளம் கண்டுபிடிக்க உதவும் முறைக்கு Computer Vision என்று பெயர். YOLO (You Only Look Once) எனும் அல்காரிதம் இதற்காகப் பயன்படுகிறது. ஒரு படத்தில் தென்படுகிற ஒவ்வொரு object-இன் மீதும் bounding boxes-ஐத் துல்லியமாக அமைக்க, Intersection over union, Non-max suppression போன்ற வழி வகைகளைக் கையாள்கிறது. அடையாளம் காண வேண்டிய படத்தை Anchor இமேஜ் என வைத்துக்கொண்டு, அதனுடன் பொருந்துகிற பாசிட்டிவ் இமேஜ் மற்றும் பொருந்தாத நெகட்டிவ் இமேஜ் ஆகிய மூன்றையும் வைத்து triplet loss என்ற ஒன்றைக் கணக்கிட்டு தனது திறனை சோதித்துக் கொள்கிறது.
Autoencoders
இது encoding மற்றும் decoding பணிக்கு உதவுகிறது. தரவுகளைக் குறியிட்டு சுருக்கி வைக்கவும், பின்னர் அதே குறியைப் பயன்படுத்தி விவரிக்கவும் செய்கிறது. Feature reduction-க்கான பணியில் PCA என்பது லீனியர் தரவுகளுக்கானது என்றால், Autoencoder என்பது Non லீனியர் தரவுகளுக்கானது மற்றும் நியூரல் நெட்வொர்க்கில் பயன்படக்கூடியது.
Generative Models
Boltzmann Machine (BM), Restricted Boltzmann Machine, Deep Belief Network (DBN) போன்ற அனைத்தும் அவுட்புட் என்ற ஒன்றை வெளியிடாது. features-ஐ மட்டுமே generate செய்யும். எனவேதான் இவை ‘ஜெனரேட்டிவ் மாடல்’ என்ற பெயரில் அழைக்கப்படுகின்றன. ஆகவே இதில் அவுட்புட் லேயர் என்ற ஒன்று கிடையாது. வெறும் இன்புட் மற்றும் ஹிடன் லேயர்கள் மட்டும் ஒன்றோடொன்று தொடர்பு கொண்டு மாற்றி மாற்றி நியூரான்களை உருவாக்கிக் கொள்கின்றன. இவை மூன்றும் சிறிய அளவில் வேறுபடுகின்றன. இருவேறு லேயரில் உள்ள நியூரான்கள் தங்களுக்குள்ளும் – எதிரெதிராகவும் தொடர்பு கொள்வதை ஊக்குவிப்பது BM எனவும், தங்களுக்குள் தொடர்பு கொள்வதை மட்டும் மறுப்பது Restricted BM எனவும், மொத்தமாக நியூரான்களின் தொடர்பை மறுத்து லேயர்களுக்கிடையேயான தொடர்பை மட்டும் ஆதரிப்பது DBN எனவும் அழைக்கப்படுகின்றன. இவையே ஜென் ஏ.ஐ.யின் அடிப்படைகள். இதைப் பற்றி விளக்கமாக ஜென் ஏ.ஐ பகுதியில் காணலாம்.
Gen AI for Text Data Processing
“ஒரு மெல்லிசான கோடு; கோட்டுக்கு இந்த பக்கம் இருந்தால் நான் நல்லவன்; அந்த பக்கம் போயிட்டால் நான் ரொம்ப கெட்டவன்” என்று ஒரு வசனம் வருமே! அதேபோல, Deep லேர்னிங்க்கும் ஜெனரேட்டிவ் ஏ.ஐ.க்கும் நடுவில் உள்ளது ஒரு மெல்லிசான கோடு மட்டுமே! மல்டி கிளாஸ் கிளாஸிஃபிகேஷன் செய்து டேட்டாக்களை வகைப்படுத்துபவை, கோட்டிற்கு இந்தப் பக்கம் நின்று, தன்னை ஒரு டீப் லேர்னிங் அல்காரிதமாக அடையாளப்படுத்திக் கொள்கின்றன. அதே விஷயத்தை செய்து டேட்டாக்களை உருவாக்க முயல்பவை, கோட்டை தாண்டிச் சென்று தன்னை ஒரு ஜெனரேட்டிவ் ஏ.ஐ ஆக அடையாளப்படுத்திக் கொள்கின்றன. உதாரணமாக, ஒரு விஜயகாந்த் பாட்டை கேட்டுக் கொண்டிருக்கும்பொழுது, அடுத்த விஜயகாந்த் பாட்டை பரிந்துரை செய்வது Deep learning அல்காரிதம். ஆனால், அந்த விஜயகாந்தையே நடனமாட வைத்து புதிதாக ஒரு வீடியோ உருவாக்குவது ஜெனரேட்டிவ் ஏ.ஐ. ஒரு விஷயத்தை புதிதாக உருவாக்குவதற்கு ஜெனரேட்டிவ் என்று பெயர். ஆனால் இயற்கையான முறையில் மனிதர்களால் உருவாக்கப்படாமல், செயற்கையாக உருவாக்கப்படும் வீடியோக்கள் / புகைப்படங்கள் / பதில்கள் ஆகியவை AI மூலம் உருவாக்கப்படும் ஜெனரேட்டிவ் ஏ.ஐ ஆகும். இது மொத்தமாக மூன்று வகை டேட்டாவைத்தான் கையாள்கிறது. அவை டெக்ஸ்ட் டேட்டா, ஆடியோ டேட்டா, இமேஜ்/வீடியோ டேட்டா. ஆகவே இம்மூன்றில் ஏதாவது ஒருவகை டேட்டா உருவாக்கம் பற்றி ஆழமாகக் கற்றுக் கொண்டால் போதும். மற்ற இரண்டுக்கும் டேட்டா டைப் வித்தியாசம் மட்டும் தானே தவிர, உருவாக்க முறை என்பது ஒன்றுதான்! இவை இயற்கையாக விளங்கும் டேட்டாக்களை எடுத்து, தனது பயிற்சிக்கு பயன்படுத்திக் கொண்டு, பின் அவற்றை செயற்கையாக வெளியிடத் துவங்குகின்றன. வெவ்வேறு டேட்டா டைப்களுக்கு அதே டேட்டா டைப் கொண்ட அவுட்புட் கிடைக்கிறதே தவிர, ஒரு விஷயத்தை உருவாக்கப் பயன்படுவதற்கான லாஜிக் மாறப்போவதில்லை. ஆகவே ஏதேனும் ஒன்றை கற்றுக் கொண்டால் போதும்.
“நெல்லு போட்டா நெல்லு முளைக்கும்; சொல்லு போட்டா சொல்லு முளைக்கும்” என்பார்களே! அதேபோல, ஆடியோ file போட்டு ட்ரெய்னிங் கொடுத்தால் ஆடியோ முளைக்கும். டெக்ஸ்ட் file அனுப்பி ட்ரெய்னிங் கொடுத்தால், text முளைக்கும். ஆகவே ஜெனரேட் செய்வதற்கான லாஜிக் என்பதை ஒரே ஒரு முறை கற்றுக் கொண்டால் போதும். இம்மூன்றில் முதலில் டெக்ஸ்ட் டேட்டா பற்றிக் காண்போம். ஒரு கேள்வி கேட்டால் அதற்கான பதிலை உருவாக்குவது, ஒரு தலைப்பு கொடுத்தால் அதில் கட்டுரைகள் / கவிதைகள் உருவாக்குவது, ஒரு மொழியில் உள்ளவற்றை இன்னொரு மொழியில் உருவாக்குவது ஆகியவை டெக்ஸ்ட் டேட்டா உருவாக்கத்திற்கு ஏ.ஐ -யில் விளங்கும் வெவ்வேறு வகையான எடுத்துக்காட்டுகள் ஆகும். நாம் பயன்படுத்தும் வெவ்வேறு வகையான பெயர்களில் எது இடத்தின் பெயர்? எது நிறுவனத்தின் பெயர்? எது ஊரின் பெயர் என்பதையெல்லாம் புரிந்து கொண்டு செயல்படுகிறது. இதற்கு NER – Named Entity Recognition என்று பெயர். நாம் பாதி எழுதிக் கொண்டிருக்கும் பொழுதே, அடுத்து என்ன வார்த்தைகள் போடப் போகிறோம் என்பதை ப்ரெடிக்ட் செய்வது ‘ஆட்டோ கம்ப்ளீட்’ எனப்படும். இவை எல்லாவற்றிற்கும் அடிப்படையான, ஒரு வார்த்தையைப் பொறுத்து அடுத்த வார்த்தையை உருவாக்குவதற்கான செயல் எவ்வாறு நடைபெறுகிறது என்பதை முதலில் பார்ப்போம்.
நாம் ஏதாவது எழுதிக் கொண்டிருக்கும் பொழுது, அடுத்தடுத்த வார்த்தைகளை கணினியே நமக்குப் பரிந்துரைக்கும் அல்லவா! அதற்குப் பெயர்தான் நெக்ஸ்ட் வேர்டு ப்ரெடிக்சன்! இதை நிகழ்த்துவதற்கு, பல நூற்றுக்கணக்கான கட்டுரைகளையும், கவிதைகளையும், உரைநடைகளையும், செய்யுள்களையும் நியூரல் நெட்வொர்க்குக்குப் பயிற்சி அளித்து இதற்கான மாடல் உருவாக்கப்படுகிறது. பின்னர் அந்த மாடல் background-ல் இயங்கிக் கொண்டிருக்கும் பொழுது, நாம் நம்முடைய சிற்றறிவைப் பயன்படுத்தி ஏதேனும் எழுத ஆரம்பித்தால், அந்த மாடல் அதனுடைய பேரறிவின் துணைகொண்டு அடுத்து என்ன எழுதப் போகிறோம் என்பதை பரிந்துரை செய்கிறது. அந்தப் பரிந்துரையை நிராகரித்து நாம் ஏதேனும் ஒரு புதிய சொல்லை பயன்படுத்தி வாக்கியம் உருவாக்கினால்கூட, அதையும் தன்னுடைய ட்ரெய்னிங் டேட்டாவாக மாற்றி அந்த மாடல் தன்னை மேம்படுத்திக் கொள்கிறது. இவ்வாறாக, தன்னை மேம்படுத்தி மேம்படுத்தியே இப்போது அந்த மாடல் பூதாகரமாக வளர்ச்சி அடைந்து விட்டது.
இதுபோன்றதொரு மாடலை உருவாக்க பயிற்சி அளிப்பதற்குத் தேவையான ட்ரெய்னிங் டேட்டாவோ, ஜி.பி.யு வசதிகளோ நம்மிடம் இல்லாத காரணத்தால், ஒரு சிறிய உரைநடையை மட்டும் எடுத்துக்கொண்டு, அதை வைத்து ஒரு சிறிய மாடலை உருவாக்க முயல்வோம். இதை கற்றுக் கொள்ளும் ப்ராசஸில், உரைநடைகளையெல்லாம் எப்படி ட்ரெய்னிங் டேட்டாவாக மாற்றுவது? அதை சாதா நியூரல் நெட்வொர்க்குக்குள் செலுத்தினால் என்ன பிரச்சனை நேரிடும்? எதற்காக sequential நியூரல் நெட்வொர்க் பயன்படுத்த வேண்டும்? சீக்வென்ஷியலில் RNN , LSTM-களுக்கிடையே உள்ள வித்தியாசம் என்ன? எதனால் Embedding செய்யப்படுகிறது? எப்படி ஒரு வார்த்தையின் அர்த்தத்தைப் புரிந்துகொண்டு மாடல் செயல்படுகிறது? என்பதெல்லாம் தெளிவாகப் புரிந்துவிடும். பின்னர் இதே விஷயத்தை பெரிய அளவில் செய்வது நமக்கு அவ்வளவு கடினமாக இருக்காது.