க.க.க.வா – கற்கும் கருவியியல் கற்போம் வா – 2

கற்கும் கருவியியலின் (Machine Learning) முக்கிய பகுதி நரவலை (Neural Networks). இவை மனித மூளையை அடிப்படையாகக் கொண்டது.  மூளையில் ஏறக்குறைய நூறுகோடி நரம்பணுக்கள் உள்ளன, ஒவ்வொரு அணுவும் மற்ற ஆயிரக்கணக்கான அணுக்களோடு பின்னப்பட்டிருக்கும். கணினியில் எப்படி எளிமையான செயலாக்கம் கொண்ட டிரான்சிசுட்டர்கள் பல்லாயிர எண்ணிக்கையில் சேர்ந்து இயங்கும்போது கணினி வியத்தகு செயல்களைச் செய்கிறதோ,  அப்படியே எளிமையான நரம்பணுக்கள் கூட்டாக இயங்கும்போது மூளை வியத்தகு வேலைகளைச் செய்கிறது. இயற்கையாக அமைந்த மூளையின் செயலையும் அமைப்பையும் உந்துதலாகக்கொண்டு செய்யறிவறிஞர்கள் படைத்தது தான் செ.ந.வ. (Artificial Neural Network – A.N.N)

நரவலை என்பது செய்யறிவு இயக்கக் கொள்கையில் ஒன்றான கூட்டியியக்கியத்தின்(connectionism) மெய்ப்படுத்தும் (realization)  முறைகளில் ஒன்று.

நரம்பணுக்கள்(neurons) ஒன்றோடொன்று பிணைந்து வலை போன்ற அமைப்பை ஆக்கும். நரம்பணுக்கள் தனித்தனியே சிறிய சிறிய செயல்களைச் செய்தாலும் அவை கூட்டாக ஒருங்கிணைந்து இயங்கும்போது சிக்கல் மிகுந்த செயல்களைச் செய்ய வல்லன ஆகின்றன.

Neural Network என்றால் என்ன?

அதனைப் புரிந்துகொள்ள முதலில் பெர்செப்ட்ரான்(Perceptron) எனப்படும் செயற்கை நியூரானின் வகையை முதலில் புரிந்துகொள்வோம். பெர்செப்ட்ரான்கள் 1950கள் மற்றும் 1960களில் விஞ்ஞானி ஃபிராங்க் ரோசன்பிளாட் (Frank Rosenblatt) என்பவரால் உருவாக்கப்பட்டது. இது வாரன் மெக்கல்லோக் மற்றும் வால்டர் பிட்ஸ் ஆகியோரின் முந்தைய ஆராய்ச்சியின் தொடர்ச்சியாய் உருவாக்கப்பட்டது.

செயற்கை நியூரான்கள்(Artificial Neurons) பலவகை உண்டு அதில் நாம் புரிந்துகொள்ள முயல்வது Sigmoid neuron. அதனைப் புரிந்துக்கொள்ள நாம் Perceptronகள் எவ்வாறு செயல்படுகின்றன என்பதை புரிந்துகொள்ள வேண்டும் ?

ஒரு Perceptronன் பல பைனரி (இருமை-Binary) உள்ளீடுகளை தனக்குள் எடுத்துக்கொண்டு (x_{1},x_{2},...,x_{n}) ஒரு பைனரி வெளியீட்டை (output) உருவாக்குகிறது.

மூன்று உள்ளீடுகளைக்(Input) கொண்டுள்ள Perceptron

படம். ௧ : மூன்று உள்ளீடுகளைக்(Input) கொண்டுள்ள Perceptron

குறிப்பு: 

Binary (இருமை): இருமை (0 அல்லது 1) என்பது நாம் கணினிகளுடன் தொடர்பு கொள்ளப் பயன்படுத்தும் மொழியாகும்.

மேலே  காட்டப்பட்டுள்ள எடுத்துக்காட்டில், பெர்செப்ட்ரான்(Perceptron) x_{1},x_{2},x_{3} ஆகிய மூன்று உள்ளீடுகளைக்(Input) கொண்டுள்ளது. பொதுவாக இது அதிகமான  அல்லது குறைவான உள்ளீடுகளைக் கொண்டிருக்கலாம்.

இதன் Outputஐ  கணக்கிடுவதற்கு ரோசன்பிளாட் ஒரு எளிய விதியை உருவாக்கினார். அவர் Weights((w_{1},w_{2},... .) எனப்படும் நகர்த்தியை அறிமுகப்படுத்தினார். நகர்த்தி input மற்றும் outputக்கு உள்ள தொடர்பை ஏற்படுத்தப் பயன்படுத்தும் மெய்யெண் எனலாம் (Real Numbers).

குறிப்பு: 

. Real Numbers(மெய்யெண்): சுழியம் தொடங்கி இருபக்கமும் விரியும் எண் கோட்டில் விழக்கூடிய எந்த ஒரு புள்ளியும் மெய்யெண் எனலாம்.

மெய்யெண்

படம். ௨ : மெய்யெண்

. Summation(∑): என்பது அனைத்து எண்களையும் எண்கணித ரீதியாகக் கூட்டுவதன் விளைவே.

எடுத்துக்காட்டு: ∑ a_{n} இப்போது n = 5 எனக் கொள்வோம். அப்போது

sum a_{5} = a_{1}+a_{2}+a_{3}+a_{4}+a_{5}

 குறிப்பு: sum_{j=1}^{n}x_{j}w_{j}=x_{1}w_{1}+x_{2}w_{2}+x_{3}w_{3}+x_{4}w_{4}+x_{5}w_{5}

இப்போது மூன்று Inputகள்(x_{1},x_{2},x_{3} ) மற்றும் weightsயைக்(w_{1},w_{2},w_{3} ) கொண்ட பெர்செப்ட்ரானின் வெளியீடு (படம். ௧) அவையின் மொத்த கூட்டுத்தொகையை பொருத்தே அமையும்.

மூன்று உள்ளீடுகள்(x1,x2,x3) மற்றும் மாறியைக்(w1,w2,w3) கொண்ட பெர்செப்ட்ரான்

படம். ௩ : மூன்று உள்ளீடுகள்(x1,x2,x3) மற்றும் மாறியைக்(w1,w2,w3) கொண்ட பெர்செப்ட்ரான்

இப்போது  படம். ௩ உள்ள Neuronனின் வெளியீடு (output), 0 அல்லது 1 என வகைப்படுத்த weighted sum(w_{j}x_{j}) (நகர்த்தியின் தொகையானது) சில Threshold Value விடக் குறைவாக உள்ளதா அல்லது அதிகமாக உள்ளதா என்பதன் மூலம் தீர்மானிக்கப்படுகிறது.

இப்போது மேலே கூறிய அனைத்தையும் ஒரு Equation ஆகச் சொல்லலாம்.

text{Output} =0 , text{if} , sum_{j}x_{j}w_{j} , leq , text{Threshold value}

text{Output} =0 , text{if} , sum_{j}x_{j}w_{j} , > , text{Threshold value}

Threshold value என்பதும் ஒரு Real number தான். இது நியூரானின் ஒரு அளவுருவாகும்  (Parameter).

 

எளிதாகப் புரிந்துக்கொள்ள பின்வரும் உதாரணத்தை எடுத்துக்கொள்வோம்.

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

  • x_{1}  –  வானிலை – மழை பெய்யுமா இல்லையா/ மதிய வெயிலில் போகலாமா எது சிறந்த நேரம் ?

  • x_{2} – உங்கள் நண்பனோ தோழியோ உங்களுடன் வர விரும்புகிறாரா?

  • x_{3}  – உங்கள் வீட்டிலிருந்து கடற்கரை எவ்வளவு தூரம் – ஏனென்றால் நாம் பொது போக்குவரத்தை பயன்படுத்துவோம் (Bike/Car வாங்கனாலும் பெட்ரோல் போடக் காசு இல்லை) பெர்செப்ட்ரானுக்கு x_{1} ,x_{2}  மற்றும் x_{3}  ஆகிய பைனரி மாறிகள்மூலம் இந்த மூன்று காரணிகளையும் நாம் குறிப்பிடலாம்.

உதாரணமாக,

  • வானிலை நன்றாக இருந்தால் x_{1}=1 என்றும், வானிலை மோசமாக இருந்தால் x_{1}=0 என்றும் இருக்கு

  • உங்கள் நண்பனோ தோழியோ உங்களுடன் வர விரும்பினால் x_{2}=1 , இல்லையெனில் x_{2}=0 .

  • பொதுப் போக்குவரத்து பயன்படுத்தினால் x_{3}=1  இல்லை என்றால் x_{3}=0 .

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

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

இந்த வகையான முடிவுகளைப் பெர்செப்ட்ரான்களைப் கொண்டும் செய்யலாம்.

இதைச் செய்வதற்கான ஒரு வழி:

  • வானிலைக்கான உள்ளீடு x_{1}  அதன் நகர்த்தி w_{1}=6  எனத் தேர்வு செய்துகொள்ளவோம்.

  • மற்ற நிபந்தனைகளுக்கு x_{2} க்கு நகர்த்தி w_{2}=2  மற்றும் x_{3}க்கு நகர்த்தி w_{3}=2ஐயும் தேர்வு செய்வது.

இங்கே w_{1} இன் பெரிய மதிப்பு(6) எதைக் குறிக்கிறது என்றால் உங்கள் நண்பன் உங்களுடன் கடற்கரைக்கு வருகிறார்களோ இல்லையோ அல்லது பொதுப் போக்குவரத்து அருகில் இருப்பதை விட வானிலை உங்களுக்கு மிகவும் முக்கியமானது என்பதைக் குறிக்கிறது.

இறுதியாக, நீங்கள் பெர்செப்ட்ரானுக்கு 5 என்ற threshold(மதகு) அளவை தேர்வு செய்கிறீர்கள் என்று வைத்துக்கொள்வோம். அதாவது கூட்டுத்தொகையின் மதிப்பு 5க்கு கீழ் இருந்தால் அல்லது 5க இருந்தால் 0 வெளியிடும் இல்லையெனில் 1 வெளியிடும்.

sum_{j=3}x_{j}w_{j}leq5

sum_{j=3}x_{j}w_{j}=x_{1}w_{1}+x_{2}w_{2}+x_{3}w_{3}=1*6+0*2+0*2 = 6 > 5

Output =1

இந்தக் கூட்டுத்தொகை நமது அளவைவிடப் பெரியது. எனவே perceptron 1யை வெளியிடும். அதாவது கடற்கரைக்குச் செல்லலாமெனக் கூறுகிறது.

இதுவே அந்நாளில் கனமழையென வைத்துக்கொள்வோம்(x_{1}=0) ஆனால் உங்கள் நண்பர்கள்  உங்களுடன் வரவிருப்புகிறார்கள் (x_{2}=1) மற்றும் பொதுப்போக்குவரத்து உங்கள் வீட்டின் அருகாமையில் உள்ளது (x_{3}=1) , இக்காரணிகளை கொண்டு perceptron எவ்விதம் முடிவினை எடுக்கும் என்றால்

sum_{j=3}x_{j}w_{j}, > , 5

sum_{j=3}x_{j}w_{j}=x_{1}w_{1}+x_{2}w_{2}+x_{3}w_{3}=0*6+1*2+1*2 = 4 < 5

Output = 0

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

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

Threshold குறைப்பது மூலமாக நாம் கடற்கரைக்கு போவதை வானிலையோ அல்லது உங்கள் நண்பனின் வரவோ அல்லது பொதுப்போக்குவரத்தின் தூரமோ தடுக்க இயலாது.

பயிற்சி : இதுவே அந்நாளில் கனமழையென வைத்துக்கொள்வோம்(x_{1}=?) உங்கள் நண்பர்களும் வர விரும்பவில்லை(x_{2}=?), கேட்கவே வேண்டாம் மழைநாளில் பொதுப்போக்குவரத்து தொலைவில் இருந்தால் சென்று சேருவது என்பது இயலாத காரியம்(x_{3}=?). இந்தச் சூழ்நிலையில் பெர்செப்ட்ரானின் கூட்டுத்தொகை என்ன அதே போன்று அதன் பொருட்டு perceptron எடுக்கும் முடிவுதான் என்ன? நீங்கள் கடற்கரைக்குச் செல்லலாமா இல்லை வேண்டாமா (comment sectionஇல் பதில் அளிக்கவும் ).

ப. தமிழ் அரசன், மு. செல்வக்குமார்

tamilarasanbakthavatchalam@gmail.com  – selva.developer@gmail.com

%d bloggers like this: