Malaikannan The Deep Learning way of life

செயற்கை அறிவாற்றல் வல்லுனர்களுக்கு ஏன் சரித்திரம் தெரிந்து இருக்க வேண்டும் ?

தொழில்நுட்ப வளர்ச்சி சாமான்ய மக்களை வியக்க வைக்கின்றது, அவர்களும் தொழில்நுட்ப வளர்ச்சியை முடிந்த வரை அரவணைத்து வருகின்றனர்.வரலாற்றை புரட்டி பார்த்தால் ஒவ்வொரு 20 வருடங்களுக்கு ஒரு முறை மிகவும் சக்தி வாய்ந்த தொழில்நுட்பம் வந்து ஒரு பெரும் புரட்சியை உண்டு பண்ணும். செயற்கை அறிவாற்றல் தொழில்நுப்டமோ 100 ஆண்டுகளுக்கு ஒரு முறை வரும் ஒரு பெரும் மாற்றம். செயற்கை அறிவாற்றல் அறிஞர் ஆண்ட்ரூ ந.ஜி (Andrew Ng) இதை புதிய மின்சாரம் என்று கூறுகிறார். இத்தகைய மிக சக்தி வாய்ந்த தொழில்நுட்பத்தை வல்லுநர்கள் ஆக்கவும் பயன்படுத்த முடியும் அழிக்கவும் பயன்படுத்த முடியும்.

மின்சாரம்

செயற்கை அறிவாற்றல் வல்லுநராக ஆக ஒருவர் மிக சிறந்த மென்பொருள் வல்லுநராக, கணித மேதையாக, விடா முயற்சி கொண்டவராக இருக்க வேண்டும். இவ்வளவு விஷயத்தில் வல்லமை பெற்ற ஒருத்தர் அதி புத்திசாலியாக இருக்க வாய்ப்பு உண்டு. அதி புத்திசாலிகளுக்கு உரிய அகந்தையும் கர்வமும், எதையும் செய்யலாம் எந்த விதிகளும் நமக்கு பொருந்தாது என்ற பண்பு இருக்கும் வாய்ப்பு மிக அதிகம். இத்தகைய பண்பை தான் ஒரு அறிஞர் ஒருவர் “எண்கள் பொய் சொல்லாது ஆனால் நன்றாக பொய் பேசுபவர்கள் எண்களை உபயோகிப்பர்” (Numbers don’t lie but liars use numbers) என்று கூறி இருக்கிறார்.

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

செயற்கை அறிவாற்றலலில் இரண்டு வகைப்பாடுகள் உண்டு. முதல் வகை அது ஒரு முடிவை ஏன் எடுக்கிறன்றது என்று வல்லுநர்களுக்கு தெரியும். இரண்டாம் வகை அது ஏன் ஒரு முடிவை எடுக்கின்றது என்று தெரியாத வகை. DeepLearning இரண்டாவது வகையறாவை சாறும். பேராசிரியர் பீன் கிம் (Prof Been Kim ) அணைத்து செயற்கை ஆறிவாற்றலும் ஏன் ஒரு முடிவை எடுத்தது என்பது மனிதர்களுக்கு புரிய வேண்டும் என்று ஆராய்ச்சி செய்து வருகிறார். வங்கியில் கடன் கொடுப்பதா இல்லையா போன்ற காரியத்துக்கு இரண்டாம் வகை செயற்கை ஆறிவுஆற்றலை பயன் படுத்த கூடாது.

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

கவிஞர் புலமைப்பித்தனின் வரிகள் “எந்தக்குழந்தையும் நல்ல குழந்தை தான் மண்ணில் பிறக்கையிலே…பின் நல்லவராவதும் தீயவராவதும் அன்னை வளர்ப்பதிலே” செயற்கை அறிவாற்றல் வல்லுநர்களுக்கு மிகவும் பொருந்தும்.

செயற்கை அறிவாற்றல்

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

எந்திரன்

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

கிணற்று தவளையாக

அட உங்களின் விருப்பத்தை அது எப்படி கற்று கொள்கிறது?

உங்களின் விருப்பத்தினை நீங்கள் பதிவு செய்யும் விரும்புதல்(LIKE) மற்றும் கருத்து தெரிவிப்பதின் (COMMENT) மூலமும் செயற்கை அறிவு ஆற்றலக்கு கற்று கொடுக்கிறீர்கள். செயற்கை அறிவாற்றல் உங்களது விருப்பத்திற்கு இணங்க உரிய விவரங்களை மட்டும் திரும்ப திரும்ப காட்டுகிறது. உதாரணத்திற்கு நீங்கள் ஜெயகாந்தன் கட்டுரைகளுக்கு விருப்பம் தெரிவித்துஇருந்தால் அசோகமித்திரன் கட்டுரைகளும் முகநூலின் தகவல் பலகைகளில் வர தொடங்கும். கவிஞர் கண்ணதாசன் கவிதைகள் விருப்பம் தெரிவுத்துஇருந்தால் கவிஞர் வாலியின் கவிதைகளும் வர தொடங்கும்.

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

மென்பொருளுக்கும் செயற்கை அறிவு ஆற்றலுக்கும் என்ன வித்தியாசம் ?

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

  1. மழை பெய்கிறதா ?
    • மழை பெய்தால் உடற்பயிற்சி செய்ய வேண்டாம்.
  2. மணி என்ன ?
    • இரவு 10 மணி முதல் காலை 5 மணி வரை : கும்முஇருட்டில் உடற்பயிற்சி செய்யாதே.
    • காலை 5 மணி முதல் 7 மணி வரை : உடற்பயிற்சி செய்யலாம்.
    • காலை 8 மணி முதல் 9 மணி வரை : வீட்டிலிருந்து அலுவலக வேலை செய்தால் உடற்பயிற்சி செய்யலாம்
    • காலை 9 மணி முதல் மாலை 5 மணி வரை : அலுவலக பணி உடற்பயிற்சி செய்யலாம்.
  3. நான் மகனை பள்ளியில் விட வேண்டுமா ?
    • காலை 8 மணி முதல் 9 மணி வரை : உடற்பயிற்சி செய்ய முடியாது
    • மலை 4 மணி முதல் 5 மணி வரை : உடற்பயிற்சி செய்ய முடியாது
  4. சீதோஷண நிலை
    • 22 முதல் 32 டிகிரி செல்சியஸ் : உடற்பயிற்சி செய்யலாம்
    • 32 முதல் 44 டிகிரி செல்சியஸ் : உடற்பயிற்சி செய்ய முடியாது

பாரம்பரிய மென்பொருள் முறைப்படி தீர்வு செய்ய முயன்றால் வரிசை மாற்றம் மற்றும் சேர்கை காரணங்கள்(PERMUTATION AND COMBINATION) எண்ணிக்கைகள் மிக அதிகமாக இருக்கும்.

மணி மழை பெய்கிறதா பள்ளி சென்று விடும் நேரமா வெயிலின் தாக்கம் ஆமாம்/இல்லை
காலை 5-7 ஆமாம் இல்லை 22-32 டிகிரி செல்சியஸ் இல்லை
இரவு 9-5 இல்லை இல்லை 22-32 டிகிரி செல்சியஸ் இல்லை
காலை 5-7 இல்லை இல்லை 22-32 டிகிரி செல்சியஸ் ஆமாம்
….. …. …. ….

நான்கே காரணங்குளுக்கு 20க்கு மேற்பட்ட வரிசை மாற்றம் சேர்க்கை காரணங்கள்(PERMUTATION AND COMBINATION) 20க்கு மேல் வருகிறது. இதில் தனிப்பட்ட காரணங்கள் 100க்கு மேல் இருந்தால் வரிசை மாற்றம் சேர்க்கை காரணங்கள்(PERMUTATION AND COMBINATION) 1000க்கு மேல் வரும். இது பாரம்பரிய மென்பொருள் வடிவமைப்பின் மூலம் எளிதில் தீர்வு செய்ய முடியாது. இது மாதிரியான பிரச்சனைக்கு செயற்கை அறிவாற்றல் தான் சரியான தீர்வாக அமையும். நமது நவீன தொலைபேசியில் உடற்பயிற்சியை கண்காணிக்க நிறைய செயளிகள் உள்ளன. Run keeper, Mapmyrun இந்த மாறி செயலிகளை ஒரு வருடம் உபயோகித்து இருந்தால் அதன் தகவல்களை செயற்கை அறிவு ஆற்றலுக்கு ஒரு குழந்தைக்கு எது சரி அது தவறு என்று சொல்லி கொடுப்பதுபோல் நான் எப்போதுஎல்லாம் உடற்பயிற்சி செய்யலாம் /செய்யக்கூடாது என்பதை சொல்லி கொடுக்க முடியும்.

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

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

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

Introduction to Deep Learning Image Classification using Keras

DeepLearning is a powerful tool that can be used to solve lot of problems. I can’t solve all the problems in this world, if I can inspire few others to take Deep Learning to solve other problems it will make a positive impact in this society. I believe in spreading knowledge to all segments. Below is the youtube link for a talk i gave in Demystifying Artificial Intelligence conference couple of weeks back

I am part of IDLI group (Indian Deep Learning Initiative) which is trying get DeepLearning promoted in India. We are organizing lot of youtube live sessions. I gave the same talk with screen sharing. If you like to see code when someone is talking and not presenters face then this youtube link is for you

When to use Machine Learning?

Should I get started with “Machine Learning” to improve my situation?

If you are trying to pick an action based on a problem you are facing, how should you approach it? You have heard a lot or a little about “Machine Learning.” Here’s my personal story to help you decide.

As a software programmer, when I want solve a problem, I try to figure out a way to automate it. Being a machine learning engineer, I begin comparing to the oldest problem solving method: deterministic programming.

Malai Running

Being active is my passion. Everyday, I decide whether to go outside for a run outdoors. Situations that influence my decision are:

  1. Is it raining outside?

    • Yes –> Don’t run
    • No –> I think I can run.
  2. Time of the day?

    • Is it 10 P.M to 5 A.M –> Dont’ run. Too dark outside.
    • 5 A.M to 7 A.M –> I think I can run.
    • 8 A.M to 9 A.M –> Am I working from home? I think I can run.
    • 9-5 P.M –> Don’t run. Office work.
    • 5 P.M -7 P.M –> I think I can run.
    • 7 P.M - 9 P.M –> if it is not too dark then I can run.
    • 9 P.M - 10 P.M –> After dinner, I don’t run.
  3. Do I have to drop my son in school?

    • Is it Morning school drop time ( 8.30 A.M to 9 A.M) –> Dont run
    • Is it evening school pickup time (4.45 P.M to 5.15 P.M) –> Dont run.
    • Other times. I think I can run.
  4. What is the temperature outside?

    • 50-80F –> I think I can run.
    • 80F-110F –> I don’t think I can run. Too hot.
    • 0F - 50F –> I am not running.

If I do this deterministically, then I will end up with lot of “If” conditions for all the permutations of combinations that are possible . With just 4 attributes, it is getting complex. Imagine having hundreds of attributes influencing whether I want to run or not. This is where machine learning will save my day. (Did I mention that I am a lazy programmer? Good code is better than more code.).

A machine learning model “projects past on future” to “learn” whether I will run outside or not. With historical data of my running (Map my run, Garmin, Fitbit, Apple Watch) + publicly available weather data, I can train a machine learning model (classification problem) to decide whether I want to run or not. A set of machine learning algorithms will approximate a decision boundary for this problem. Output from the machine learning algorithm is probability for 2 classes: a) run or b) don’t run.

Do you see? Machine learning rocks. This story is perfect for a supervised classification problem.

Natural Language Processing using Word2Vec

Natural Language Processing is a complicated area. Computers are really good at crunching numbers but not so much with text. We have to specifically instruct them on how to handle text. For Text analytics to be carried out we have to represent text in a form the computers can understand i.e. in the form of numbers.

  • The method for doing this varies.
  • A good method is one that captures as much of the meaning of the text as possible.

After this is done, analysis can be carried out on these numbers in the same way as dealing with numbers.

Conventional Text Analysis or Bag of Word Models

Lets take this example text “SanFrancisco is a beautiful California city. LosAngeles is a lovely California metropolis”

Popular way of converting this text to numbers is known as “Bag of Words” model. Each word is extracted from the text and put in a bag together.Each word in the bag is then assigned a suitable value. Lets parse the example text and extract words

“SanFrancisco”, “is”, “a”, “city”, “LosAngeles” ,”lovely”, “California”, “metropolis”.

Stop words are the most common words in a language. In the extracted list of words “is” , “a” are considered stop words hence it will be ignored. So the final list of extracted words will be

“SanFrancisco”, “beautiful”, “city” ,”LosAngeles”, “lovely” , “California” , “metropolis”

In Bag of Words model each word is assigned a value based on number of times it occurs in the text.

SanFrancisco beautiful city LosAngeles lovely California metropolis
1 1 1 1 1 2 1

This approach has lot of disadvantages, few of those are listed below

  • It does not capture the order of words in the original text.
  • It does not capture the context of the text.
  • It does not capture about the meanings of the words.

What we are telling the computer using this approach is city, lovely, metropolis are all equal. Even though city and metropolis are equivalent and lovely is something very different.

Neural Language models

Prof Yoshua Bengio started this work in 2008. A language model is an algorithm for capturing the salient statistical characteristics of the distribution of sequences of words in a natural language.

A neural language model learn distributed representations on words to reduce the impact of the curse of dimensionality. Curse of dimensionality is when number of input variable grows the number of required examples to train a model grows exponentially.

You can read more about this work in this link

Word2vec – Word to Vector

Word2Vec is one of the influential papers in Natural Language Processing. It has nearly 3000 citations. Word2Vec improves on Prof Yoshua Bengio’s earlier work on Neural Language Models. Word2Vec was created by google, with main author being Tomas Mikolov. You can read the original paper here.

Word2vec is an answer to all the disadvantages listed in the previous section.

  • It is intelligent, learns context of the text.
  • Understands sentences, and not just individual words.
  • Understands relationships between words.

We understand what a word is, lets see what a vector is. A vector is a sequence of numbers that forms a group. For example

  • (3) is a one dimensional vector.
  • (2,8) is a two dimensional vector.
  • (12,6,7,4) is a four dimensional vector.

A vector can be represented as by plotting on a graph. Lets take a 2D example

2D Plot

We can only 3 dimensions, anything more than that you can just say it not visualize.

How Word2Vec works

For a input text it looks at each word and the context of words around it. It trains on the text, and recognizes the order of each word, and the structure of the sentences. At the end of training each word is represented by a vector of N (mostly in 100 to 300 range) dimension.

Word2Vec

When we train word2vec algorithm in the example discussed above “SanFrancisco is a beautiful California city. LosAngeles is a lovely California metropolis”

Lets assume that it outputs 2 dimension vectors for each words, since we can’t visualize anything more than 3 dimension.

  • SanFrancisco (6,6)
  • beautiful (-13,-4)
  • California (10,8)
  • city (2,10)
  • LosAngeles (6.5,5)
  • lovely(-12,-7)
  • metropolis(2.5,8)

Below is a 2D Plot of vectors

2DPlot

You can see in the image that Word2vec algorithm inferred from the input text. SanFrancisco and LosAngeles are grouped together. Beautiful and lovely are grouped together. City and metropolis are grouped together. Beauty about this is, Word2vec deduced this purely from data, without being explicitly taught english or geography.

Word2vec and Analogies

Word2vec algorithm is really good in discovering analogies on data. In the below plot from relative position analogies can be observed.

2DPlot

Algorithm knows the answer to

  • If SanFrancisco : beautiful
  • then LosAngeles : ???

Answer : lovely

To get to the answer do

  1. Draw a line from SanFrancisco to beautiful
  2. Shift this line to LosAngeles
  3. Find the end-point of this line.

Similarly you can draw other analogies like

  • if SanFrancisco : city
  • then LosAngeles : metropolis

Math for Analogies is beautiful, it can be expressed in simple vector arithmetic.

  • SanFrancisco - LosAngeles = beautiful - [unknown]
  • [unknown] = beautiful + LosAngeles - SanFrancisco
  • [unknown] = (-12.5,5) which is close to lovely

vector

Google trained Word2Vec on a large volume data, it came up with some interesting analogies

King

countries and capitals

Word2vec depicting relationships between countries and capitals Analogy

Machine translation

In complicated use-cases models can understand translations from one language to another.

MachineTranslation

Contributions

Thanks to Arthur Chan for suggesting changes to the blog.

Further Reading