tensor + aquarium, planetarium-এর -arium: যেখানে আপনি tensor-কে বয়ে যেতে দেখেন। খেলাচ্ছলে রাখা, অথচ স্বতন্ত্র একটি নাম।
লেবেলবিহীন ডেটায় গ্রুপ খুঁজে বের করার চারটি উপায়। প্রতিটি পাতা ব্রাউজারেই সরাসরি চলে — ক্লিক করে পয়েন্ট বসান, অ্যালগরিদমকে এক ধাপ করে এগিয়ে নিন, আর ঠিক কোথায় সেটি সফল হয় ও কোথায় ভেঙে পড়ে তা দেখুন।
centroid-গুলো নিজে বসান, তারপর দুটি ধাপ পালা করে চালান: প্রতিটি পয়েন্টকে তার নিকটতম centroid-এ আবার ভাগ করুন, আর প্রতিটি centroid-কে তার পয়েন্টগুলোর গড়ে সরিয়ে নিন। J-এর পতন দেখুন — আর cluster গোলাকার না হলে সেটি কীভাবে ভুল উত্তরে থিতু হয় তাও দেখুন।
প্রতিটি পয়েন্টকে নিজস্ব cluster ধরে শুরু করুন এবং বারবার নিকটতম জোড়া merge করতে থাকুন, যতক্ষণ না একটিই বাকি থাকে। single, complete ও average linkage তুলনা করুন, তারপর cluster সংখ্যা বা উচ্চতা ধরে ট্রি cut করুন।
কেন্দ্র থেকে দূরত্বের বদলে ঘনত্ব ধরে cluster করুন। ε ও minPts ঠিক করে দিন, আর অ্যালগরিদম core পয়েন্ট থেকে যেকোনো আকৃতির cluster বাড়িয়ে তুলবে — বাকি যা থাকে তাকে noise বলে চিহ্নিত করবে।
soft clustering। প্রতিটি cluster একেকটি ellipse, যার নিজস্ব আকার ও হেলান আছে, আর প্রতিটি পয়েন্ট লেবেলের বদলে পায় অন্তর্ভুক্তির সম্ভাবনা। E-step ও M-step ধাপে ধাপে নিজে চালিয়ে দেখুন।
কোনো রিডিং যে এখানকার নয়, তা ঠিক করার তিনটি উপায়। এর দুটি এমন হিসাব যা আপনি কাগজেই কষতে পারেন; তৃতীয়টি একটি model। প্রতিটি পাতা নিজের ডেটা নিজেই তৈরি করে, তাই বোতামটি কয়েকবার চেপে দেখুন উত্তরটি কতটা বদলায়।
mean থেকে কত standard deviation দূরে? নতুন একটি bell curve তৈরি করুন, একটি cut-off বেছে নিন, আর z-score দেখুন। তারপর কয়েকটি অস্বাভাবিক রিডিং যোগ করে দেখুন সেগুলো ঠিক সেই σ-কেই কীভাবে ফুলিয়ে দেয় যার সাপেক্ষে আপনি তাদের মাপছেন।
ডেটার মাঝের অর্ধেক, box plot হিসেবে আঁকা। outlier যোগ করলেও quartile সামান্যই নড়ে, আর ঠিক এ কারণেই যে দূষণ z-score-কে হারিয়ে দেয়, এই নিয়ম তা টিকে যায়।
একটি পয়েন্ট একা না হওয়া পর্যন্ত এলোমেলোভাবে তল কাটতে থাকুন, আর কাটগুলো গুনুন। যাদের আলাদা করা সহজ, সেগুলোই anomaly। একটিমাত্র ট্রি-কে কাজটি করতে দেখুন, তারপর একশোটি বাড়ান।
একটি neural network কীভাবে শেখে তা নিয়ে চারটি পাতা, একটি neuron-এর হিসাব থেকে পরের শব্দ বেছে নেওয়া পর্যন্ত। প্রতিটি সংখ্যা ব্রাউজারেই সরাসরি হিসাব হয় — ধাপে ধাপে এগিয়ে ক্যালকুলেটর দিয়ে মিলিয়ে দেখুন।
একটি input, দুটি hidden neuron, একটি output: সাতটি weight ও bias। forward pass ও backward pass এক লাইন করে চালান, প্রতিটি সংখ্যা ক্যালকুলেটর দিয়ে মিলিয়ে দেখুন, তারপর update করে loss কমতে দেখুন।
activation ছাড়া যেকোনো মাপের নেটওয়ার্কই একটিমাত্র সরলরেখা। ReLU, sigmoid, tanh বা leaky ReLU দিয়ে একটি বক্ররেখা fit করুন আর দেখুন প্রতিটি neuron একটি করে বাঁক যোগ করে — তারপর একটি dead neuron খুঁজে বের করুন।
একই loss মানচিত্রে gradient descent, SGD, momentum ও Adam। প্রতিটি পথকে তলা খুঁজে পেতে দেখুন, তারপর তিনটি landscape-এ চারটিকে দৌড়ে নামান। কোনো optimizer সব জায়গায় জেতে না।
একটি language model “The cat sat on the ___” বাক্যটি শেষ করে। softmax শব্দের score-কে সম্ভাবনায় পরিণত করে, temperature সেগুলোকে তীক্ষ্ণ বা চ্যাপ্টা করে, আর greedy বা sampling শব্দটি বেছে নেয়।
কম্পিউটার কীভাবে দেখে তা নিয়ে এগারোটি পাতা, একটি pixel-এর সংখ্যা থেকে একটি আঁকার নাম বলা ছোট একটি CNN পর্যন্ত, তারপর প্রতিটি object খুঁজে তার চারপাশে box আঁকা পর্যন্ত, আর শেষে নতুন ছবি বানানো পর্যন্ত। প্রতিটি filter, pool আর score ব্রাউজারেই সরাসরি হিসাব হয় — একটি pixel-এ ক্লিক করে হিসাব মিলিয়ে দেখুন।
একটি ছবি শুধুই সংখ্যা। জুম করে আলাদা আলাদা pixel-এর RGB মান দেখুন, রংকে ধূসর করুন, তিনটি channel আলাদা করুন, ছবি ছোট করুন, আর brightness ও contrast বদলান।
একটি ধূসর ছবির ওপর দিয়ে একটি 3×3 filter সরান: নয়টি weight, প্রতিটি অবস্থানে একটি যোগফল। Sobel filter খাড়া আর আনুভূমিক edge খুঁজে পায়; চিহ্নসহ যোগফল, শুধু ধনাত্মকগুলো, বা শক্তি দেখুন।
প্রতিটি টালির জন্য একটি সংখ্যা রাখুন: সবচেয়ে বড়টি, বা গড়। একটি edge map বারবার pool করুন, 118×88 থেকে 7×5-এ, আর দেখুন কী টিকে থাকে।
একটি দাগ আঁকুন আর হাতে বসানো weight-এর একটি ছোট নেটওয়ার্কের ভেতর দিয়ে সেটি অনুসরণ করুন: filter, ReLU, pooling, পাঁচটি class score আর softmax। তারপর খুঁজে বের করুন কোন আঁকাটি সে ভুল বলে।
চারটি class score-কে এমন সম্ভাবনায় পরিণত করুন যা মিলে 100% হয়। temperature সরিয়ে নেটওয়ার্ককে কম বা বেশি নিশ্চিত করুন, তারপর বারগুলোকে দান হিসেবে ধরে এলোমেলোভাবে বেছে নিন।
ছবিতে কী আছে শুধু তা নয়, কোথায় আছে। প্রতিটি অবস্থানে একটি বিড়ালের template সরান, প্রতিটি window-কে score দিন, cut-off-এর ওপরেরগুলো রাখুন, আর NMS দিয়ে ডুপ্লিকেট পরিষ্কার করুন।
একটি box কতটা মেলে তার জন্য একটি সংখ্যা: সাধারণ ক্ষেত্রফল ভাগ দুটি box মিলে যতটা ঢাকে। box টেনে সরান আর দেখুন একই 5-pixel ভুল কেন ছোট box-এর অনেক বেশি ক্ষতি করে।
region প্রস্তাব করুন, তারপর প্রতিটি যাচাই করুন। R-CNN থেকে Fast R-CNN আর তারপর Faster R-CNN হওয়ার সময় CNN কতবার চলে গুনুন: 111 বার, তারপর একবার।
একবার চলা, grid-এর প্রতিটি cell একসঙ্গে। একটি cell-এ ক্লিক করে দেখুন সে কোন সাতটি সংখ্যা অনুমান করে, তারপর দেখুন score cut-off আর NMS কীভাবে box-এর একটি স্তূপকে প্রতিটি প্রাণীর জন্য একটি box-এ নামায়।
দুটি network-এর একটি খেলা: এক জালিয়াত random সংখ্যাকে বিন্দুতে পরিণত করে, এক গোয়েন্দা সেগুলোকে আসলগুলো থেকে আলাদা করার চেষ্টা করে। দেখুন নকল বিন্দুগুলো কীভাবে আসল আকারে সরে যায়, আর একপক্ষ একা শিখলে কী ভেঙে পড়ে।
একটি smiley-তে noise মেশান যতক্ষণ না শুধু ঝিরিঝিরি থাকে। তারপর একটি network-কে noise অনুমান করতে train করুন, আর দেখুন সে কীভাবে বিন্দুর একটি random মেঘকে আবার smiley বানায়, এক এক ছোট ধাপে।