Malaikannan The Deep Learning way of life

Ai in clinical trials

American Tamil Enterprenur association invited me for a talk on AI. Below is the video on the talk, this was a fun talk loaded with lot of MEMEs

Learned index

Jeff Dean and Co came up with a Seminal Paper on whether Indexes can be learned using Neural Networks. I gave a talk in Saama Tech Talk Series on this topic. Guess I am moving more towards talking rather than writing nowadays.

Natural language processing tools for tamil

Language is a beautiful thing, Tamil as a Language is even more beautiful. Need for learning other languages like English is for commerce, communication among other things. Languages that have written form and grammar have survived longer than languages that are without it. Technology is playing the role of written form and grammar now. English being the most spoken and written language in the world has the benefit of lot of technology and tools developed to understand language better. English has lot of good systems developed as open source as well as by the companies like Google,Facebook, Microsoft etc for Speech to Text, Syntactic Parser, Stemmer, Lemmatizer, Parts of Speech Tagger etc. This was due to years of data collection, research, availability of computing power and to great extent due to Deep Learning. We have to develop most of these Natural Language Understanding tools for Tamil, there are some that exist but they are in very very early stages. When a language is beautiful it is complicated too, English has 26 alphabets and Tamil has 247 alphabets, and the grammar rules are different between English and Tamil. In most cases we are limited by the lack of available data for us(tech community) to build these tools. These tools when built should be open sourced under Apache 2.0 license, so it is available for public to use for free. I have listed few key activities that have to be performed for this to be successful

  1. Website to be created to list out mission statement and project status. This can be as simple as github pages.
  2. Android app to be developed for data collection and even gamify it. For e.g. for Speech to Text similar to how Mozilla recently asked people to donate their voices to develop open source Speech to Text System for English. They open sourced the code and the trained model.
  3. Data Access. There are research libraries that have digitized lot of books, dailies, news papers etc. If that data is publicly available, it can spawn multiple research similar to how Project Gutenberg did. One low hanging fruit for algorithm would be a vectorization engine for Tamil words.
  4. Community involvement. This effort will not succeed without community involvement, particularly without student and teacher community for data collection.
  5. Tech community involvement to develop this as open-source.
  6. Eminent linguistic advisors to advise the correct approach for Tamil.
  7. Technology advisors on right technology choices to solving problems.
  8. Advisors to help registering and managing this as a non-profit and may be even seeking grants and sponsorship. This can start as a small thing, but if it has to be taken seriously it has to be registered as a non-profit organization.
  9. Advisors who can help with media and press out-reach.

Why use Activation Functions in Deep Learning ?

Machine Learning or Deep Learning is all about using Affine Maps. Affine map is a function which can be expressed as

f(x) = WX + b

Where W and X are matrix, and b (bias term) is a vector. Deep learning learns parameters W and b. In Deep Learning you can stack multiple affine maps on top of one another. for e.g

  • f(x) = WX + b
  • g(x) = VX + d

If we stack one affine map over the other then

  • f(g(x)) = W (VX +d) + b
  • f(g(x)) = WVx + Wd + b

WV is a matrix , Wd and b are vectors.

Deep learning requires lot of affine maps stacked on top of the other. But Composing one affine map over the other gives another affine map so stacking is not going to give the desired effect and it gives nothing more than what a single affine map is going to give. It still leaves us with a linear model. In a classification problem linear model will not be able to solve for a non-linear decision boundary.

How do we solve this ? By introducing non-linearity between affine maps/layers. Most commonly used non-linear functions are

  • Tanh
  • Sigmoid
  • RELU

When there are lot of non-linear functions why use only the above ones ? Because the derivatives of these functions are easier to compute which is how Deep Learning algorithms learn. Non-Linear functions are called Activation functions in Deep Learning world.

Thanks to Dr Jacob Minz suggestion to add explanation about Universal Approximation Theorem. Universal Approximation Theorem says that when you introduce simple non-linearity between affine layers, you’ll be able to approximate any function to any arbitrary degree (as close to that function as you want). If there is a pattern in the data, the neural network will “learn” it given enough of computation and data.

You can read more about the Activation functions in wiki. Who writes better about Neural Networks than Chris Olah. Refer to his blog for further reading. Spandan Madan has written a quora answer on the similar topic

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

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

மின்சாரம்

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

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

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

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

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