|
আর্টিকেল স্বত্বঃ ইন্টারনেট থেকে সংগৃহীত
নিঃসন্দেহে বলতে হবে যে আধুনিক প্রযুক্তি বিবর্তনের অন্যতম একটি উপাদান হচ্ছে আর্টিফিশিয়াল ইন্টেলিজেন্স। কথা হয় যখন আর্টিফিশিয়াল ইন্টেলিজেন্সের… তখন দুটি শব্দ সামনে উঠে আসে। আর এগুলো হচ্ছে, ডিপ লার্নিং এবং মেশিন লার্নিং। ডিপ লার্নিং এবং মেশিন লার্নিং দুটিই ডাটা সাইন্স সম্পর্কিত বিষয় বলে অনেকেই এই দুটিকে পার্থক্য করতে পারিনা, একই মনে করি। যদিও ডিপ লার্নিং এবং মেশিন লার্নিং এর মধ্যে কিছু সাদৃশ্য রয়েছে; তবে জেনে রাখুন দুটি কিন্তু কখনই এক জিনিস নয়! আজকের লেখায় আমরা আলোচনা করব আর্টিফিশিয়াল ইন্টেলিজেন্সের প্রান, আধুনিক ডাটা সাইন্সের এই দুটি বিষয় নিয়ে।
মেশিন লার্নিংএ স্পষ্টভাবে কোন প্রোগ্রাম করা ব্যাতিতই অলগরিদমের সহযোগিতা নিয়ে কম্পিউটার বিভিন্ন ডাটা থেকে তথ্য উপাত্ত সংগ্রহ করে বা নিজে নিজে শেখে। অপর দিকে, ডিপ লার্নিং হচ্ছে মানব মস্তিষ্কের আদলে ডিজাইন করা জটিল স্ট্রাকচার্ড অলগরিদম। যেখানে কম্পিউটার ডকুমেন্ট, ইমেজ, টেক্সটের মতন অসংগঠিত ডেটা গুলো সঠিকভাবে প্রোসেসিং করে রেজাল্ট তৈরি করে। ডিপ লার্নিং এর জটিল স্ট্রাকচার্ড অলগরিদমকে বলা হয় আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক।
মেশিন লার্নিং
মেশিন লার্নিংএ অলগরিদম এমনভাবে প্রোগ্রাম করা থাকে যে, কম্পিউটার সিস্টেমকে কোন ডেটা উৎস থেকে তথ্য-উপাত্ত সাজাতে সিস্টেমে নতুন করে কোন প্রোগ্রামিং করবার দরকার পরেনা। মেশিন লার্নিং এর ক্ষেত্রে সিস্টেম নিয়মিত বিভিন্ন টাস্ক পূরণ করার মাধ্যমে নিজেকে আরো বেশি সমৃদ্ধ করে তোলে। সহজ একটা উদাহরণ বলতে গেলে, অনেক গেমসে অটো প্লেয়ার মোড থাকে। কম্পিউটার তার ব্যবহারকারির গেমিং থেকে তার নিজের ভেতরকার অটো প্লেয়ার মোডকেও সমৃদ্ধ করে ফেলে। বর্তমানে স্বাস্থ্যসেবা, ব্যাংকিং, শিল্প এমনকি বিজ্ঞান সম্পর্কিত অনেক প্রযুক্তিতে এই মেশিন লার্নিং এর উপস্থিতি লক্ষ্য করা যায়। আর মেশিন লার্নিংএ সিস্টেম নানাভাবে নিজের ডেটা প্রসেসিং ক্ষমতাকে সমৃদ্ধ করতে থাকে। মেশিন লার্নিং খুবই সাধারণ অলগরিদম ট্রি থেকে শুরু করে, জটিল কয়েক স্তরের অলগরিদম নিয়েও গঠিত হতে পারে।
- মেশিন লার্নিং হল কম্পিউটার বিজ্ঞান এবং পরিসংখ্যানের সংমিশ্রণ, যেখানে সিস্টেম স্পষ্টভাবে প্রোগ্রাম করা ছাড়াই শেখার ক্ষমতা অর্জন করে।
- মেশিন লার্নিং মূলত তিন প্রকার। যথাঃ সুপারভাইজড লার্নিং, আন-সুপারভাইজড লার্নিং ও রিইনফোর্সমেন্ট লার্নিং।
মেশিন লার্নিং প্রথম শুরু হয় ১৯৫৯ সালে কম্পিউটার বিজ্ঞানি আর্থার স্যামুয়েলের হাত ধরে। তিনি তার আইবিএম কম্পিউটারে একটি সার্চ ট্রি অলগরিদম তৈরি করে তার কম্পিউটার সিস্টেমকে তথ্য উপাত্ত শেখার উপযোগী করে তুলে, প্রথম মেশিন লার্নিং এর বাস্তবিক ধারনা দিয়েছিলেন। মেশিন লার্নিং আধুনিক সময়ে অনেক বেশি সমৃদ্ধ হয়েছে অবাধ তথ্য ভান্ডার তথা ইন্টারনেটের কারনে। মেশিন লার্নিং ব্যবহার করে যেকোনো কম্পিউটার সিস্টেম ইন্টারনেটের ব্যাপক তথ্য ভান্ডার থেকে প্রচুর পরিমানে তথ্য পর্যালোচনা করে নিজেকে অনেক বেশি সমৃদ্ধ করতে পারে। মেশিন লার্নিং এর জন্য আগে জনপ্রিয় ভাষা ছিল R। তবে R কে ছাড়িয়ে বর্তমানে Python মেশিন লার্নিং এর জন্য অনেক বেশি জনপ্রিয় হিসেবে ব্যাপকভাবে ব্যবহৃত হচ্ছে। মেশিন লার্নিং শিখতে চাইলে তাই আপনাকে অবশ্যই এই দুটি ভাষা সম্পর্কে সম্যক ধারনা রাখতে হবে।
ডিপ লার্নিং
মেশিন লার্নিং প্রযুক্তির সাক্সেসর বলা যেতে পারে ডিপ লার্নিংকে। মেশিন লার্নিং যেমন একটি ‘কাটিং এজ’ প্রযুক্তি, ডিপ লার্নিংকে বলা যেতে পারে ‘কাটিং এজ’ এরও ‘কাটিং এজ’। বর্তমান সময়ে আপনি হয়ত প্রতিনিয়তই আপনার অজান্তেই ডিপ লার্নিং প্রযুক্তিকে এক্সপেরিয়েন্স করে যাচ্ছেন। উদাহরণ হিসেবে নেটফ্লিক্স কিংবা আমাদের দৈনন্দিন জীবনের সাথে অঙ্গাঙ্গীভাবে জড়িত ইউটিউবের কথাই বলা যায়! আপনি এই দুটি প্লাটফর্মে অভ্যস্ত হয়ে থাকলে, নিশ্চয় কোন কোন ভিডিওগুলো আপনার সাজেশন বা রিকমেন্ডেশনে বেশি আসে তা লক্ষ্য করেছেন? আপনি ঠিক যে বিষয়ের কন্টেন্ট বেশি দেখেন ঠিক সেই ধাচের কন্টেন্টই কিন্তু আপনার সামনে নিয়ে আসা হয়! একইভাবে স্পটিফাই এর মত বিভিন্ন মিউজিক স্ট্রিমিং প্লাটফর্মেও একই অভিজ্ঞতা অর্জন করবেন আপনি। কেবল একটি লাইক থেকে আপনার পছন্দ বুঝে যাওয়া, ভয়েস রিকগনিশন, ইমেজ রিকগনিশন এমনকি টেক্সট রিকগনিশন এই সবকিছুই ডিপ লার্নিং এর ফসল।
- ডিপ লার্নিং হচ্ছে মেশিন লার্নিং এরই একটি বিশেষায়িত বিভাগ।
- ডিপ লার্নিং মূলত কয়েক স্তরি অলগরিদম ব্যবস্থায় গঠিত, যাকে বলা হয় আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক।
- ডিপ লার্নিং খুবই অল্প হিউমান কমান্ড কিংবা একদম হিউম্যান কমান্ড ছাড়াই ফলাফল প্রদান করতে পারে।
মেশিন লার্নিংকে যদি বলা হয় এক ধরনের আর্টিফিশিয়াল ইন্টেলিজেন্স; তবে ডিপ লার্নিংকে বলা যাবে এটিও এক ধরনের মেশিন লার্নিং। মানে সহজ ভাষায়, ডিপ লার্নিং মেশিন লার্নিং এর একটি অংশ, তবে ডিপ লার্নিং সামগ্রিকভাবে মেশিন লার্নিং নয়! উদাহরণ সরূপ, ক্যালকুলাস গনিতের অংশ, ইন্টিগ্রেশন আবার ক্যালকুলাসের অংশ, ইন্টিগ্রেশন কিন্তু সামগ্রিকভাবে ক্যালকুলাস নয়! মেশিন লার্নিং অনেকসময় কেবল কিছু সম্ভাব্যতা মডেল ব্যবহার করেই ডাটা কালেক্ট করে থাকে। তবে ডিপ লার্নিং ডাটা কালেক্ট করার জন্য জটিল এক অলগরিদম ব্যবহার করে, যাকে বলা হয় আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক। এই মডেলটা তৈরি অনেকটা মানুষের ব্রেইন বা মস্তিষ্ক যেভাবে ভাবে ঠিক সেইভাবে। মানুষের ব্রেইন সম্পূর্ণ নিউরন দিয়ে গঠিত, আর নিউরনে নিউরনে সম্পর্কই কিন্তু সামগ্রিক দেহের দর্শন, অনুভূতি এবং বাকিসব ব্যাপার নিয়ন্ত্রন করে। এই ব্যপারটি থেকেই ডিপ লার্নিং এর এই নিউরাল নেটওয়ার্ক মডেল তৈরি!
ডিপ লার্নিং সবসময়ই ম্যাসিভ পরিমানে ডাটা নিয়ে কাজ করে। খুবই একুরেট ডাটা প্রদান করতে ডিপ লার্নিং এর অনেক বেশি পরিমানে ডাটা প্রয়োজন হয়। অনেক বেশি পরিমানের ডাটার মধ্যে থেকে আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক বাইনারি ট্রু/ ফলস প্রশ্ন জিজ্ঞেস করে, পাশাপাশি এর সাথে অত্যন্ত জটিল গাণিতিক গণনাও জড়িত, পরিশেষে প্রাপ্ত উত্তরগুলির উপর ভিত্তি করে ডিপ লার্নিং ডাটা শ্রেণিবদ্ধ করে থাকে।
তো আমরা এটা বুঝলাম যে, ডিপ লার্নিং এবং মেশিন লার্নিং উভয়ের কাজই ডাটা প্রসেস করে চালাক-চতুর উত্তর বের করে দেয়া। আর এই দুটি প্রযুক্তিই আর্টিফিশিয়াল ইন্টেলিজেন্সের অংশ। তবে দুটি প্রযুক্তি যে আলাদা সেটি আরো সহজভাবে বুঝতে নিচে কয়েকটি বিষয় নিয়ে আলোচনা করব।
হিউম্যান কমান্ড
মেশিন লার্নিং এর ক্ষেত্রে অন্তত পিক্সেল ভ্যালু, অরিয়েন্টেশন, শেপ ইত্যাদি বিষয় সম্পর্কে আগে থেকে প্রোগ্রাম বা অলগরিদম সেট করে রাখতে হয়, আর যে কাজটি সাধারণত মানুষই আগে থেকে করে রাখে। তবে ডিপ লার্নিং এর ক্ষেত্রে সিস্টেম এর আগে থেকে এরকম কিছু ফিক্সড কমান্ড অলগরিদমেরও দরকার পরেনা। সিস্টেম মানুষের কোন প্রত্যক্ষ কমান্ড ছাড়াই নিজে থেকে উপাত্ত প্রক্রিয়াকরন করতে পারে। এই ক্ষেত্রে ডিপ লার্নিং এর অনেক জনপ্রিয় উদাহরণ বলা যেতে পারে ফেস রিকগনিশনকে। ফেস রিকগনিশনে প্রোগ্রামটি একা একাই মুখের রেখা, উল্লেখযোগ্য অংশ, কার্ভ ইত্যাদির তথ্য উপাত্ত কালেক্ট করতে পারে। আর ফেস রিকগনিশনে প্রোগ্রাম ব্যবহারকারির ফেস পর্যবেক্ষণ করে উপাত্তের হিসেবে তা কিন্তু মোটেও কম সংখ্যক নয়! আর এই অনেক উপাত্ত ব্যবহার করে ডিপ লার্নিং এর মাধ্যমে একদম একুরেট রেজাল্ট দেয়া সম্ভব হয়। ঠিক এভাবে ডিপ লার্নিং এর ব্যবহারে ফেস রিকগনিশন বহুল ব্যবহৃত একটি ডিজিটাল সিকিউরিটি প্রযুক্তিতে রূপান্তরিত হয়েছে।
ব্যবহার
মেশিন লার্নিং মূলত প্রেডিক্টিভ তথা সম্ভাব্যতা যাচাই সম্পর্কিত প্রোগ্রামে বেশি ব্যবহার করা হয়ে থাকে। যেমন ধরুন কিছু সফটওয়্যার আছে বাজারের বর্তমান এবং আগের অবস্থা বিবেচনা করে শেয়ার বাজারের সম্ভাবনা আপডেট দেয়। কিছু সফটওয়্যার স্যটেলাইট থেকে প্রাপ্ত ডাটা থেকে কোথায় আবহাওয়া কেমন হবে সেই রিপোর্ট দেয়। তাছাড়াও স্বাস্থ্যখাতে ব্যবহৃত সফটওয়্যার এই মেশিন লার্নিং প্রযুক্তি অনেক বেশি পরিলক্ষিত হয়। অন্যদিকে ডিপ লার্নিং এর ব্যবহার ঘটে থাকে, নেটফ্লিক্স, ইউটিউব, ফেসবুক, মিউজিক স্ট্রিমিং সার্ভিস, বিভিন্ন আইডেন্টিটি রিকগনিশনের মত কাজে। এমনকি আধুনিক সেলফ ড্রাইভিং প্রযুক্তিও ডিপ লার্নিং নির্ভর।
কাজ করবার ধরন
মেশিন লার্নিং এর ক্ষেত্রে সিস্টেম ডাটাকে কয়েকটি খন্ডে বিভক্ত করে, তার পর বিভক্তকৃত ডাটা থেকে সংমিশ্রণ করে সিস্টেম একটি ফলাফল প্রদান করে। অন্যদিকে ডিপ লার্নিং এর ক্ষেত্রে সিস্টেম সমগ্র সমস্যা বা দৃশ্যপটকেই পর্যবেক্ষণ করে। একটা উদাহরণে বোঝা যাক, ধরুন যে একটি পার্কিং লটের ছবিতে একটি গাড়ির ছবি আছে। এখন আপনি চাচ্ছেন যে, সফটওয়্যারের মাধ্যমে সেই গাড়ির নম্বর বের করবেন। মেশিন লার্নিং এর ক্ষেত্রে সিস্টেম এই কাজটি দুইধাপে করবে। প্রথমত অব্জেক্ট ডিটেকশন ঘটবে এবং দ্বিতীয়ত ঘটবে অব্জেক্ট রিকগনিশন। তবে, ডিপ লার্নিং এর ক্ষেত্রে এখানে সিস্টেম কোন পার্ট-বাই-পার্ট প্রোসেসিং না করে, এক রেজাল্টে বলে দিবে নম্বর প্লেটে কি লেখা আছে এবং তার অবস্থান কই!
সময়
এতক্ষণে হয়ত আপনি ধারনা করতেই পারবেন যে, মেশিন লার্নিং এবং ডিপ লার্নিং এর মধ্যে কোনটির সময় বেশি লাগবে! যেহেতু ডিপ লার্নিং এর মধ্যে অনেক বেশি গানিতিক ফর্মুলা, জটিল নিউরাল নেটওয়ার্ক ফাংশন জড়িত, তাই এখানে সিস্টেমের নিজেকে ট্রেইন করতে এবং কাজ সম্পাদন করতে তুলনামূলক বেশি সময় লাগে। অন্যদিকে, মেশিন লার্নিং এর ক্ষেত্রে এই সময় খুবই কম পরিমানে লাগে। যেখানে মেশিন লার্নিংএ কোনো কাজ সম্পন্ন হতে কয়েক সেকেন্ড থেকে কয়েক ঘন্টা লাগতে পারে সর্বোচ্চ; ঠিক সেখানে ডিপ লার্নিং এর ক্ষেত্রে সেটি সর্বোচ্চ কয়েক সপ্তাহ পর্যন্ত গড়াতে পারে!
হার্ডওয়্যার
ডিপ লার্নিং এর সাথে অনেক বেশি জটিল অলগরিদম এবং গানিতিক ক্যালকুলেশন জড়িত বলে এটি অনেক বেশি হার্ডওয়্যার চাহিদা করে থাকে। মেশিন লার্নিং সিস্টেম এর চাইতে ডিপ লার্নিং সিস্টেম এর জন্য অনেক শক্তিশালী হার্ডওয়্যার প্রয়োজন হয়। ডিপ লার্নিং এর জন্য হার্ডওয়্যারের জিপিইউ পার্টটি অনেক বেশি ব্যবহৃত হয়। তবে মেশিন লার্নিং প্রযুক্তি খুব সহজে লো-এন্ড হার্ডওয়্যারের ডিভাইসেও কাজ করতে পারে।