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

Was this helpful?

  1. শুরুর ঘটনা

নিউরাল নেটওয়ার্কের কনসেপ্ট এবং রিপ্রেজেন্টেশন লার্নিং

Previousডিপ লার্নিং দিয়ে ডিসিশন বাউন্ডারি, চাঁদ আকারের ডাটাসেটNextনিউরাল নেটওয়ার্কের নিউরাল, ওয়েট, বায়াস, অ্যাক্টিভেশন ফাংশন

Last updated 5 years ago

Was this helpful?

AI winters were not due to imagination traps, but due to lack of imaginations. Imaginations bring order out of chaos. Deep learning with deep imagination is the road map to AI springs and AI autumns.

― Amit Ray, Compassionate Artificial Superintelligence AI 5.0

আবারো বলছি, ডিপ লার্নিং নেটওয়ার্ক হচ্ছে 'কনসেপ্ট হেভি, কোড লাইট'। মানে, আপনি পুরো জিনিসটা মাথায় ধরতে পারলে অল্প কোডেই পার করা যাবে এর আউটকাম। আমাদেরকে বুঝতে হবে কি করতে চাচ্ছি আমরা আর সেটার আউটকাম। একদম - স্টিভেন কোভি'র 'বিগিন উইথ এন্ড ইন মাইন্ড'।

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

এর আগে তো আমরা ডাটা হিসেবে ‘টেবুলার ডাটা’, মানে টেবিল আকারের ডাটা দিতাম মেশিন লার্নিং এর মডেলে। আচ্ছা, কেমন হয় যদি আমরা একটা ছবিকে পাঠিয়ে দিই মেশিন লার্নিং মডেলে? ধরুন ডিসিশন ট্রিতে। এখানে ফিচার হিসেবে ডিসিশন ট্রি যা পাবে সেটা হচ্ছে ছবির সবচেয়ে ছোট ইউনিট ‘পিক্সেল’। তার মানে ছবির যেই পিক্সেলগুলোতে সবচেয়ে বেশি ইনফরমেশন আছে সেগুলোকে রুট নোড দিয়ে আলাদা করে ফেলা হবে সেই পিক্সেলের ‘ইনটেনসিটি দিয়ে’। হয়তোবা সে বলবে এই পিক্সেলের (যদি গ্রে স্কেল হয়) ইনটেনসিটি ১২৮ এর বেশি হলে ভোটিং ডানে যাবে না হলে বামে যাবে।

সেভাবে যদি প্রতিটা পিক্সেল, ধরা যাক ইমেজ সাইজ হচ্ছে ১ মেগাপিক্সেল, মানে ১০০০ x ১০০০ x ৩, আমরা ‘কালার আরজিবি’ চ্যানেলের কথা বলছি, লাল, নীল, সবুজ, তার মানে হচ্ছে আমাদের ৩০ লক্ষ ফিচার। আর নিদেনপক্ষে ছবিটা যদি ১০ মেগাপিক্সেল হয়, তাহলে সেটা গিয়ে দাঁড়াবে ৩ কোটি ফিচারে। এখন এই ছবিকে যদি আমরা এরকম একটা ডিসিশন ট্রির মধ্যে ফেলে দেই, তাহলে তো সেই মডেল তো আর কোনদিন উত্তর নিয়ে ফিরবে না। আর ফিরলেও, আমরা আর থাকবো না। মোদ্দাকথা হচ্ছে এটা দক্ষ সিস্টেম নয়। এরপরে যদি আমাদের ফিচার ইঞ্জিনিয়ারিং করতে হয়, তাহলে তো আর কথাই নেই। আমি বলতে চাচ্ছি এক্ষেত্রে মেশিন লার্নিং দক্ষতার পরিচয় দেবে না।

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

ইনপুট = উপরের এই ছবি

রিপ্রেজেন্টেশন = আকারের কোনা’র সংখ্যা

মডেল = ইনপুটের একটা রিপ্রেজেন্টেশন অথবা ইউনিক ফিচার নিয়ে আসি (এখানে যেমন কোনা’র সংখ্যা), এবং সেই রুলগুলোকে অ্যাপ্লাই করি আমাদের আকারগুলোকে ঠিকমতো আইডেন্টিফাই করার জন্য

(ধরুন, যদি ফিচার ইনপুট = ০ হয় তাহলে সেই আকারটা হবে বৃত্ত)

তাহলে বলা যায় যে আমাদের এই মডেলটা চলবে। এই তিন আকারের মধ্যে যাই আসুক না কেন সে সেই আকারটাকে ঠিকমতো ‘আইডেন্টিফাই’ করতে পারবে। কিন্তু এমন যদি হয় তার এখানে অন্যান্য আকার, যেমন ট্রাপিজিয়াম, রম্ভস -- এই তিনটা আকারের বাইরে অন্যান্য যেকোনো জিনিস হলেই কিন্তু এই ফিচার তৈরি করা কষ্টকর হয়ে পড়বে।

এভাবে ভিন্ন ভিন্ন জিনিস এর জন্য আলাদা আলাদা ফিচার তৈরি করা সময় সাপেক্ষ এবং অনেক ক্ষেত্রে সেটা আর কাজে লাগেনা। আমাদের এমন জিনিস দরকার যে নিজেই ফিচার বের করে নিবে। আর সে কারণেই বলা হচ্ছে এটার জন্য ‘ডিপ ডোমেইন’ জ্ঞান বা এক্সপার্টিজ লাগবে ব্যাপারগুলোকে ঠিকমতো প্রসেস করার জন্য। যাই আসুক না কেন মডেলে সে নিজে থেকে ফিচার বানিয়ে নেবে।

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

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

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

চিত্র: কিছু আকার ক্লাসিফাই করা
চিত্র: মেশিন লার্নিং এবং ডিপ লার্নিং এর পার্থক্য