Wednesday, April 28, 2021

আর্টিফিশিয়াল ইন্টেলিজেন্সের(AI) কিছু প্রকারভেদ

[সংবিধিবদ্ধ সতর্কীকরণঃ আগেই বলে রাখি, এখানে আমি তেমন কঠিন কোনো টার্ম বা অফিশিয়াল কোনো কিছু ব্যবহার করবো না। এমন ও হতে পারে কিছু কিছু পোস্টে এআই (AI = Artificial Intelligence) এর কোনো কিছুই নাই বা আগামাথা মিলানো যাচ্ছে না। এই ব্লগ আসলে AI শিখাবে বা এটা AI এর টিউটোরিয়াল এমন কিছু না। এটা শুধুমাত্র একটা ধারণা দেয়ার চেষ্টা করবে। এখানে এমন কিছু উদাহরণ দেয়া হতে পারে যা আপাতত AI দিয়ে বানানো সম্ভব হয় নাই কিন্তু বোঝানোর সুবিধার্থে দেয়া হয়েছে।] 

যদি আগের পোস্টগুলা পড়া হয়ে থাকে তাহলে এখন মোটামুটি জানি যে আর্টিফিশিয়াল ইন্টেলিজেন্স কি জিনিস। অন্তত কিছু কনসেপ্ট ক্লিয়ার আছে, এবং এর উপর ভিত্তি করে আমরা কিছু ধারণা করতে পারি আর্টিফিশিয়াল ইন্টেলিজেন্স কি জিনিস। এখন এই আর্টিফিশিয়াল ইন্টেলিজেন্সকে দুটি বিষয়ের উপর ভিত্তি করে কিছু প্রকারে ভাগ করা হয়।
*    সক্ষমতার (Capability) উপর ভিত্তি করে ৩ ভাগে

 1. Narrow AI or Weak AI (দুর্বল আর্টিফিয়াল ইন্টেলিজেন্স)

 2. General AI (সাধারণ আর্টিফিশিয়াল ইন্টেলিজেন্স)

 3. Strong AI (শক্তিশালী আর্টিফিয়াল ইন্টেলিজেন্স)

*     কাজের (Functionality) উপর ভিত্তি করে ৪ ভাগে

 1. Reactive Machine  (প্রতিক্রিয়াশীল মেশিন)

 2. Limited Memory Machine ( নির্দিষ্ট (স্বল্প) মেমরীযুক্ত যন্ত্র)

 3. Theory of Mind (মন সম্পর্কিত থিওরী)

 4. Self Awareness AI (আত্মসচেতন আর্টিফিশিয়াল ইন্টেলিজন্স) 

 Narrow AI or Weak AI: Narrow AI বা Weak AI বলতে সেই AI কে বুঝায় যেটা কোন একটা পার্টিকুলার ডোমেইনে চিন্তা করা শিখিয়ে দিলে (আগেই ব্লগে বলেছিলাম যে এখন পর্যন্ত যেই AI আসছে তা লিমিটেড চিন্তা করতে পারে।)  সেটা নিয়ে চিন্তা করতে পারে ও সলিউশন করতে পারে। তাকে যা শিখিয়ে দেয়া হয় এর বাইরে সে কোন কিছু চিন্তা বা শেখার কাজ করতে পারে না। এখন পর্যন্ত মোটামুটি যে সকল ধরণের AI সিস্টেম আছে তার সবই Narrow AI বা Weak AI (অন্তত এখন ২০২১ পর্যন্ত)।

General AI: General AI হচ্ছে সেই সকল AI সিস্টেম যা Natural AI এর মত কাজ করে। অর্থাৎ যে সকল AI প্রায় মানুষের মত চিন্তা করতে পারে বা বুদ্ধি প্রকাশ করে তাদেরকে General AI বলে। এটা এখন পর্যন্ত সম্পুর্ণভাবে তৈরি হয়নি, এটা নিয়ে রিসার্চ চলছে। গবেষকগণ এটা নিয়ে কাজ করছেন।

Strong AI: Strong AI হচ্ছে সেই AI যা মানুষের থেকেও বেটার চিন্তাভাবনা করতে পারে। অর্থাৎ এই সিস্টেমগুলো মানুষের থেকে বেটার সলিউশন বের করতে সক্ষম হবে, এরা হবে ইফিশিয়েন্ট, এবং মানুষের দ্বারা যে সকল প্রব্লেম সল্ভ করা সম্ভব হয় নি সেই প্রব্লেমগুলো এই AI সিস্টেমগুলো সল্ভ করবে। এটা আসলে একটা হাইপোথিসিস, এটা এখনো সম্ভব হয় নি। এখন এমনটা আপনার কাছে মনে হতে পারে যে,  "আরে ভাই,  এটা কি সম্ভব নাকি? শিখাবে মানুষ, এখন মানুষ যদি না পারে সল্ভ করতে তাহলে কম্পিউটারকে কিভাবে শিখাবে?" তাহলে একবার দাবা খেলার কথা চিন্তা করেন, খেলায় পারবেন তো কম্পিউটারের সাথে?

Reactive Machine: Reactive Machine ভবিষ্যতের কোন কাজের জন্য অতীতের কোন ডেটা মনে রাখে না, সে শুধু সাম্প্রতিক দৃশ্যপটের (current scenario) উপর ফোকাস করে। IBM Deep Blue ও Google AlphaGo হচ্ছে Reactive Machine এর উদাহরণ।

Limited Memory Machine: এই মেশিন এর মেমরি কম থাকে, এজন্য এরা খুব অল্প সময়ের জন্য ডাটা সেভ করে রাখে। যেমনঃ ড্রাইভারবিহীন গাড়ি। 

Theory of Mind: এসকল AI মানুষের চিন্তাভাবনা, বিশ্বাস, অনুভুতি এসকল জিনিস নিয়ে কাজ করতে পারে (পারবে)। এটা আসলে একটা থিউরি, এটা ডেভেলপমেন্টের কাজ চলছে।

Self Awareness: এটাও আসলে থিউরি। এখানে কম্পিউটারের নিজস্ব চিন্তাভাবনা থাকবে, থাকবে নিজের অনুভুতি, শেখার ক্ষমতা, এমনকি কোন কাজে নেতৃত্ব দেয়ার ক্ষমতাও থাকতে পারে। 

এগুলো ছিলো AI এর কিছু প্রকারভেদ। এর থেকে বেশি কিছু জানতে হলে গুগল করে দেখতে পারো। আমরা আর আপাতত AI এর থিউরি নিয়ে আর মাথা খাটাবো না, কারণ AI এর প্রথম স্টেপ মেশিনকে শেখানো, অর্থাৎ Machine Learning. আমরা পরবর্তিতে এই Machine Learning নিয়ে আলোচনা করবো। 

Wednesday, April 21, 2021

আর্টিফিশিয়াল ইন্টেলিজেন্স এর কিছু Fundamental

 [সংবিধিবদ্ধ সতর্কীকরণঃ আগেই বলে রাখি, এখানে আমি তেমন কঠিন কোনো টার্ম বা অফিশিয়াল কোনো কিছু ব্যবহার করবো না। এমন ও হতে পারে কিছু কিছু পোস্টে এআই (AI = Artificial Intelligence) এর কোনো কিছুই নাই বা আগামাথা মিলানো যাচ্ছে না। এই ব্লগ আসলে AI শিখাবে বা এটা AI এর টিউটোরিয়াল এমন কিছু না। এটা শুধুমাত্র একটা ধারণা দেয়ার চেষ্টা করবে। এখানে এমন কিছু উদাহরণ দেয়া হতে পারে যা আপাতত AI দিয়ে বানানো সম্ভব হয় নাই কিন্তু বোঝানোর সুবিধার্থে দেয়া হয়েছে।] 

[দ্বিতীয় সংবিধিবিদ্ধ সতর্কীকরণঃ এখানে আসলে কিছু জিনিস ইংরেজি থেকে অনুবাদ করা হয়েছে, আর যেগুলো এরকম ইংরেজি থেকে অনুবাদ হয় সেগুলো মাশাল্লাহ ঐরকমই হয়। এজন্য আমি অনুবাদের সাথে ইংরেজিও দেয়ার চেষ্টা করেছি। এখন অনুবাদ পছন্দ না হলে ক্ষমাপ্রার্থী।]

আমাদের এই AI এর আলোচনায় মোটামুটি একটা বিষয় পরিষ্কার যে আমাদের কোন একটা ওয়ে তে কম্পিউটারকে (মেশিনকে) বুদ্ধি দেয়া লাগবে। এখন বড় যে সমস্যা সেটা হচ্ছে, কম্পিউটারকে মোটামুটি প্রত্যেকটা বিষয়ই শিখায়া দেয়া লাগে কারণ কম্পিউটার এর মেমোরীকে পুরা একটা খালি স্পেস বলা যায়। এখন কম্পিউটার যেহেতু নিজে থেকে কিছুই করতে পারে না তাই কম্পিউটারকে সব বলে দিতে হবে। এবং সব বলতে সব। মানুষ অ্যাট লিস্ট নিজে থেকে চিন্তা করতে পারে, কিছু হলেও পারে। যদিও সবার চিন্তা করার লেভেল সমান না কিন্তু যার যতটুকু লেভেল তাকে ওইখান থেকে শিখিয়ে দিলে বাকি চিন্তা নিজে থেকে ইভলভ করতে পারে। কিন্তু কম্পিউটারের সেই সুযোগ নেই। তাকে শুন্য থেকে শিখানো লাগবে। আর কম্পিউটারকে যদি চিন্তা করতে শিখানো লাগে তাহলে নিজেদের আগে বোঝা লাগবে "চিন্তা" জিনিসটা কি। এখন আমরা সবাই চিন্তা করতে পারি। যদি চিন্তা করার কথা মাথায় আসে তাহলে হয়ত চোখের সামনে একটা মানুষ ভাসে যে গালে হাত দিয়ে মুখটা কেমন যেন করে কিছু ভাবছে। কিন্তু এটা যদি কম্পিউটারকে বলা হয় তাহলে কম্পিউটার কিছুই বুঝবে না। আর এই চিত্র আসলে অ্যাপ্লাই করার মত কিছু না। আমাদের প্রথমে "চিন্তা" বিষয়টাকে কিছু ইনফরমেশন এর ভিত্তিতে বোঝা লাগবে এবং এরপর এই ইনফরমেশন ডাটা কম্পিউটারকে প্রোগ্রাম করে শিখানো লাগবে। আর আমি শিউর কেউ কম্পিউটারকে উপরের গালে হাত দেয়া চিত্র থেকে প্রোগ্রাম করে কিছু শিখাতে পারবে না। তাহলে প্রথমে দেখা যাক "চিন্তা" কি?

চিন্তাঃ আসলে চিন্তা জিনিসটা কতগুলো বিষয়ের সমষ্টি বলা চলে। সেই বিষয়গুলো হলোঃ দর্শন(Philosophy), গণিত (Mathematics), অর্থনীতি (Economics), স্নায়ুবিজ্ঞান (Neuroscience), মনোবিজ্ঞান (Psychology), কম্পিউটার প্রকৌশল (Computer Engineering), কন্ট্রোল থিউরি ও সাইবারনেটিক্স (Control Theory and Cybernetics), ভাষাতত্ব (Linguistics)। 

দর্শন (Philosophy): দর্শন থেকে এই চারটি বিষয় AI এর fundamental হিসেবে ধরা হয়ঃ

১. সাধারণ নিয়মকানুন কি ভ্যালিড সমাপ্তি টানতে পারে?

২. ফিজিক্যাল ব্রেইন থেকে কিভাবে মন (Mental Mind) এর উদয় হয়?

৩. জ্ঞান কোথা থেকে আসে?

৪. জ্ঞান কিভাবে কোন কাজের দিকে ধাবিত করে (How does knowledge lead to action)?

অ্যারিস্টটল সর্বপ্রথম কিছু Precise নিয়ম বের করেন মনের যৌক্তিক অংশ পরিচালনার। অর্থাৎ প্রথম যে প্রশ্ন, তার উত্তর বের করার চেষ্টা করেন। যদিও এর উত্তর এক্সাক্টলি বের করা সম্ভব না, কিন্তু কম্পিউটারকে শিখানোর জন্য যা দরকার তার অনেকটাই বের করা হয়েছে এবং আরো আপডেট করার ট্রাই চলছে (আরো বেশি জানতে Please Google)।  

গণিত (Mathematics): গণিত থেকে এই তিনটি বিষয় AI এর fundamental হিসেবে ধরা হয়ঃ

* ভ্যালিড সমাপ্তি টানার কি জন্য ফরমাল নিয়ম (বা সূত্র) আছে?

* কি কি গণনা করা যায় (চিন্তা বিষয়ক)

* অনিশ্চিত ইনফরমেশনের মধ্যে কিভাবে কারণ বের করা যায় (How do we reason with uncertain information?)

 অর্থনীতি (Economics): অর্থনীতি থেকে এই তিনটি বিষয় AI এর fundamental হিসেবে ধরা হয়ঃ

* কিভাবে চিন্তা করা যায় যেন সর্বোচ্চ ফলাফল পাওয়া যায়?

* অন্যরা কোন কাজের সাথে না গেলে কিভাবে এটা করা উচিৎ?

* যদি ফলাফল অনেক পরে পাওয়া যায় তাহলে আমাদের কিভাবে আর কি করা উচিৎ?

স্নায়ুবিজ্ঞান (Neuroscience): স্নায়ুবিজ্ঞান থেকে নিচের বিষয়টি AI এর fundamental হিসেবে ধরা হয়ঃ

* মানুষের ব্রেইন কিভাবে ইনফরমেশন প্রসেস করে?

মনোবিজ্ঞান (Psychology): মনোবিজ্ঞান থেকে নিচের বিষয়টি AI এর fundamental হিসেবে ধরা হয়ঃ

 * মানুষ এবং অন্যান্য প্রাণী কিভাবে চিন্তা করে ও সে অনুযায়ী কাজ করে?

কম্পিউটার প্রকৌশল (Computer Engineering): 

* কিভাবে একটি ইফিশিয়েন্ট ও ইফেক্টিভ কম্পিউটার তৈরি করা যায়?

কন্ট্রোল থিওরী ও সাইবারনেটিক্স (Control Theory & Cybernetics): 

* কিভাবে কোন কিছুকে তাদের নিজেদের কন্ট্রোলে পরিচালনা করা যায়?

ভাষাতত্ব (Linguistics): 

* ভাষার সাথে কিভাবে মানুষের চিন্তাভাবনার যোগসূত্র আছে? 

 এসকল প্রশ্নের উপর ভিত্তি করে আর্টিফিশিয়াল ইন্টেলিজেন্স দাঁড়ানো। এগুলোর ব্যাপারে কেউ বিস্তারিত জানতে চাইলে গুগল করে নিতে পারেন। তবে ফর বিগিনার আমার মনে হয় না এগুলোর বিস্তারিত জানা আপাতত দরকার। শুধুমাত্র AI এর কন্সেপ্ট ক্লিয়ার রাখার জন্য এগুলো জরুরি, আর তেমন কিছু নয়। আমরা এর পরের পোস্ট গুলোতে কিভাবে কি কাজ করে সেগুলো দেখার চেস্টা করবো।

Sunday, April 18, 2021

আর্টিফিশিয়াল ইন্টেলিজেন্স, মেশিন লার্নিং, ইমেজ প্রসেসিং, প্যাটার্ণ রিকগনিশন ইত্যাদি ইত্যাদি

[সংবিধিবদ্ধ সতর্কীকরণঃ আগেই বলে রাখি, এখানে আমি তেমন কঠিন কোনো টার্ম বা অফিশিয়াল কোনো কিছু ব্যবহার করবো না। এমন ও হতে পারে কিছু কিছু পোস্টে এআই (AI = Artificial Intelligence) এর কোনো কিছুই নাই বা আগামাথা মিলানো যাচ্ছে না। এই ব্লগ আসলে AI শিখাবে বা এটা AI এর টিউটোরিয়াল এমন কিছু না। এটা শুধুমাত্র একটা ধারণা দেয়ার চেষ্টা করবে। এখানে এমন কিছু উদাহরণ দেয়া হতে পারে যা আপাতত AI দিয়ে বানানো সম্ভব হয় নাই কিন্তু বোঝানোর সুবিধার্থে দেয়া হয়েছে।] 

Artificial Intelligence: সহজ কথায় বলতে গেলে আর্টিফিশিয়াল ইন্টেলিজেন্স হচ্ছে, কোনো একটা মেশিন ইউজ করে কমপ্লেক্স এমন কিছু প্রবলেম সলভ করা যার জন্য রিয়েল টাইম ইন্টেলিজেন্সি দরকার। অর্থাৎ, আমাদের এরকম কিছু প্রবলেম সলভ করা লাগবে বা কাজ করা লাগবে যেখানে যেই-ই প্রবলেম সলভ করুক না কেন, তার চিন্তা করা লাগবে। এখন মেশিন তো আমরা জানি চিন্তা করতে পারে না।তাহলে মেশিন দিয়ে এসব প্রবলেম কিভাবে সলভ করবো? আসলে মেশিন নিজে থেকে চিন্তা করতে পারে না এটাই সত্যি। কিন্তু এখনকার মেশিনগুলোকে শিখিয়ে দিলে আবার চিন্তা করতে পারে! - মানে কি? পার্থক্য কই? চিন্তা করতে পারলে তো নিজে নিজে কি আর শিখাইলে কি? আসলে এখানে পার্থক্য আছে। পার্থক্য হলো, মনে করো আমি মেশিনকে গরু চিনাইলাম আর শিখাইলাম কিভাবে চিন্তা ভাবনা করে একটা নতুন গরু দেখলে চেনা যায়। সে এখন একটা প্রাণী দেখলে বলতে পারবে যে সেটা গরু কি না। কিন্তু সে এর বাইরে নতুন প্রাণীটা নিয়ে চিন্তা করতে পারবে না যে এটা এমন কেন? এটার গরুর মত ওটা নেই কেন? হ্যান,ত্যান যেটা মানুষ পারে। আর এখানেই NI আর AI এর পার্থক্য (NI = Natural Intelligence মানে মানুষের বুদ্ধিমত্তা)। NI আনলিমিটেড চিন্তা ভাবনা নিজে নিজেই করতে পারে কিন্তু AI এর চিন্তার পরিসর লিমিটেড। অর্থাৎ, মেশিন কে যদি আমরা চিন্তা করতে শিখাই তাহলেও কিছু লিমিটেড কাজ ই করানো যাবে (বাই দ্যা ওয়ে, এখানে যে পরিসর বললাম এটাকে ডোমেইন বলে।এখন থেকে ডোমেইন ইউজ করবো, কেমন?)। 

 Machine Learning: মেশিং লার্নিং মানে মেশিনের ব্যাপারে লার্ন করা। তাই তো? ভাই এগুলা ভুয়া কথা, কান দিও না। এটাকে মেশিন লার্নিং বলা হয় কারণ এখানে মেশিনকে লার্ন করানো হয়। কিছু অ্যালগোরিদমের মাধ্যমে মেশিনকে শিখানো হয় কোনো একটা নির্দিষ্ট ডোমেইনে কাজ করা। যেমন, কোনো একটা নির্দিষ্ট এরিয়াতে অনেকগুলা বাসা ভাড়ার ব্যাপারে মেশিনকে বলে দিয়ে শিখানো হলো যে, এইরকম একটা বাসার ভাড়া (বা দাম) এত টাকা হতে পারে। এখন তাকে একটা বাসা দেয়া হলে সে বলে দেবে যে এটার দাম কত হওয়া উচিৎ বা হবে। এটা তাকে শিখিয়ে দেয়া যায়। আবার, একটু আগে যে গরু চেনানোর কথা বললাম, তাকে আগে শিখানো হয় যে কি দেখে গরু চেনা লাগে। পরে সে নিজেই চিনতে পারে। 

Image Processing: ইমেজ প্রসেসিং হচ্ছে এমন একটা সিস্টেম যেখানে ছবির উপর কিছু কাজ করে এর থেকে ইনফরমেশন (বা ডাটা) বের করা হয়। এখানে একটা মেশিন বা কম্পিউটারকে শিখিয়ে দেয়া হয় কিভাবে একটা ছবি থেকে ডাটা রিট্রিভ করা যায় এবং সেই ডাটা নিয়ে পরে কাজ করা হয়। যেমন, আমরা যে উপরে গরু চেনার উদাহরণ টা দিয়েছি, সেটা যদি আমি গরুর ছবি দিয়ে সেটা থেকে ডাটা রিট্রিভ করা শিখিয়ে দেই তাহলে এটাই ইমেজ প্রসেসিং হবে। তবে এটা কিন্তু পিকচার এডিটিং এর সাথে মিলিয়ে ফেলো না! সেটা ভিন্ন জিনিস। তবে ইমেজ প্রসেসিং ইউজ করে এডিটিং এর কাজও কিন্তু অনেক ভালো করা যাবে। যেমন, তোমরা অনেক অ্যাপ বা সফটওয়্যার দেখেছো হয়তো যেখানে একটা ছবির উপর আরেকটা ছবি থেকে কষ্ট করে কেটে চেহারা এনে বসানো লাগে না। দুটি ছবি দিয়ে দিলে মেশিন নিজে নিজে ই চেহারা খুবই সুক্ষ্মভাবে বসিয়ে দেয়। এটা কিন্তু একটা ইমেজ প্রসেসিং এর উদাহরণ। অনেক সময় এদের নামে বা ডেস্ক্রিপশন এ বলে দেয় যে AI app বা AI Software। 

Pattern Recognition: এই যে, বস চলে এসেছে। প্যাটার্ণ রিকগনিশন মানে হচ্ছে কিছু ইনফরমেশন দেয়া হলে এদের মধ্যে প্যাটার্ণ (সাধারণ নমুনা) খুঁজে বের করা। আমাদের সেই গরুর উদাহরণে চলে আসা যাক। আমরা যে গরুর ছবি দিয়ে তাকে শিখাচ্ছি, কি শিখাচ্ছি? আমরা আসলে তাকে সবগুলো ছবির মাঝখানে একটা প্যাটার্ণ বের করা শিখিয়েছি। যেখানে সে কিছু প্যাটার্ণ বের করে একটা মডেল হিসেবে মনে রাখবে। এই মডেলে সে নতুন ছবি বসিয়ে মিলাবে কতটুকু প্যাটার্ণ মিলে। যদি মিলে যায় (হয়তো পুরোপুরি না কিন্তু একটা কনভিন্সিং লেভেলে) তাহলে সে বলবে যে এটা গরু নাহলে বলবে যে ভাই, এটা গরু না। প্যাটার্ণ রিকগনিশন আসলে এখনকার AI এর অধিকাংশ জুড়ে আছে। যদি নিজে নিজে চিন্তা করো যে, কোনটা কি? আর আশেপাশের বিভিন্ন মডার্ণ ডিভাইস বা মেশিন (গাড়ি, মোবাইল, পিসি ইত্যাদি) এর বিভিন্ন ব্যবহারের মধ্যে যদি AI খুঁজে বেড়াও তাহলে নিজেই মোটামুটি বুঝতে পারবে কোনটা কি! 

আসলে উপরে যে চারটার কথা বলা হয়েছে ব্যাপারগুলা এমন না যে আমি হয় AI ইউজ করবো বা ML ইউজ করবো বা IP অথবা PR ইউজ করবো। আসলে একইসাথে একাধিক ইউজ করা যেতেই পারে। একটা করার জন্য আরেকটা ইউজ করা যেতে পারে। যেমন, মেশিনকে শিখানোর জন্য ছবি থেকে প্যাটার্ণ বের করে মডেল দাঁড় করিয়েছি। এরপর দুটি ছবি দিয়ে একটির চেহারায় আরেকটি বসিয়ে দেবার জন্য AI সিস্টেম বানালাম। এখানে ইমেজ প্রসেসিং আর প্যাটার্ণ রিকগনিশন দিয়ে মেশিন লার্ন করালাম। এরপর এদের দিয়েই কাজটা করালাম, যেটা AI। সামনে আরো অনেক বিষয় নিয়ে কথা বলা হবে। আজকে এখানেই শেষ। টা টা।

আর্টিফিশিয়াল ইন্টেলিজেন্সের(AI) কিছু প্রকারভেদ

[সংবিধিবদ্ধ সতর্কীকরণঃ আগেই বলে রাখি, এখানে আমি তেমন কঠিন কোনো টার্ম বা অফিশিয়াল কোনো কিছু ব্যবহার করবো না। এমন ও হতে পারে কিছু কিছু পোস্টে ...