কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence), কৃত্রিম বুদ্ধিমত্তার ক্ষেত্রসমূহ
কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence)
কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence) শব্দটি ১৯৫৬ সালে জন ম্যাকার্থি (John McCarthy) প্রথম চালু করেন। কৃত্রিম বুদ্ধিমত্তা হলো কম্পিউটার বিজ্ঞানের একটি শাখা, যেখানে মানুষের বুদ্ধিমত্তা ও চিন্তাশক্তিকে কম্পিউটার দ্বারা অনুকৃত করার চেষ্টা করা হয়ে থাকে। একটি যন্ত্রকে মানুষের মতো বুদ্ধিমত্তা দিয়ে সেটিকে চিন্তাশক্তি, বুদ্ধি কিংবা বিশ্লেষণ করানোর ক্ষমতা দেওয়ার ধারণাটিকে সাধারণভাবে কৃত্রিম বুদ্ধিমত্তা বলা হয়। অর্থাৎ কোনো ঘটনা বা পরিস্থিতির সাপেক্ষে কোনো যন্ত্র (যেমন— কম্পিউটার) কী ধরনের সিদ্ধান্ত নিবে তার সক্ষমতা পরিমাপন পদ্ধতি হলো কৃত্রিম বুদ্ধিমত্তা ।
রোবট, ভয়েজ প্রসেসিং, নিউরাল নেটওয়ার্ক, ভার্চুয়াল রিয়েলিটি, জটিল ভিডিও গেমস ইত্যাদি ক্ষেত্রে কৃত্রিম বুদ্ধিমত্তা ব্যবহার করা হয়। কৃত্রিম বুদ্ধিমত্তার জন্য কম্পিউটারে বিশেষ প্রোগ্রাম ও ডেটা ইনপুট করা হয়। সমস্যা সমাধানের জন্য কম্পিউটারের মেমোরিতে সঞ্চিত তথ্য ও উপাত্ত বিশ্লেষণ করে কম্পিউটার জটিল সমস্যার সমাধান করে থাকে। কৃত্রিম বুদ্ধিমত্তা কতকগুলো বিশেষ গুণের সমষ্টি। যেমন- যেকোনো বিষয় সম্পর্কে জ্ঞান অর্জন করতে পারা, কোনো নির্দিষ্ট বিষয় সম্পর্কে ধারণা দেওয়া, অর্জিত জ্ঞান কাজে লাগাতে পারা, নতুন অবস্থার পরিপ্রেক্ষিতে দ্রুত ও সফলভাবে সাড়া দেওয়া, ভাষা বুঝতে পারা, সিদ্ধান্ত গ্রহণের ক্ষমতা, সমস্যা সমাধানের ক্ষমতা, অভিজ্ঞতা থেকে শিক্ষা নেওয়া ইত্যাদি। কৃত্রিম বুদ্ধিমত্তাকে প্রয়োগ করার বিভিন্ন ধরনের প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করা হয়। যেমন— LISP (List Processing), CLISP (Common List Processing), PROLOG (Programming in Logic), C/C++, Java, MATLAB, Python, SHRDLU প্রভৃতি।
কৃত্রিম বুদ্ধিমত্তার জনক : কৃত্রিম বুদ্ধিমত্তার জনক হলেন অ্যালান টুরিং (Alan Turing)। ১৯৫০ সালে অ্যালান টুরিং তাঁর “টুরিং টেস্ট’ যুগান্তকারী পরীক্ষা প্রকাশ করেন। এক কথায় ‘টুরিং টেস্ট’ এর মাধ্যমে কোনো যন্ত্রের চিন্তা করার ক্ষমতা আছে কি-না তা জানা যায়। কোনো একটি যন্ত্র টুরিং টেস্ট উৎরে গেলে বলা যায়— যন্ত্রটির কৃত্রিম বুদ্ধিমত্তা আছে। অনন্য প্রতিভাবান অ্যালান টুরিং কৃত্রিম বুদ্ধিমত্তার সাথে সাথে তাত্ত্বিক কম্পিউটার বিজ্ঞানের জনক হিসেবে সমাদৃত ।
কৃত্রিম বুদ্ধিমত্তার ক্ষেত্রসমূহ (Domains of Artificial Intelligence) : কৃত্রিম বুদ্ধিমত্তার আওতায় বেশ কিছু ক্ষেত্র
রয়েছে, যার মধ্যে উল্লেখযোগ্য হচ্ছে—
১. মেশিন লার্নিং
২. ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP)
৩. স্পিচ রিকগনিশন (স্পিচ টু টেক্সট/টেক্সট টু স্পিচ)
৪. রোবটিক্স
৫. ভিশন (ইমেজ প্রসেসিং)
নিচে এ ক্ষেত্রগুলো সম্পর্কে সংক্ষেপে আলোচনা করা হলো-
১. মেশিন লার্নিং (Machine Learning) : মেশিন লার্নিং কৃত্রিম বুদ্ধিমত্তার সবচেয়ে সফল ক্ষেত্র। মেশিন লার্নিং এর কাজ হচ্ছে কম্পিউটারকে প্রশিক্ষণ দেওয়া যেন সে কোনো সিস্টেম সম্পর্কে বিভিন্ন নিয়ম নি এবং নিজের ভুল থেকে শিক্ষা নিয়ে তা কাজে লাগাতে পারে। মেশিন লার্নিং প্রধানত তিন ধরনের হতে পারে। যথা—
- সুপারভাইজড (Supervised)
- আনসুপারভাইজড (Unsupervised) লার্নিং এবং
- রিইনফোর্সমেন্ট (Reinforcement) गाর্নিং ।
সুপারভাইজড লার্নিং-এ মেশিনকে কোনো কিছু শেখানোর জন্য অনেকগুলো উদাহরণ দেওয়া হয়, যা থেকে তথ্য আহরণ করে সে শিখে যায় তাকে কী করতে হবে। যেমন- আমরা কম্পিউটারকে শেখাতে চাই কেমন করে বাঘ আর সিংহ চিনতে হয়। সেক্ষেত্রে তাকে অনেকগুলো বাঘ আর সিংহের ছবি দেখিয়ে বলে দেওয়া হবে কোনগুলো বাঘ আর কোনগুলো সিংহ। কম্পিউটার তখন কোনো অ্যালগরিদম ব্যবহার করে শিখে ফেলবে কোন কোন বৈশিষ্ট্যের দিক থেকে এ দু’টো প্রাণীকে আলাদা করা যায়, আর এরপর নতুন কোনো ছবি দেখলে নিজেই শনাক্ত করতে পারবে সেটা বাঘ নাকি সিংহ। অন্যদিকে আনসুপারভাইজড লার্নিং-এ কম্পিউটারকে নির্দিষ্ট করে কিছু বলে দেওয়া হয় না, অনেকগুলো ডেটা বিশ্লেষণ করে সে বুঝতে পারবে ডেটাগুলোর পরস্পরের সাথে মিল বা অমিল কতটুকু। যেমন- কম্পিউটারকে অনেকগুলো প্রাণীর ছবি দিয়ে আমরা যদি কোনোটারই নাম না বলে দেই, তাও সে বুঝতে পারবে যে কুকুর আর নেকড়ে অনেকটা একই রকম, আবার এরা বানর ও শিম্পাঞ্জির থেকে ভিন্ন। রিইনফোর্সমেন্ট লার্নিং-এর ক্ষেত্রে কম্পিউটারকে আলাদাভাবে কিছু শেখানো হয় না, নিজের মতোই কাজ করতে দেওয়া হয়। কাজ শেষে তাকে শুধু বলা হয় কাজটা কতটুকু ঠিক হয়েছে বা ভুল হয়েছে, যাতে কম্পিউটার এর পরের বার তার আচরণ বা সিদ্ধান্ত পরিবর্তন করতে পারে। এভাবে প্রথম প্রথম সিদ্ধান্ত নিতে ভুল হবে, কিন্তু অনেকবার কাজটা করতে করতে সে ঠিকই ভুল থেকে শিক্ষা নিয়ে সঠিক সিদ্ধান্ত নিতে শিখবে।
২. ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (Natural Language Processing – NLP) : ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং দ্বারা মানুষ সচরাচর যেসব ভাষা ব্যবহার করে (যেমন- বাংলা, ইংরেজি, আরবি ইত্যাদি) সেসব ভাষায় কম্পিউটারের সাথে তথ্য আদান-প্রদানের ব্যবস্থা করা হয়। যেমন- Siri, Google Assistant ইত্যাদি।
৩. স্পিচ রিকগনিশন (Speech Recognition) : স্পিচ রিকগনিশন প্রযুক্তি একটি মেশিনকে কথ্য ভাষা বুঝতে এবং মেশিন পাঠযোগ্য ফরমেটে অনুবাদ করতে সক্ষম করে। এর দুটি উপক্ষেত্র হলো টেক্সট টু স্পিচ এবং স্পিচ টু টেক্সট।
৪. রোবটিক্স (Robotics) : কৃত্রিম বুদ্ধিমত্তাকে কাজে লাগিয়ে একটি রোবট বা যন্ত্রকে স্বয়ংক্রিয়ভাবে কাজ করানোর বিদ্যাই হলো রোবটিক্স। এই প্রযুক্তিটি কৃত্রিম বুদ্ধিমত্তা সংবলিত ও নিয়ন্ত্রিত রোবট মেশিন তৈরি করে।
৫. ভিশন (Vision) : ভিশন দুই প্রকার। একটি হলো মেশিন ভিশন এবং অপরটি হলো ইমেজ প্রসেসিং। মেশিন ভিশন একটি কম্পিউটার ভিশন অ্যাপ্লিকেশন, যা কোনো মেশিনকে বিভিন্ন অবজেক্ট শনাক্ত করতে সক্ষম করে। এক বা একাধিক ভিডিও ক্যামেরা, অ্যানালগ থেকে ডিজিটাল কনভারসেশন ও ডিজিটাল সিগন্যাল প্রসেসিং ব্যবহার করে মেশিন ভিশন ভিজ্যুয়াল তথ্য ক্যাপচার ও বিশ্লেষণ করে। অন্যদিকে ইমেজ প্রসেসিং বলতে বোঝায় ডিজিটাল কোনো ইমেজের ওপর নানান রকম ম্যাথমেটিক্যাল অপারেশন চালিয়ে, সেই ইমেজ বা ফ্রেম-এর নানান রকমের বৈশিষ্ট্য, গুণাগুণ বের করে আনা এবং সেগুলোকে ব্যবহার করে কাঙ্ক্ষিত ফলাফল লাভের চেষ্টা করা ।
নিউরাল নেটওয়ার্ক (Neural Network) :
নিউরাল নেটওয়ার্ক হলো এমন একটি কম্পিউটিং ব্যবস্থা যা মানুষের মতো প্রত্যেকটি জিনিস বুঝতে পারবে, তা থেকে শিক্ষা গ্রহণ করতে পারবে এবং ধীরে ধীরে ভুল ত্রুটিকে শুধরিয়ে নিবে। কৃত্রিম বুদ্ধিমত্তার কাজে ব্যবহার করার জন্য বিজ্ঞানী ও প্রযুক্তিবিদরা যেসব পদ্ধতি আবিষ্কার করেছেন তার মধ্যে অন্যতম জনপ্রিয় ও বহুল ব্যবহৃত পদ্ধতি হলো নিউরাল নেটওয়ার্ক, যা কিছুটা মানুষের মস্তিষ্কের মতো কাজ করে। মানব মস্তিষ্ক যেমন অসংখ্য নিউরন দ্বারা গঠিত তেমনই একটি আদর্শ নিউরাল নেটওয়ার্কে হাজার থেকে লাখো কৃত্রিম নিউরন থাকতে পারে। কম্পিউটারের জন্য গাণিতিকভাবে এমন কিছু কৃত্রিম নিউরন তৈরি করা হয়, থাকে পারসেপট্রন বলা হয়। এই কৃত্রিম নিউরনগুলোকে বিভিন্ন স্তরে সাজিয়ে এদের মধ্যে যোগাযোগ স্থাপন করে যে নেটওয়ার্ক তৈরি করা হয় তাকে নিউরাল নেটওয়ার্ক বলে। সাধারণত একটা নিউরাল নেটওয়ার্কে তিনটি স্তর থাকে- ইনপুট স্তর, লুক্কায়িত স্তর (Hidden layer) ও আউটপুট স্তর। নিউরাল নেটওয়ার্কের কাজ হচ্ছে কিছু ইনপুট থেকে ইনপুট স্তর একটা নির্দিষ্ট আউটপুট কীভাবে পাওয়া যেতে পারে তার ফাংশন শেখা।
ইনপুট আর আউটপুট স্তরের কাজ হচ্ছে কম্পিউটারকে যে ফাংশনটা শেখানো হবে যথাক্রমে তার ইনপুট গ্রহণ করা ও আউটপুট প্রদান করা। নিউরাল নেটওয়ার্কটিকে অনেক ধরনের ইনপুট দিয়ে প্রশিক্ষণ দিতে থাকলে সে ধীরে ধীরে লুক্কায়িত স্তরের সঠিক মানগুলো শিখে যায়, যা ব্যবহার করে পরবর্তীতে তাকে নতুন কোনো ইনপুট দিলেও সে তার জন্য সঠিক আউটপুটটি দিতে পারবে। যত বেশি ডেটা দিয়ে প্রশিক্ষণ দেওয়া হবে, নিউরাল নেটওয়ার্কটি তত ভালো কাজ করবে।
লুক্কায়িত স্তরের সংখ্যা একটা না রেখে অনেকগুলো স্তর ব্যবহার করলে বেশ জটিল ফাংশন শেখা সম্ভব, এ প্রক্রিয়াকে বলা হয় ডীপ লার্নিং (Deep Learning)।
ডীপ লার্নিং-এর সাহায্যে ইদানীং কম্পিউটার দ্বারা বেশ কঠিন সব সমস্যার সমাধান হচ্ছে, যা আজ থেকে ১০-১২ বছর আগেও ভাবা যেত না।