ভিএই (VAE) বা গ্যান (GAN)-এর মতো প্রচলিত জেনারেটিভ মডেলগুলোর কিছু মৌলিক সীমাবদ্ধতা রয়েছে: ভিএই কেবল সম্ভাব্যতার একটি নিম্নসীমা (ELBO) অপ্টিমাইজ করতে পারে, আর গ্যান কোনো সম্ভাব্যতা বণ্টনই দিতে পারে না। নরমালাইজিং ফ্লো (Normalizing Flows) এই সংকটের সমাধান করে এক অনন্য গাণিতিক কাঠামোর মাধ্যমে—তারা তৈরি করে উভমুখী বা বাইজেক্টিভ (Bijective) নিউরাল নেটওয়ার্ক। বহু-চলক ক্যালকুলাসের চলক রূপান্তর উপপাদ্য (Change-of-Variables Theorem) ব্যবহার করে এটি একটি সাধারণ গাউসিয়ান বণ্টনকে বাস্তব জগতের অতি জটিল ডেটা বিন্যাসে রূপান্তর করে এবং একই সাথে নিখুঁত মার্জিনাল লাইকলিহুড প্রদান করে।
১. বহু-চলক চলক রূপান্তর উপপাদ্য
ধরি $Z in mathbb{R}^d$ হলো একটি আদর্শ গাউসিয়ান র্যান্ডম ভেক্টর যার ঘনত্ব $p_Z(z)$ সুপরিচিত। একটি মসৃণ ও উভমুখী ম্যাপিং $f$-এর মাধ্যমে যদি $X = f(Z)$ এবং $Z = f^{-1}(X)$ হয়, তবে সম্ভাব্যতা ভরের সংরক্ষণ নীতি অনুযায়ী:
$$p_X(x) = p_Z(f^{-1}(x)) cdot left| det left( frac{partial f^{-1}(x)}{partial x} right) right|$$
লগারিদম নিলে পাওয়া যায় নিখুঁত সম্ভাব্যতা সমীকরণ:
$$log p_X(x) = log p_Z(f^{-1}(x)) – log left| det J_f(f^{-1}(x)) right|$$
যেখানে $J_f$ হলো জ্যাকোবিয়ান ম্যাট্রিক্স।
২. জ্যাকোবিয়ান গণনা ও কাপলিং লেয়ার
একটি সাধারণ $d times d$ ম্যাট্রিক্সের নির্ণায়ক (Determinant) বের করতে $O(d^3)$ সময় লাগে, যা লক্ষ লক্ষ পিক্সেলে সম্পূর্ণ অকার্যকর। এই জটিলতা কাটিয়ে উঠতে এমন আর্কিটেকচার তৈরি করতে হয় যার জ্যাকোবিয়ান একটি ট্রায়াঙ্গুলার ম্যাট্রিক্স। ট্রায়াঙ্গুলার ম্যাট্রিক্সের নির্ণায়ক কেবল তার প্রধান কর্ণের উপাদানগুলোর গুণফলের সমান ($O(d)$)।
২০১৬ সালে ডিন এবং সহকর্মীরা উদ্ভাবন করেন RealNVP। তারা ইনপুটকে দুই ভাগে ভাগ করেন—এক ভাগকে অপরিবর্তিত রেখে তার ওপর ভিত্তি করে অপর ভাগে স্কেলিং ও ট্রানস্লেশন নেটওয়ার্ক প্রয়োগ করেন। এর ফলে জ্যাকোবিয়ান ম্যাট্রিক্সটি স্বয়ংক্রিয়ভাবে ট্রায়াঙ্গুলার হয় এবং নির্ণায়ক নির্ণয় অত্যন্ত সহজ হয়ে যায়।
৩. কন্টিনিউয়াস নরমালাইজিং ফ্লো (CNF)
স্তরের সংখ্যা অসীম সীমায় পৌঁছালে ফ্লো একটি সাধারণ ব্যবকলনীয় সমীকরণে (ODE) রূপান্তরিত হয়। লিউভিলের উপপাদ্য অনুযায়ী তখন নির্ণায়কের বদলে জ্যাকোবিয়ানের ট্রেস (Trace) ব্যবহৃত হয়, যা মেমরি ও সময়ের ব্যবহারে বিপ্লব ঘটায়।