Xlera8

মেশিন লার্নিং এর জন্য ডিফিউশন মডেলের ভূমিকা

এই নিবন্ধটি মূলত উপর প্রকাশ করা হয়েছিল অ্যাসেম্বলিএআই এবং লেখকের অনুমতি নিয়ে TOPBOTS-এ পুনঃপ্রকাশিত.

ডিফিউশন মডেল হল জেনারেটিভ মডেল যা বিগত বেশ কয়েক বছরে উল্লেখযোগ্য জনপ্রিয়তা অর্জন করছে এবং সঙ্গত কারণেই। 2020-এর দশকে প্রকাশিত কয়েকটি সেমিনাল পেপার একা বিশ্বকে দেখিয়েছে যে ডিফিউশন মডেলগুলি কী করতে সক্ষম, যেমন GAN গুলিকে মারধর৷[6] ইমেজ সংশ্লেষণ উপর. অতি সম্প্রতি, অনুশীলনকারীরা ডিফিউশন মডেল ব্যবহার করতে দেখেছেন DALL-E2, OpenAI এর ইমেজ জেনারেশন মডেল গত মাসে মুক্তি পেয়েছে।

DALL-E 2 দ্বারা উত্পন্ন বিভিন্ন চিত্র (উৎস).

ডিফিউশন মডেলের সাফল্যের সাম্প্রতিক তরঙ্গের পরিপ্রেক্ষিতে, অনেক মেশিন লার্নিং অনুশীলনকারী অবশ্যই তাদের অভ্যন্তরীণ কাজগুলিতে আগ্রহী। এই নিবন্ধে, আমরা পরীক্ষা করব ডিফিউশন মডেলের জন্য তাত্ত্বিক ভিত্তি, এবং তারপর প্রদর্শন করুন কিভাবে a দিয়ে ছবি তৈরি করতে হয় PyTorch মধ্যে ডিফিউশন মডেল. এর মধ্যে ডুব দেওয়া যাক!

যদি এই গভীর-শিক্ষামূলক সামগ্রী আপনার জন্য দরকারী, আমাদের AI মেলিং লিস্টে সাবস্ক্রাইব করুন সতর্কতা অবলম্বন করার জন্য যখন আমরা নতুন উপাদান প্রকাশ করি। 

ডিফিউশন মডেল - ভূমিকা

ডিফিউশন মডেল হল সৃজক মডেল, যার অর্থ তারা যে ডেটাতে প্রশিক্ষিত হয় তার মতো ডেটা তৈরি করতে ব্যবহৃত হয়। মৌলিকভাবে, ডিফিউশন মডেলগুলি কাজ করে প্রশিক্ষণ তথ্য ধ্বংস গাউসিয়ান শব্দের ধারাবাহিক সংযোজনের মাধ্যমে, এবং তারপর পুনরুদ্ধার করা শেখা দ্বারা তথ্য reversing এই গোলমাল প্রক্রিয়া। প্রশিক্ষণের পরে, আমরা সহজভাবে ডেটা তৈরি করতে ডিফিউশন মডেল ব্যবহার করতে পারি শেখা denoising প্রক্রিয়া মাধ্যমে এলোমেলোভাবে নমুনা শব্দ পাস.

ডিফিউশন মডেলগুলি শব্দ থেকে ছবি তৈরি করতে ব্যবহার করা যেতে পারে (এর থেকে অভিযোজিত উৎস)

আরও নির্দিষ্টভাবে, একটি ডিফিউশন মডেল হল একটি সুপ্ত পরিবর্তনশীল মডেল যা একটি নির্দিষ্ট মার্কভ চেইন ব্যবহার করে সুপ্ত স্থানের মানচিত্র তৈরি করে। এই শৃঙ্খলটি আনুমানিক পশ্চাৎপদ q(x) পাওয়ার জন্য ধীরে ধীরে ডেটাতে শব্দ যোগ করে1: টি|x0), যেখানে x1,…,এক্সT x এর মতো একই মাত্রার সুপ্ত ভেরিয়েবল0. নীচের চিত্রে, আমরা চিত্র ডেটার জন্য এমন একটি মার্কভ চেইন উদ্ভাসিত দেখতে পাই।

শেষ পর্যন্ত, চিত্রটি অ্যাসিম্পটোটিকভাবে বিশুদ্ধ গাউসিয়ান শব্দে রূপান্তরিত হয়। দ্য লক্ষ্য একটি প্রসারিত মডেল প্রশিক্ষণের শিখতে হয় বিপরীত প্রক্রিয়া - যেমন প্রশিক্ষণ পিθ(xt−1|xt) এই শৃঙ্খল বরাবর পিছনের দিকে যাওয়ার মাধ্যমে, আমরা নতুন ডেটা তৈরি করতে পারি।

ডিফিউশন মডেলের সুবিধা

উপরে উল্লিখিত হিসাবে, ডিফিউশন মডেলগুলিতে গবেষণা সাম্প্রতিক বছরগুলিতে বিস্ফোরিত হয়েছে। অ-ভারসাম্য তাপগতিবিদ্যা দ্বারা অনুপ্রাণিত[1], ডিফিউশন মডেল বর্তমানে উত্পাদন অত্যাধুনিক ছবির গুণমান, যার উদাহরণ নীচে দেখা যেতে পারে:

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

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

ডিফিউশন মডেল - একটি গভীর ডুব

উপরে উল্লিখিত হিসাবে, একটি ডিফিউশন মডেল একটি নিয়ে গঠিত ফরোয়ার্ড প্রক্রিয়া (অথবা প্রসারণ প্রক্রিয়া), যেখানে একটি ডেটাম (সাধারণত একটি চিত্র) ক্রমান্বয়ে শোরগোল হয়, এবং ক বিপরীত প্রক্রিয়া (অথবা বিপরীত প্রসারণ প্রক্রিয়া), যেখানে গোলমাল টার্গেট ডিস্ট্রিবিউশন থেকে একটি নমুনায় রূপান্তরিত হয়।

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

গাণিতিক নোট

আমরা ডাটা নষ্ট করার কথা বলেছি যোগ গাউসিয়ান আওয়াজ, তবে আমরা এই সংযোজনটি কোথায় করছি তা প্রথমে অস্পষ্ট হতে পারে। উপরের সমীকরণ অনুসারে, চেইনের প্রতিটি ধাপে আমরা কেবল একটি গাউসিয়ান ডিস্ট্রিবিউশন থেকে নমুনা নিচ্ছি যার গড় হল চেইনের আগের মান (যেমন চিত্র)।

এই দুটি বিবৃতি সমতুল্য। এটাই

কেন বোঝার জন্য, আমরা জোর দিয়ে স্বরলিপির সামান্য অপব্যবহার ব্যবহার করব

যেখানে চূড়ান্ত অন্তর্নিহিততা র‍্যান্ডম ভেরিয়েবলের যোগফল এবং তাদের বন্টনের সংঘটনের মধ্যে গাণিতিক সমতা থেকে উদ্ভূত হয় – দেখুন এই উইকিপিডিয়া পাতা আরও তথ্যের জন্য.

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

যেখানে β1,…,βT একটি পরিবর্তনের সময়সূচী (হয় শেখা বা স্থির) যা যদি ভাল আচরণ করা হয়, তা নিশ্চিত করে xT যথেষ্ট বড় T-এর জন্য প্রায় একটি আইসোট্রপিক গাউসিয়ান।

মার্কভ অনুমান অনুযায়ী, সুপ্ত ভেরিয়েবলের যৌথ বন্টন হল গাউসিয়ান কন্ডিশনাল চেইন ট্রানজিশনের গুণফল (এর থেকে পরিবর্তিত উৎস).

পূর্বে উল্লিখিত হিসাবে, প্রসারিত মডেলের "জাদু" আসে বিপরীত প্রক্রিয়া. প্রশিক্ষণের সময়, মডেলটি নতুন ডেটা তৈরি করার জন্য এই বিস্তার প্রক্রিয়াটিকে বিপরীত করতে শেখে। বিশুদ্ধ গাউসিয়ান শব্দ দিয়ে শুরু হচ্ছে p(xT:=N(xT,0,I) মডেল যৌথ বন্টন শিখে পিθ(x0: টি) হিসাবে

যেখানে গাউসিয়ান ট্রানজিশনের সময়-নির্ভর পরামিতি শেখা হয়। বিশেষভাবে মনে রাখবেন যে মার্কভ ফর্মুলেশন জোর দিয়ে বলে যে একটি প্রদত্ত রিভার্স ডিফিউশন ট্রানজিশন ডিস্ট্রিবিউশন শুধুমাত্র পূর্ববর্তী টাইমস্টেপের উপর নির্ভর করে (বা নিম্নলিখিত টাইমস্টেপ, আপনি এটিকে কীভাবে দেখছেন তার উপর নির্ভর করে):

প্রশিক্ষণ

একটি ডিফিউশন মডেল দ্বারা প্রশিক্ষিত হয় রিভার্স মার্কভ ট্রানজিশন খুঁজে বের করা যা প্রশিক্ষণের ডেটার সম্ভাবনাকে সর্বাধিক করে। অনুশীলনে, প্রশিক্ষণ সমানভাবে নেতিবাচক লগ সম্ভাবনার উপর প্রকরণগত ঊর্ধ্বসীমাকে ন্যূনতম করে।

স্বরলিপি বিস্তারিত

উল্লেখ্য যে এলভিএলবি প্রযুক্তিগতভাবে একটি উচ্চতর আবদ্ধ (ELBO এর নেতিবাচক) যা আমরা কমানোর চেষ্টা করছি, কিন্তু আমরা এটিকে L হিসাবে উল্লেখ করিভিএলবি সাহিত্যের সাথে সামঞ্জস্যের জন্য।

আমরা এল পুনরায় লিখতে চাইভিএলবি শর্তাবলী Kullback-Leibler (KL) ভিন্নতা। কেএল ডাইভারজেন্স হল একটি সম্ভাব্যতা বণ্টনের একটি অসমিত পরিসংখ্যানগত দূরত্ব পরিমাপ P একটি রেফারেন্স বিতরণ থেকে ভিন্ন Q. আমরা এল প্রণয়ন করতে আগ্রহীভিএলবি কেএল বিচ্ছিন্নতার পরিপ্রেক্ষিতে কারণ আমাদের মার্কভ চেইনের রূপান্তর বন্টনগুলি গাউসিয়ান এবং গাউসিয়ানদের মধ্যে KL বিচ্ছিন্নতার একটি বন্ধ রূপ রয়েছে।

কেএল ডাইভারজেন্স কি?

ক্রমাগত বণ্টনের জন্য KL ডাইভারজেন্সের গাণিতিক রূপ

ডবল বারগুলি নির্দেশ করে যে ফাংশনটি তার আর্গুমেন্টের ক্ষেত্রে প্রতিসম নয়।

নীচে আপনি একটি পরিবর্তিত বন্টনের KL বিচ্যুতি দেখতে পারেন৷ P (নীল) একটি রেফারেন্স বিতরণ থেকে Q (লাল)। সবুজ বক্ররেখা উপরের KL ডাইভারজেন্সের সংজ্ঞাতে ইন্টিগ্রেলের মধ্যে ফাংশন নির্দেশ করে এবং বক্ররেখার নিচের মোট ক্ষেত্রফল এর KL ডাইভারজেন্সের মানকে প্রতিনিধিত্ব করে P থেকে Q যে কোনো মুহূর্তে, একটি মান যা সংখ্যাগতভাবেও প্রদর্শিত হয়।

ঢালাই Lvlb কেএল ডাইভারজেন্সের শর্তে

পূর্বে উল্লিখিত হিসাবে, এটি সম্ভব [1] আবার লিখতে Lভিএলবি প্রায় সম্পূর্ণভাবে কেএল বিচ্ছিন্নতার পরিপ্রেক্ষিতে:

কোথায়

ডেরিভেশন বিশদ

তারতম্যের সীমা সমান

আমাদের মার্কভ অনুমান অনুসারে বিতরণগুলিকে তাদের সংজ্ঞাগুলির সাথে প্রতিস্থাপন করে, আমরা পাই

অভিব্যক্তিটিকে লগের সমষ্টিতে রূপান্তর করতে আমরা লগ নিয়ম ব্যবহার করি এবং তারপরে আমরা প্রথম শব্দটি বের করি

Bayes' উপপাদ্য এবং আমাদের মার্কভ অনুমান ব্যবহার করে, এই অভিব্যক্তি হয়ে ওঠে

আমরা তারপর লগ নিয়ম ব্যবহার করে মধ্যবর্তী শব্দ বিভক্ত

দ্বিতীয় মেয়াদ বিচ্ছিন্ন, আমরা দেখতে

L এর জন্য আমাদের সমীকরণে এটিকে আবার প্লাগ করা হচ্ছেভিএলবি, আমাদের আছে

লগ নিয়ম ব্যবহার করে, আমরা পুনর্বিন্যাস

d8

এরপরে, আমরা যেকোন দুটি ডিস্ট্রিবিউশনের জন্য KL ডাইভারজেন্সের জন্য নিম্নলিখিত সমতা নোট করি:

অবশেষে, পূর্ববর্তী অভিব্যক্তিতে এই সমতা প্রয়োগ করে, আমরা পৌঁছাই

x-এ অগ্রবর্তী প্রক্রিয়ার পশ্চাৎভাগকে কন্ডিশন করা0 এল তেt−1 একটি সংযত ফর্ম যা বাড়ে ফলাফল গাউসিয়ানদের মধ্যে তুলনা করা হচ্ছে সকল KL ভিন্নতা। এর মানে হল যে বিচ্ছিন্নতাগুলি মন্টে কার্লো অনুমানের পরিবর্তে বদ্ধ আকারের অভিব্যক্তিগুলির সাথে সঠিকভাবে গণনা করা যেতে পারে[3].

মডেল পছন্দ

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

বিপরীত প্রক্রিয়ার জন্য, আমরা গাউসিয়ান ডিস্ট্রিবিউশন প্যারামিটারাইজেশন/মডেল আর্কিটেকচার(গুলি) বেছে নিই। নোট করুন নমনীয়তা উচ্চ ডিগ্রী যে ডিফিউশন মডেলগুলি সামর্থ্য - কেবল আমাদের স্থাপত্যের প্রয়োজনীয়তা হল এর ইনপুট এবং আউটপুট একই মাত্রিকতা।

আমরা নীচে আরও বিশদে এই পছন্দগুলির বিশদ বিবরণ অন্বেষণ করব।

ফরোয়ার্ড প্রসেস এবং এলT

উপরে উল্লিখিত হিসাবে, এগিয়ে যাওয়ার প্রক্রিয়া সম্পর্কিত, আমাদের অবশ্যই প্রকরণের সময়সূচী নির্ধারণ করতে হবে। বিশেষ করে, আমরা তাদের হতে সেট সময়-নির্ভর ধ্রুবক, তারা শেখা যেতে পারে যে সত্য উপেক্ষা. উদাহরণ স্বরূপ[3], β থেকে একটি রৈখিক সময়সূচী1= 10-4 থেকে βT=0.2 ব্যবহার করা যেতে পারে, অথবা সম্ভবত একটি জ্যামিতিক সিরিজ।

নির্বিশেষে নির্বাচিত মান নির্বিশেষে, সত্য যে বৈকল্পিক সময়সূচী স্থির হয় L এর ফলাফলT আমাদের শিখনযোগ্য পরামিতিগুলির সেটের ক্ষেত্রে একটি ধ্রুবক হয়ে উঠছে, যা প্রশিক্ষণের ক্ষেত্রে আমাদেরকে উপেক্ষা করার অনুমতি দেয়।

বিপরীত প্রক্রিয়া এবং এল1:T−1

এখন আমরা বিপরীত প্রক্রিয়া সংজ্ঞায়িত করার জন্য প্রয়োজনীয় পছন্দগুলি নিয়ে আলোচনা করি। উপরে থেকে স্মরণ করুন আমরা একটি গাউসিয়ান হিসাবে বিপরীত মার্কভ ট্রানজিশনকে সংজ্ঞায়িত করেছি:

আমাদের এখন μ এর কার্যকরী রূপগুলিকে সংজ্ঞায়িত করতে হবেθ বা Σθ. যদিও Σ প্যারামিটারাইজ করার আরও জটিল উপায় রয়েছেθ[5], আমরা সহজভাবে সেট

অর্থাৎ, আমরা ধরে নিই যে মাল্টিভেরিয়েট গাউসিয়ান হল অভিন্ন ভিন্নতা সহ স্বাধীন গাউসিয়ানদের একটি পণ্য, একটি প্রকরণ মান যা সময়ের সাথে পরিবর্তিত হতে পারে। আমরা এই ভেরিয়েন্সগুলিকে আমাদের ফরোয়ার্ড প্রসেস ভ্যারিয়েন্স সময়সূচীর সমতুল্য হিসাবে সেট করুন।

Σ এর এই নতুন সূত্র দেওয়া হয়েছেθ, আমাদের আছে

যা আমাদের রূপান্তর করতে দেয়

থেকে

যেখানে পার্থক্যের প্রথম পদটি x এর একটি রৈখিক সংমিশ্রণt এবং x0 যা প্রকরণের সময়সূচী β এর উপর নির্ভর করেt. এই ফাংশনের সঠিক ফর্মটি আমাদের উদ্দেশ্যে প্রাসঙ্গিক নয়, তবে এটি [3].

উপরোক্ত অনুপাতের তাৎপর্য এই যে μ-এর সবচেয়ে সহজবোধ্য প্যারামিটারাইজেশনθ সহজভাবে প্রসারণ পোস্টেরিয়র গড় ভবিষ্যদ্বাণী করে। গুরুত্বপূর্ণভাবে, এর লেখকরা [3] আসলে সেই প্রশিক্ষণ μ পাওয়া গেছেθ ভবিষ্যদ্বাণী করতে গোলমাল যে কোনো নির্দিষ্ট সময়ে কম্পোনেন্ট ভালো ফলাফল দেয়। বিশেষ করে, যাক

কোথায়

এটি নিম্নলিখিত বিকল্প ক্ষতি ফাংশন বাড়ে, যার লেখক [3] আরও স্থিতিশীল প্রশিক্ষণ এবং আরও ভাল ফলাফলের দিকে পরিচালিত করে:

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

নেটওয়ার্ক আর্কিটেকচার

যদিও আমাদের সরলীকৃত ক্ষতি ফাংশন একটি মডেলকে প্রশিক্ষণ দিতে চায় ϵθ, আমরা এখনও এই মডেলের আর্কিটেকচার সংজ্ঞায়িত করতে পারিনি। উল্লেখ্য যে কেবল মডেলের জন্য প্রয়োজনীয়তা হল এর ইনপুট এবং আউটপুট মাত্রা অভিন্ন।

এই নিষেধাজ্ঞার পরিপ্রেক্ষিতে, এটি সম্ভবত আশ্চর্যজনক যে ইমেজ ডিফিউশন মডেলগুলি সাধারণত U-Net-এর মতো আর্কিটেকচারের সাথে প্রয়োগ করা হয়।

বিপরীত প্রক্রিয়া ডিকোডার এবং এল0

বিপরীত প্রক্রিয়া বরাবর পাথ ক্রমাগত শর্তাধীন গাউসিয়ান ডিস্ট্রিবিউশনের অধীনে অনেক রূপান্তর নিয়ে গঠিত। বিপরীত প্রক্রিয়ার শেষে, স্মরণ করুন যে আমরা একটি তৈরি করার চেষ্টা করছি ভাবমূর্তি, যা পূর্ণসংখ্যা পিক্সেল মান নিয়ে গঠিত। অতএব, আমরা একটি উপায় প্রাপ্ত করা আবশ্যক বিচ্ছিন্ন (লগ) সম্ভাবনা সমস্ত পিক্সেল জুড়ে প্রতিটি সম্ভাব্য পিক্সেল মানের জন্য।

যেভাবে এটি করা হয় তা হল বিপরীত ডিফিউশন চেইনের শেষ রূপান্তরটি একটিতে সেট করে স্বাধীন বিচ্ছিন্ন ডিকোডার. প্রদত্ত চিত্র x এর সম্ভাবনা নির্ধারণ করতে0 দেওয়া x1, আমরা প্রথমে ডেটা মাত্রার মধ্যে স্বাধীনতা আরোপ করি:

যেখানে D হল ডেটা এবং সুপারস্ক্রিপ্টের মাত্রা i একটি স্থানাঙ্ক নিষ্কাশন নির্দেশ করে। এখন লক্ষ্য হল প্রদত্ত পিক্সেলের জন্য প্রতিটি পূর্ণসংখ্যার মান কতটা সম্ভব তা নির্ধারণ করা প্রদত্ত t=1 সময়ে সামান্য শব্দযুক্ত চিত্রে সংশ্লিষ্ট পিক্সেলের সম্ভাব্য মান জুড়ে বিতরণ:

যেখানে t=1 এর জন্য পিক্সেল ডিস্ট্রিবিউশনগুলি নীচের মাল্টিভেরিয়েট গাউসিয়ান থেকে প্রাপ্ত হয়েছে যার তির্যক কোভেরিয়েন্স ম্যাট্রিক্স আমাদের ডিস্ট্রিবিউশনকে একবিভক্ত গাউসিয়ানদের একটি পণ্যে বিভক্ত করতে দেয়, ডেটার প্রতিটি মাত্রার জন্য একটি:

আমরা অনুমান করি যে চিত্রগুলি 0,1,…,255 তে পূর্ণসংখ্যা নিয়ে গঠিত (স্ট্যান্ডার্ড আরজিবি চিত্রগুলির মতো) যা রৈখিকভাবে [−1,1] এ স্কেল করা হয়েছে। তারপরে আমরা আসল লাইনকে ছোট "বালতি" তে ভেঙ্গে ফেলি, যেখানে একটি প্রদত্ত স্কেল করা পিক্সেল মানের জন্য x, সেই পরিসরের জন্য বালতি হল [x−1/255, x+1/255]। একটি পিক্সেল মানের সম্ভাবনা x, x-এ অনুরূপ পিক্সেলের অবিচ্ছিন্ন গাউসিয়ান ডিস্ট্রিবিউশন দেওয়া হয়েছে1, হয় কেন্দ্রীভূত বালতির মধ্যে সেই অবিচ্ছিন্ন গাউসিয়ান ডিস্ট্রিবিউশনের অধীনে এলাকা x.

নীচে আপনি একটি গড়-0 গাউসিয়ানের জন্য সম্ভাব্যতা সহ এই বালতিগুলির প্রতিটির জন্য এলাকা দেখতে পারেন যা এই প্রসঙ্গে, 255/2 (অর্ধ উজ্জ্বলতা) এর গড় পিক্সেল মান সহ একটি বিতরণের সাথে মিলে যায়। লাল বক্ররেখা একটি নির্দিষ্ট পিক্সেলের বন্টনের প্রতিনিধিত্ব করে t = 1 চিত্র, এবং ক্ষেত্রগুলি সংশ্লিষ্ট পিক্সেল মানের সম্ভাব্যতা দেয় t = 0 চিত্র।

প্রযুক্তিগত নোট

প্রথম এবং শেষ বালতি -inf এবং +inf পর্যন্ত সম্প্রসারিত হয় যাতে মোট সম্ভাব্যতা সংরক্ষণ করা যায়।

দেওয়া a t = 0 প্রতিটি পিক্সেলের জন্য পিক্সেল মান, p এর মানθ(x0|x1) সহজভাবে তাদের পণ্য. এই প্রক্রিয়াটি সংক্ষিপ্তভাবে নিম্নলিখিত সমীকরণ দ্বারা আবদ্ধ করা হয়েছে:

কোথায়

এবং

পি জন্য এই সমীকরণ দেওয়াθ(x0|x1), আমরা L এর চূড়ান্ত পদ গণনা করতে পারিভিএলবি যা কেএল ডাইভারজেন্স হিসাবে প্রণয়ন করা হয় না:

চূড়ান্ত উদ্দেশ্য

শেষ বিভাগে উল্লিখিত হিসাবে, এর লেখকরা [3] খুঁজে পাওয়া গেছে যে একটি নির্দিষ্ট সময়ের ধাপে একটি চিত্রের শব্দ উপাদানের পূর্বাভাস সর্বোত্তম ফলাফল দেয়। শেষ পর্যন্ত, তারা নিম্নলিখিত উদ্দেশ্য ব্যবহার করে:

আমাদের ডিফিউশন মডেলের জন্য প্রশিক্ষণ এবং স্যাম্পলিং অ্যালগরিদমগুলি তাই সংক্ষিপ্তভাবে নীচের চিত্রে ক্যাপচার করা যেতে পারে:

ডিফিউশন মডেল থিওরি সারাংশ

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

  1. আমাদের ডিফিউশন মডেল একটি হিসাবে প্যারামিটারাইজ করা হয়েছে মার্কভ চেইন, মানে আমাদের সুপ্ত ভেরিয়েবল x1,…,এক্সT শুধুমাত্র পূর্ববর্তী (বা নিম্নলিখিত) টাইমস্টেপের উপর নির্ভর করে।
  2. সার্জারির  স্থানান্তর বিতরণ মার্কভ চেইনে আছে গসিয়ান, যেখানে ফরোয়ার্ড প্রক্রিয়ার জন্য একটি পরিবর্তনের সময়সূচী প্রয়োজন, এবং বিপরীত প্রক্রিয়ার পরামিতিগুলি শেখা হয়।
  3. প্রসারণ প্রক্রিয়া নিশ্চিত করে যে xT is অ্যাসিম্পটোটিকভাবে একটি আইসোট্রপিক গাউসিয়ান হিসাবে বিতরণ করা হয়েছে যথেষ্ট বড় T এর জন্য।
  4. আমাদের ক্ষেত্রে, পরিবর্তনের সময়সূচী স্থির করা হয়েছিল, কিন্তু এটা পাশাপাশি শেখা যেতে পারে. নির্দিষ্ট সময়সূচীর জন্য, একটি জ্যামিতিক অগ্রগতি অনুসরণ করা একটি রৈখিক অগ্রগতির চেয়ে ভাল ফলাফল বহন করতে পারে। উভয় ক্ষেত্রেই, বৈচিত্রগুলি সাধারণত সিরিজের সময়ের সাথে বৃদ্ধি পাচ্ছে (যেমন βij আমি জন্য
  5. ডিফিউশন মডেল হল অত্যন্ত নমনীয় এবং অনুমতি দিন কোন স্থাপত্য যার ইনপুট এবং আউটপুট মাত্রিকতা একই ব্যবহার করা হবে। অনেক বাস্তবায়ন ব্যবহার ইউ-নেট-এর মতো স্থাপত্য
  6. সার্জারির  প্রশিক্ষণের উদ্দেশ্য প্রশিক্ষণের ডেটার সম্ভাবনাকে সর্বাধিক করা। এটি মডেল পরামিতি টিউনিং হিসাবে উদ্ভাসিত হয় ডেটার নেতিবাচক লগ সম্ভাবনার বৈচিত্রপূর্ণ উপরের সীমানা কমিয়ে দিন.
  7. অবজেক্টিভ ফাংশনের প্রায় সব টার্ম হিসেবে নিক্ষেপ করা যেতে পারে কেএল ডাইভারজেন্স আমাদের মার্কভ অনুমানের ফলে। এই মান গণনা করতে সক্ষম হন প্রদত্ত যে আমরা গাউসিয়ানদের ব্যবহার করছি, তাই মন্টে কার্লো আনুমানিক সঞ্চালনের প্রয়োজনীয়তা বাদ দিয়েছি।
  8. শেষ পর্যন্ত, একটি ব্যবহার করে সরলীকৃত প্রশিক্ষণের উদ্দেশ্য এমন একটি ফাংশনকে প্রশিক্ষণ দিতে যা একটি প্রদত্ত সুপ্ত ভেরিয়েবলের শব্দ উপাদানের পূর্বাভাস দেয় সেরা এবং সবচেয়ে স্থিতিশীল ফলাফল দেয়।
  9. বিচ্ছিন্ন ডিকোডার রিভার্স ডিফিউশন প্রক্রিয়ার শেষ ধাপ হিসেবে পিক্সেল মান জুড়ে লগ সম্ভাবনা পেতে ব্যবহৃত হয়।

আমাদের মনের ডিফিউশন মডেলগুলির এই উচ্চ-স্তরের ওভারভিউ দিয়ে, আসুন পাইটর্চে একটি ডিফিউশন মডেলগুলি কীভাবে ব্যবহার করবেন তা দেখতে এগিয়ে যাই।

PyTorch মধ্যে বিস্তার মডেল

যদিও ডিফিউশন মডেলগুলি এখনও মেশিন লার্নিং-এ অন্যান্য পুরানো আর্কিটেকচার/পন্থাগুলির মতো একই মাত্রায় গণতন্ত্রীকরণ করা হয়নি, এখনও ব্যবহারের জন্য উপলব্ধ বাস্তবায়ন রয়েছে। PyTorch এ একটি ডিফিউশন মডেল ব্যবহার করার সবচেয়ে সহজ উপায় হল ব্যবহার করা denoising-diffusion-pytorch প্যাকেজ, যা এই নিবন্ধে আলোচিত একটি মত একটি ইমেজ ডিফিউশন মডেল প্রয়োগ করে। প্যাকেজটি ইনস্টল করতে, টার্মিনালে কেবল নিম্নলিখিত কমান্ডটি টাইপ করুন:

pip install denoising_diffusion_pytorch

ন্যূনতম উদাহরণ

একটি মডেলকে প্রশিক্ষণ দিতে এবং ছবি তৈরি করতে, আমরা প্রথমে প্রয়োজনীয় প্যাকেজগুলি আমদানি করি:

import torch
from denoising_diffusion_pytorch import Unet, GaussianDiffusion

এর পরে, আমরা আমাদের নেটওয়ার্ক আর্কিটেকচারকে সংজ্ঞায়িত করি, এই ক্ষেত্রে একটি U-Net। দ্য dim প্যারামিটার প্রথম ডাউন-স্যাম্পলিং এর আগে বৈশিষ্ট্য মানচিত্রের সংখ্যা নির্দিষ্ট করে এবং dim_mults প্যারামিটার এই মান এবং ক্রমাগত ডাউন-স্যাম্পলিং এর জন্য গুণিতক প্রদান করে:

model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
)

এখন আমাদের নেটওয়ার্ক আর্কিটেকচার সংজ্ঞায়িত করা হয়েছে, আমাদের ডিফিউশন মডেল নিজেই সংজ্ঞায়িত করতে হবে। আমরা U-Net মডেলটি পাস করি যা আমরা বেশ কয়েকটি পরামিতি সহ সংজ্ঞায়িত করেছি – তৈরি করার জন্য চিত্রের আকার, প্রসারণ প্রক্রিয়ার সময় ধাপের সংখ্যা এবং L1 এবং L2 নিয়মগুলির মধ্যে একটি পছন্দ।

diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
)

এখন যে ডিফিউশন মডেলটি সংজ্ঞায়িত করা হয়েছে, এটি প্রশিক্ষণের সময়। আমরা প্রশিক্ষণের জন্য এলোমেলো ডেটা তৈরি করি এবং তারপরে সাধারণ ফ্যাশনে ডিফিউশন মডেলকে প্রশিক্ষণ দিই:

training_images = torch.randn(8, 3, 128, 128)
loss = diffusion(training_images)
loss.backward()

মডেলটি প্রশিক্ষিত হয়ে গেলে, আমরা অবশেষে ব্যবহার করে ছবি তৈরি করতে পারি sample() পদ্ধতি diffusion বস্তু এখানে আমরা 4টি চিত্র তৈরি করি, যেগুলি শুধুমাত্র আওয়াজ দেয় যে আমাদের প্রশিক্ষণের ডেটা এলোমেলো ছিল:

sampled_images = diffusion.sample(batch_size = 4)

কাস্টম ডেটার উপর প্রশিক্ষণ

সার্জারির  denoising-diffusion-pytorch প্যাকেজ আপনাকে একটি নির্দিষ্ট ডেটাসেটে একটি ডিফিউশন মডেল প্রশিক্ষণের অনুমতি দেয়। সহজভাবে প্রতিস্থাপন 'path/to/your/images' এর মধ্যে ডেটাসেট ডিরেক্টরি পাথ সহ স্ট্রিং Trainer() নীচের বস্তু, এবং পরিবর্তন করুন image_size উপযুক্ত মান পর্যন্ত। এর পরে, মডেলটি প্রশিক্ষণের জন্য কেবল কোডটি চালান এবং তারপরে আগের মতো নমুনা করুন। উল্লেখ্য যে PyTorch ব্যবহার করার জন্য CUDA সক্ষম করে কম্পাইল করা আবশ্যক Trainer শ্রেণী:

from denoising_diffusion_pytorch import Unet, GaussianDiffusion, Trainer
model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
).cuda()
diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
).cuda()
trainer = Trainer(
 diffusion,
 'path/to/your/images',
 train_batch_size = 32,
 train_lr = 2e-5,
 train_num_steps = 700000, # total training steps
 gradient_accumulate_every = 2, # gradient accumulation steps
 ema_decay = 0.995, # exponential moving average decay
 amp = True # turn on mixed precision
)
trainer.train()

নীচে আপনি মাল্টিভেরিয়েট গাউসিয়ান নয়েজ থেকে এমএনআইএসটি ডিজিট পর্যন্ত প্রগতিশীল ডিনোইসিং দেখতে পারেন যা রিভার্স ডিফিউশনের মতো:

ফাইনাল শব্দ

ডিফিউশন মডেলগুলি ডেটা জেনারেট করার সমস্যার জন্য ধারণাগতভাবে সহজ এবং মার্জিত পদ্ধতি। অ-প্রতিকূল প্রশিক্ষণের সাথে মিলিত তাদের অত্যাধুনিক ফলাফলগুলি তাদের উচ্চতায় নিয়ে গেছে, এবং তাদের নতুন অবস্থার কারণে আগামী বছরগুলিতে আরও উন্নতি আশা করা যেতে পারে। বিশেষ করে, ডিফিউশন মডেলগুলি অত্যাধুনিক মডেলগুলির কার্যক্ষমতার জন্য অপরিহার্য বলে মনে করা হয়েছে DALL-E2.

তথ্যসূত্র

[1] Nonequilibrium থার্মোডাইনামিক্স ব্যবহার করে গভীর অনিয়ন্ত্রিত শিক্ষা

[2] ডেটা বিতরণের গ্রেডিয়েন্ট অনুমান করে জেনারেটিভ মডেলিং

[3] ডিনোইসিং ডিফিউশন প্রোব্যাবিলিস্টিক মডেল

[4] স্কোর-ভিত্তিক জেনারেটিভ মডেল প্রশিক্ষণের জন্য উন্নত কৌশল

[5] উন্নত ডিনোইসিং ডিফিউশন প্রোব্যাবিলিস্টিক মডেল

[6] ডিফিউশন মডেলগুলি ইমেজ সংশ্লেষণে GAN কে পরাজিত করে

[7] গ্লাইড: টেক্সট-গাইডেড ডিফিউশন মডেলের সাথে ফটোরিয়ালিস্টিক ইমেজ জেনারেশন এবং সম্পাদনার দিকে

[8] CLIP ল্যাটেন্ট সহ হায়ারার্কিক্যাল টেক্সট-কন্ডিশনাল ইমেজ জেনারেশন

এই নিবন্ধটি উপভোগ করবেন? আরও এআই গবেষণা আপডেটের জন্য সাইন আপ করুন।

আমরা যখন এর মতো আরও সংক্ষিপ্ত নিবন্ধগুলি প্রকাশ করি তখন আমরা আপনাকে জানাব।

আমাদের সাথে খোস গল্প কর

হাই সেখানে! আপনাকে কিভাবে সাহায্য করতে পারি?