হাতেকলমে পাইথন ডীপ লার্নিং
  • হাতেকলমে পাইথন ডিপ লার্নিং
  • শুরুর ঘটনা
    • শুরুর কথা
    • প্রথম ফ্ল্যাপ
    • এই বইটা থেকে কি আশা করছি?
    • ‘ডিপ লার্নিং’ কি হাইপ? কেন এতো দেরি হলো?
    • কৃতজ্ঞতা
    • কেন শিখবেন মেশিন/ডিপ লার্নিং?
    • বইটা কিভাবে ব্যবহার করবেন?
    • কেন এই বইটা অন্য প্রোগ্রামিং বই থেকে একটু আলাদা?
    • গুগল কোলাব/জুপিটার টেন্সর-ফ্লো ২.x ডকার
    • কিছুই জানিনা, শুরু করবো কোথা থেকে?
    • কেন ডীপ লার্নিং?
      • স্পীচ রিকগনিশন
      • কৃষক আত্মহত্যার যোগসূত্র
      • ডীপফেইক
      • যদি নায়ক না থাকে?
      • 'সেন্টিমেন্ট অ্যানালাইসিস' আর শিক্ষার হারের যোগসূত্র
      • কনটেন্ট মডারেশন - অসুস্থতার যোগসূত্র
      • জাহাজ না আইসবার্গ?
      • গুগল ডুপ্লেক্স
      • টার্গেটের গল্প
    • ঝিঁঝিঁপোকার থার্মোমিটার
    • নিউরাল নেটওয়ার্কে ডাটা কিভাবে থাকে?
    • এক নজরে 'টেন্সর-ফ্লো' ইকো-সিস্টেম
    • ফ্যাশন MNIST ডেটাসেটের ক্লাসিফিকেশন
    • রিগ্রেশন এবং ক্লাসিফিকেশন
    • ডিপ লার্নিং কেন? নন-লিনিয়ার সমস্যা, ফিচার ক্রস
    • ডিপ লার্নিং দিয়ে ডিসিশন বাউন্ডারি, চাঁদ আকারের ডাটাসেট
    • নিউরাল নেটওয়ার্কের কনসেপ্ট এবং রিপ্রেজেন্টেশন লার্নিং
    • নিউরাল নেটওয়ার্কের নিউরাল, ওয়েট, বায়াস, অ্যাক্টিভেশন ফাংশন
    • ডিপ লার্নিং নেটওয়ার্ক: ফরওয়ার্ড এবং নেটওয়ার্ক অপটিমাইজেশনের জন্য ব্যাক প্রোপাগেশন
    • ডিপ নিউরাল নেটওয়ার্কের লেয়ারিং কনসেপ্ট
    • টেন্সর-ফ্লো ডেটাসেট এপিআই দিয়ে কনভল্যুশনাল নিউরাল নেটওয়ার্ক
    • কার্নাল কনভল্যুশন এবং ম্যাক্স পুলিং (সিএনএন)
    • সিএনএন, সিফার ডেটাসেট, টেন্সরবোর্ড/কেরাস কলব্যাক দিয়ে মডেল ট্র্যাকিং
    • কেরাস ‘প্রি-ট্রেইনড’ মডেল এবং তার ব্যবহার
    • ‘কনভলিউশনাল নিউরাল নেটওয়ার্ক’ এবং গ্লোবাল অ্যাভারেজ পুলিং
    • ট্রান্সফার লার্নিং, ‘প্রি-ট্রেইনড’ অক্সফোর্ড ইউনিভার্সিটি ভিজ্যুয়াল জিওমেট্রি গ্রূপের vgg16 ডেটাসেট
    • টেন্সর-ফ্লো মডেল থেকে প্রোডাকশন, টেন্সর-ফ্লো সার্ভিং এবং এপিআই
    • ‘টেন্সর-ফ্লো লাইট’, মোবাইল এবং এমবেডিং ডিভাইসে ডিপ লার্নিং ইনফারেন্স নিয়ে অ্যান্ড্রয়েড অ্যাপ (১)
    • মোবাইল অ্যাপের জন্য সাধারণ "এমনিস্ট" মডেল ট্রেনিং, টেন্সরফ্লো লাইট দিয়ে (২)
    • অ্যান্ড্রয়েড অ্যাপের জন্য "এমনিস্ট" হাতে লেখা ডিজিট চিনতে মডেল ট্রেনিং (৩)
    • অ্যান্ড্রয়েডে ফ্যাশন 'এমনিস্ট' অ্যাপ (৪)
    • বাংলা নাচারাল ল্যাঙ্গুয়েজ প্রসেসিং, টোকেনাইজেশন এবং ভেক্টরাইজেশন
    • এমবেডিং, ওয়ার্ড এমবেডিং, শব্দ এবং সংখ্যার কাছাকাছি এনকোডিং
    • সার্চে এমবেডিং: পরের শব্দটা কি হবে?
    • শব্দের সিমিলারিটি, কাছাকাছি অর্থ, লাইকলিহুড - সঙ্গে 'ফাস্টটেক্সট' এবং 'ওয়ার্ড২ভেক'
    • বাংলায় ছোট্ট সেন্টিমেন্ট অ্যানালাইসিস
    • বাংলায় এন্ড টু এন্ড অ্যাপ্লিকেশন, টেন্সর-ফ্লো হাব
    • একদম স্ক্র্যাচ থেকে টেন্সরফ্লো ২.x মডেল
    • কি করবো সামনে?
    • আরো সাহায্য এবং কৃতজ্ঞতা
Powered by GitBook
On this page

Was this helpful?

  1. শুরুর ঘটনা

সার্চে এমবেডিং: পরের শব্দটা কি হবে?

Previousএমবেডিং, ওয়ার্ড এমবেডিং, শব্দ এবং সংখ্যার কাছাকাছি এনকোডিংNextশব্দের সিমিলারিটি, কাছাকাছি অর্থ, লাইকলিহুড - সঙ্গে 'ফাস্টটেক্সট' এবং 'ওয়ার্ড২ভেক'

Last updated 5 years ago

Was this helpful?

আচ্ছা , বলুন তো - কোথায় ওয়ার্ড এম্বেডিং এর ব্যবহার নেই? তবে সেই গল্প দেবার আগে অন্য গল্প বলি। আমরা সবাই প্রশ্নের উত্তর খুঁজছি। প্রশ্নের পাশাপাশি বিভিন্ন প্রোডাক্ট অথবা দরকারি জিনিসপত্র খুঁজছি অনলাইনে। আগে আমরা যখন সার্চ ইঞ্জিনে প্রশ্ন করতাম, আমাদের কষ্ট কমানোর জন্য প্রশ্ন লেখার শুরুর পর থেকে অটো কমপ্লিশন ফিচার - কি প্রশ্ন করতে পারি সেটার শুরুর দেখেই পুরো প্রশ্নটাকে কমপ্লিট করত। এখন এসেছে পরের ধাপ। গুগল আপনার সচরাচর প্রশ্নের উত্তর ওয়েবসাইটে না পাঠিয়ে নিজেই উত্তর দেবার চেষ্টা করছে। আমরা দেখেছি সেই ট্রেন্ড। সেটা বাড়ছে আরো বেশি।

জীবনের প্রশ্ন সহ অন্য অনেক প্রশ্নের উত্তর খুঁজতে আমি প্রায়ই যাই ‘কোরা’ ওয়েবসাইটে। প্রোগ্রামিং অথবা মেশিন লার্নিং নিয়ে সমস্যায় পড়লে ‘স্ট্যাক ওভারফ্লো’ ওয়েবসাইট। প্রশ্নের পাশাপাশি তারা রিকমেন্ড করে কাছাকাছি ধরনের প্রশ্নগুলোকে। ফলে দেখা যায় যে মূল প্রশ্নের উত্তরে ঠিক উত্তরটা না পেলেও অন্য প্রশ্নের উত্তরে সেটা পাওয়া যায়। এগুলো কিভাবে করছে তারা? ওয়ার্ড এম্বেডিং। আগেকার সার্চ মডেল পাল্টে যাচ্ছে এই ওয়ার্ড এম্বেডিং এর কারণে।

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

সাইট হিসেবে ‘কোরা’ অথবা বিভিন্ন সাইট চাইবেই ব্যবহারকারীরা তাদের সাইটে বেশিক্ষণ থাকেন। সে কারণে যে প্রশ্নটা ব্যবহারকারী করেছেন সেই প্রশ্নটা হুবহু একই রকম না হলেও তারা চাইবে কাছাকাছি ধরণের প্রশ্নগুলোকে উপস্থাপন করতে। আমরা ধরে নিতে পারি এই মুহূর্তে কোরার কাছে প্রায় দেড় কোটি প্রশ্ন এবং উত্তর আছে। সে চাইবে তার নতুন ব্যবহারকারীর প্রশ্নগুলোকে এর মধ্যে সংযুক্ত করতে। প্রশ্নগুলোর বাক্যের গঠন একই রকম না হলেও কাছাকাছি বাক্যগুলো দিয়ে এমনভাবে দেখাবে তারা যাতে বেশি উত্তর দেখাতে পারে।

এখানে কোরা কি করছে? এই দেড় কোটি প্রশ্নগুলোকে একটা ‘লার্নড স্পেসে’ সবগুলো অবজেক্টকে ‘কন্টিনিউয়াস ভেক্টর’ দিয়ে রিপ্রেজেন্ট করছে। সেখানে কাছাকাছি প্রশ্নগুলোকে কাছাকাছি সংখ্যা দিয়ে পাশাপাশি রাখছে। নতুন প্রশ্নের ক্ষেত্রে তারা এমনভাবে এনকোড করছে যাতে তারা ওই প্রশ্নগুলোর ‘নিয়ারেস্ট নেইবার’কে ঠিকমতো খুঁজে পায়।

আমরা এখানে একটা উদাহরণ দেখি। আমি সার্চ করতে চাই - ‘প্লেন কিভাবে আকাশে উড়ে’? শুরু করলাম শব্দগুলো দিয়ে। দেখা গেল সে বাকিটা সাজেস্ট করছে সে। আমি ‘উড়ে’ না লিখলেও সে সাজেস্ট করছে সেটা। ডিপ লার্নিং এ ব্যাপারটা কিভাবে ঘটছে?

আমরা এখানে একটা ল্যাঙ্গুয়েজ মডেলিংয়ের সমস্যা নিয়ে আলাপ করি। সমস্যাটা হচ্ছে বর্তমান কনটেক্সটে তিনটা শব্দ দিয়ে - আমাদেরকে শেষ শব্দটাকে প্রেডিক্ট করার জন্য বলা হচ্ছে। ধরা যাক এই সমস্যাটাকে খুব ছোট্ট একটা ভোকাবুলারি ডিকশনারি দিয়ে সমাধান করতে যাচ্ছি। আমাদের ভোকাবুলারিতে আছে পাঁচটা শব্দ। সত্যিকারের সমস্যায় আমরা হয়তোবা কয়েক লক্ষ শব্দ দিয়ে তৈরি ভোকাবুলারি ব্যবহার করব। এই সমস্যাকে আমরা সাধারন ‘লজিস্টিক রিগ্রেশন’ দিয়ে সমাধান করতে পারি।

সাধারণ ‘লজিস্টিক রিগ্রেশন’ দিয়ে কাজ করতে গেলে প্রথমে সবাই বলবেন আমাদের ইনপুট প্রশ্নকে ‘ওয়ান হট এনকোডিং’ দিয়ে ‘এনকোড’ করার জন্য। এখানে প্রতিটা শব্দকে এনকোড করার পর সেটাকে যোগ করে নিচ্ছি উপরের লেয়ারে। ঠিকমতো রিপ্রেজেন্টেশন করার জন্য। আমরা বলতে পারি এই কন্টেক্সটকে ১৫টা ডাইমেনশনে রিপ্রেজেন্ট করা হচ্ছে এই শব্দগুলোকে।

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

এই একই জিনিসটা করা যাচ্ছে ওয়ার্ড এম্বেডিং দিয়ে। প্রতিটি শব্দকে আমরা দুটো প্যারামিটার দিয়ে তৈরি করে দেবো। এরপর আমরা সেই শব্দগুলোকে ‘লুক আপ’ করব আমাদের এম্বেডিং টেবিলে তার আসল ভ্যালু এর জন্য। এরপর আমরা সেটাকে যুক্ত করে দেব ইনপুট লেয়ারে সহজ প্রসেসিংয়ের জন্য। বাকি এলিমেন্টগুলো আগের ‘ওয়ান হট ভেক্টর’ মডেলের মত। আগের মডেলের পনেরোটা প্যারামিটার এর জায়গায় এখন সেটা দাঁড়িয়েছে ছয়টায়। এখানে আমাদের ফিচারগুলো শিখে নিচ্ছে মডেল।

তো, ট্রেনিংয়ে কি হবে? আগের মডেলের ইনপুট দিয়ে তার পরের শব্দটাকে প্রেডিক্ট করতে চাচ্ছিলাম। আমাদের যেহেতু উদাহরনে শব্দের সিকোয়েন্সগুলো দেয়া আছে, সে কারণে ট্রেনিং ডাটাকে ব্যবহার করব মডেল প্যারামিটারগুলোকে এস্টিমেট করার জন্য। সেখানে “উড়ে” শব্দটার প্রবাবিলিটি ডিস্ট্রিবিউশন অন্য শব্দগুলো থেকে বেশি হবার কারণে ‘লজিস্টিক রিগ্রেশন’এ “উড়ে” শব্দটা ১ হয়ে যাবে, বাকিগুলো থাকবে 0 হিসেবে। এখন দুটো লেভেলের ডিস্ট্রিবিউশন এখানে যেমন বাম এর ছবি আর ডানের ছবি দুটোতে ‘ক্রস এনট্রপি’ দিয়ে মডেলকে আপডেট দেয়া যাবে। এখানে ‘ব্যাক প্রপাগেশন’ এর ছবিটা দিচ্ছি না আর। বড় স্কেলে আমরা এই ইনপুটগুলোকে ঢুকিয়ে দিব নিউরাল নেটওয়ার্কে।

পুরো ভিডিওটা দেখতে চাইলে বার্কলি স্কুল অফ ইনফরমেশনের ভিডিওটা দেখতে পারেন। গুগলের ড্যান গিলিকের ভিডিও। লিংক https://youtu.be/JGHVJXP9NHw

গুগল সার্চে অটো কমপ্লিশন
‘প্লেন কিভাবে আকাশে" এর পরে কি হবে?
ওয়ান হট এনকোডিং দিয়ে পরের শব্দ প্রেডিকশন
ওয়ার্ড এমবেডিং দিয়ে পরের শব্দ প্রেডিকশন
"উড়ে" শব্দটাকে প্রেডিক্ট করেছে ক্রস এনট্রপি দিয়ে