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

Was this helpful?

  1. শুরুর ঘটনা

কেন এই বইটা অন্য প্রোগ্রামিং বই থেকে একটু আলাদা?

A problem well stated is a problem half solved.

-- John Dewey

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

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

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

If your only tool is a hammer then every problem looks like a nail.

-- Abraham Maslow

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

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

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

Previousবইটা কিভাবে ব্যবহার করবেন?Nextগুগল কোলাব/জুপিটার টেন্সর-ফ্লো ২.x ডকার

Last updated 5 years ago

Was this helpful?