আমরা ক্লাসিক মাল্টি-লেয়ার পারসেপ্টরনস (এমএলপি) গ্রহণ করেছি এবং এর চারপাশে অনেক আর্কিটেকচার তৈরি করেছি। এমএলপিগুলি হল প্রতিটি একক এলএলএম বা ফাউন্ডেশন মডেলের অংশ এবং পার্সেল যা আমরা আজ দেখি, যেমন চ্যাটজিপিটি, এলএলএএমএ, ডাল এবং ক্লিপ৷ অথবা এমনকি সহজ স্বীকৃতি মডেল যেমন YOLO-v*।
যদি আমি এখন আপনাকে বলি যে আমাদের খুব এমএলপিগুলির জন্য একটি প্রতিযোগী আছে? শহরে একটি নতুন কাগজ রয়েছে যার নাম "কলমোগোরভ-আর্নল্ড নেটওয়ার্ক," বা সংক্ষেপে KAN, যা MLP গুলিকে চ্যালেঞ্জ করে৷ যদি তারা সত্যিকারের স্কেল প্রস্তাব করে, তাহলে আমাদের পরবর্তী প্রজন্মের নিউরাল নেটওয়ার্ক থাকতে পারে, যা আমাদের আর্টিফিশিয়াল জেনারেল ইন্টেলিজেন্স (AGI) এর আরও এক ধাপ কাছাকাছি নিয়ে যাবে।
যদিও MLP-তে সক্রিয়করণ ফাংশন রয়েছে যেমন ReLU, sigmoid, Tanh, GeLU, ইত্যাদি, KAN প্রস্তাব করে যে আমরা এই সক্রিয়করণ ফাংশনগুলি শিখি। সুতরাং, KAN কিভাবে এটা করে? এর পেছনের গণিত কী? এটা কিভাবে বাস্তবায়িত হয়? এবং কিভাবে আমরা এমনকি KAN প্রশিক্ষণ না?
আমি এখানে KAN কাগজটি সংক্ষিপ্ত করার জন্য যথাসাধ্য চেষ্টা করেছি। আপনি হয় এই সারাংশটি পড়তে বা কাগজটি পড়তে পারেন, যা 48 পৃষ্ঠা দীর্ঘ!
ভিজ্যুয়াল ব্যাখ্যা
আপনি যদি আমার মতো হন এবং আরও ভালভাবে বোঝার জন্য জিনিসগুলি কল্পনা করতে চান, এখানে এই নিবন্ধটির একটি ভিডিও ফর্ম রয়েছে:
MLPs - সমস্যা
চলুন শুরু করা যাক এমএলপি দিয়ে, যার সাথে আমরা বেশ পরিচিত। MLP গুলো নোড এবং প্রান্ত দিয়ে গঠিত। প্রতিটি নোডে, আমাদের কাছে ইনপুটগুলিকে সংক্ষিপ্ত করা হয়েছে এবং সেই নির্দিষ্ট নোডের জন্য আউটপুট তৈরি করার জন্য ReLU, GeLU এবং SeLU এর মতো সক্রিয়করণগুলি প্রয়োগ করা হয়েছে।
এই সক্রিয়করণ ফাংশন প্রশিক্ষণ প্রক্রিয়া চলাকালীন পরিবর্তন হয় না. অন্য কথায়, তাদের কোন পরামিতি নেই। তারা প্রদত্ত প্রশিক্ষণ ডেটাসেটের সাথে নিজেকে সুর করার জন্য যথেষ্ট বুদ্ধিমান নয়। সুতরাং, প্রশিক্ষণের সময় যা প্রশিক্ষিত বা আপডেট করা হয় তা হল এই প্রতিটি নোডের ওজন।
এখন, যদি আমরা এই অনুমান নিয়ে প্রশ্ন করি যে অ্যাক্টিভেশন ফাংশনটি ঠিক করা দরকার এবং সেগুলিকে প্রশিক্ষিত করতে হবে? সুতরাং, KAN নেটওয়ার্ক যে চ্যালেঞ্জটি মোকাবেলা করার চেষ্টা করেছিল। প্রশিক্ষণ প্রক্রিয়া চলাকালীন KAN নেটওয়ার্কের সক্রিয়করণ ফাংশন আপডেট করা হয়। আমরা আরও গভীরে যাওয়ার আগে, চলুন বহুপদ এবং বক্ররেখা ফিটিং দিয়ে শুরু করি।
বহুপদ এবং কার্ভ ফিটিং
সুতরাং, KAN-এর মৌলিক ধারণা হল যে কোনো বহু-ভেরিয়েট যৌগিক ফাংশনকে কয়েকটি ফাংশনের সমষ্টিতে বিভক্ত করা যেতে পারে যা একক ভেরিয়েবল।
উদাহরণস্বরূপ, ধরা যাক আমাদের কাছে ডিগ্রী 3 এর একটি সমীকরণ রয়েছে যেখানে y=x³ উপরের হলুদ বক্ররেখা দ্বারা প্লট করা হয়েছে। এবং ডিগ্রী 2 এর আরেকটি সমীকরণ, y=x², যেমনটি উপরের অ্যানিমেশনে নীল বক্ররেখা দ্বারা দেখানো হয়েছে। আমরা এই ভিজ্যুয়ালাইজেশনে দেখতে পাচ্ছি যে x² ব্যবহার করলে কখনো x³ দ্বারা অর্জিত বক্রতা অর্জন করা যায় না।
ধরা যাক নীচের লাল এবং নীল বিন্দু দ্বারা উপস্থাপিত ডেটা দেওয়া হয়েছে, এবং আমরা দুটি শ্রেণীর মধ্যে বাইনারি শ্রেণিবিন্যাসের সীমানা খুঁজে পেতে চাই।
একটি দ্বিতীয়-ক্রম বহুপদী, x² ব্যবহার করে, আমরা উভয়ের মধ্যে সীমানা খুঁজে পাব না কারণ x² বক্ররেখাটি "U" আকৃতির, কিন্তু ডেটা "S" আকৃতির। যদিও x³ ব্যবহার করা এই ডেটার জন্য উপযুক্ত, এটি একটি অতিরিক্ত গণনামূলক খরচ সহ আসে। একটি ভিন্ন সমাধান হতে পারে x² ব্যবহার করা যখন ইনপুট x নেতিবাচক তবে ব্যবহার করুন - x² যখন x পজিটিভ হয় (উপরের চিত্রে হাত দিয়ে নীল বক্ররেখা আঁকা)।
আমরা যা করেছি তা হল দুটি নিম্ন-ডিগ্রী বহুপদী যোগ করার জন্য উচ্চতর স্বাধীনতার সাথে একটি বক্ররেখা অর্জন করতে। এটি KAN নেটওয়ার্কগুলির পিছনে সঠিক ধারণা।
একটি খেলনা সমস্যা
এখন একটু জটিল খেলনা সমস্যা নেওয়া যাক যেখানে আমরা জানি যে ডেটা একটি সাধারণ সমীকরণ দ্বারা তৈরি হয়, y=exp(sin(x1² + x2²) + sin(x3² + x4²))। তাই আমাদের 4টি ইনপুট ভেরিয়েবল আছে, এবং আমাদের তিনটি অপারেশন আছে, যথা, এক্সপোনেন্ট, সাইন এবং বর্গ। সুতরাং, আমরা তিনটি স্তর সহ চারটি ইনপুট নোড বেছে নিতে পারি, প্রতিটি তিনটি ভিন্ন ক্রিয়াকলাপের জন্য উত্সর্গীকৃত, যেমনটি নীচে দেখানো হয়েছে।
চারটি ইনপুট সহ একটি খেলনা সমস্যার জন্য KAN নেটওয়ার্ক এবং গণনার জন্য তিনটি বেসিস ফাংশন — এক্সপোনেন্ট, সাইনুসয়েড এবং বর্গক্ষেত্র
প্রশিক্ষণের পরে, নোডগুলি ডেটার সাথে মানানসই করার জন্য স্কোয়ার, সাইনুসয়েড এবং এক্সপোনেন্ট ফাংশনে একত্রিত হবে।
যেহেতু এটি একটি খেলনা সমস্যা, আমরা জানি যে সমীকরণটি থেকে ডেটা এসেছে। কিন্তু কার্যত, আমরা বাস্তব-বিশ্বের ডেটা বিতরণ জানি না। এই সমস্যাটি সমাধান করার একটি উপায় হল B-splines ব্যবহার করে।
স্প্লাইন্স এবং বি-স্প্লাইন
B-splines-এর মৌলিক ধারণা হল যে কোনো প্রদত্ত ফাংশন বা বক্ররেখা সহজ ফাংশন বা বক্ররেখার সংমিশ্রণ হিসাবে উপস্থাপন করা যেতে পারে। এই সহজ ফাংশনগুলিকে বেসিস ফাংশন বলা হয়। উদাহরণ স্বরূপ, নিচের চিত্রে লাল বক্ররেখা ধরা যাক। সরলতার জন্য, এর মাত্র দুটি ভিত্তি ফাংশন দিয়ে এটি উপস্থাপন করার চেষ্টা করা যাক।
আমরা এটিকে 3 বিন্দুতে বিভক্ত করতে পারি কারণ আমরা এটিকে দুটি ভিত্তি ফাংশনের যোগফল দিয়ে উপস্থাপন করতে যাচ্ছি। এই বিন্দুগুলিকে নট বলা হয়। বেসিস ফাংশনের যেকোনো সংখ্যা n হতে পারে। প্যারামিটার যা নিয়ন্ত্রণ করে কিভাবে এই ভিত্তি ফাংশন সংমিশ্রণ হয় c. আমরা যখন দুটি বক্ররেখাকে "যোগদান করি" তখন গিঁটে বিচ্ছিন্নতা থাকতে পারে। সমাধান হল গিঁটগুলিতে বক্রতার বক্রতাকে সীমাবদ্ধ করা যাতে আমরা একটি মসৃণ বক্ররেখা পেতে পারি। উদাহরণস্বরূপ, আমরা দুটি বক্ররেখার ঢালকে গিঁটে একই হতে সীমাবদ্ধ করতে পারি, যেমনটি নীচের চিত্রে সবুজ তীর দ্বারা দেখানো হয়েছে।
যেহেতু আমরা নিউরাল নেটওয়ার্কে এই ধরনের সীমাবদ্ধতা আরোপ করতে পারি না, তারা কাগজে অবশিষ্ট সক্রিয়করণ ফাংশন চালু করেছে। এটি একটি নিয়মিতকরণের মতো কাজ করে। কার্যত, এটি হল SeLU অ্যাক্টিভেশন যা স্ট্যান্ডার্ড স্প্লাইন ফাংশনে যুক্ত করা হয়েছে যেমনটি নীচের কাগজে দেখা গেছে।
স্প্লাইন গ্রিড এবং KAN-এর ফাইন-গ্রেইনিং
KANs প্রশিক্ষণের একটি নতুন উপায় প্রবর্তন করে যাকে বলা হয় ফাইন-গ্রেইনিং । আমরা সকলেই যেটির সাথে পরিচিত তা হল ফাইন-টিউনিং, যেখানে আমরা মডেলটিতে আরও পরামিতি যোগ করি। যাইহোক, সূক্ষ্ম-শস্যের ক্ষেত্রে, আমরা স্প্লাইন গ্রিডগুলির ঘনত্ব উন্নত করতে পারি। এটাকেই তারা গ্রিড এক্সটেনশন বলে।
আমরা কাগজ থেকে উপরের চিত্রটি থেকে দেখতে পাচ্ছি, সূক্ষ্ম দানাগুলি কেবল বি-স্প্লাইনের গ্রিডগুলিকে ঘন করে তোলে যাতে তারা আরও প্রতিনিধিত্বশীল এবং তাই আরও শক্তিশালী হয়ে ওঠে।
গণনীয় জটিলতা
স্প্লাইনগুলির একটি অসুবিধা হল যে তারা পুনরাবৃত্তিমূলক এবং তাই গণনাগতভাবে ব্যয়বহুল। তাদের গণনাগত জটিলতা হল O(N²LG), যা MLP-এর জন্য O(N²L) এর স্বাভাবিক জটিলতার চেয়ে বেশি। অতিরিক্ত জটিলতা গ্রিড অন্তর G থেকে আসে।
লেখক এই সহজাত সমস্যাটিকে এটি দেখিয়ে রক্ষা করেছেন:
- একই সমস্যার জন্য MLP-এর তুলনায় KAN-এর প্রয়োজনীয় প্যারামিটারের সংখ্যা কম
- প্রশিক্ষণের সময় KAN দ্রুত এবং দক্ষতার সাথে একত্রিত হয়, যার ফলে প্রশিক্ষণের সময় কম লাগে।
আমরা ফলাফল বিভাগে এই প্রতিরক্ষার প্লট দেখতে পাব। আপাতত, KAN-এর আরেকটি বিশেষত্বের দিকে আরও নজর দেওয়া যাক।
ব্যাখ্যাযোগ্যতা এবং KAN স্তরগুলি নির্বাচন করা
যেহেতু KAN ফাংশন শেখে, এটি শুধুমাত্র MLP-এর মতো একটি ব্ল্যাক বক্স নয় যেখানে আমরা একটি প্রদত্ত ডেটা বা সমস্যার জন্য MLP-এর গভীরতা এবং প্রস্থ বেছে নিয়ে সেগুলিকে ডিজাইন করতে পারি। সুতরাং, KAN-কে আরও ব্যাখ্যাযোগ্য করতে এবং একটি ভাল KAN নেটওয়ার্ক ডিজাইন করতে, আমাদের নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে হবে:
- স্পারসিফিকেশন। আমরা একটি প্রত্যাশিত KAN নেটওয়ার্ক দিয়ে শুরু করি এবং ইনপুটগুলির পরিবর্তে অ্যাক্টিভেশন ফাংশনের L1 আদর্শ প্রবর্তন করে নিয়মিতকরণ প্রবর্তন করি যেমনটি আমরা সাধারণত মেশিন লার্নিং এর সাথে করি।
- ছাঁটাই। একবার স্পার্স নেটওয়ার্ক প্রশিক্ষিত হয়ে গেলে, তারপরে আমরা অপ্রয়োজনীয় নোডগুলি সরিয়ে ফেলতে পারি যা একটি নির্দিষ্ট মানদণ্ড বা স্কোরের মধ্যে একটি নির্দিষ্ট থ্রেশহোল্ডের নীচে থাকে।
- প্রতীকীকরণ। যখন আমরা অস্পষ্টভাবে জানি যে কোন ফাংশনটি একটি প্রদত্ত ডেটা গঠন করে, আমরা সেই ফাংশনটি নেওয়ার জন্য কয়েকটি নোড সেট করতে পারি। একে সিম্বলিফিকেশন বলে। উদাহরণস্বরূপ, যদি আমরা শব্দ তরঙ্গ নিয়ে কাজ করি, তবে বেশিরভাগ ডেটা সাইনোসয়েডযুক্ত, তাই আমরা কিছু নোডকে সাইনোসয়েড হিসাবে সেট করে আমাদের জীবনকে সহজ করি। ফ্রেমওয়ার্ক আমাদেরকে
fix_symbolic(l,i,j,f)
নামক একটি ইন্টারফেস ফাংশন প্রদান করে তা করতে সক্ষম করে যেখানে l, i, j হল নোড স্তর এবং অবস্থান এবং f হল এমন ফাংশন যাsine, cosine, log, etc
একটি প্রশিক্ষিত KAN নেটওয়ার্কে পৌঁছানোর জন্য কাগজে প্রস্তাবিত বিভিন্ন পদক্ষেপের সারাংশ
উপরের চিত্রে বিভিন্ন ধাপ সংক্ষিপ্ত করা হয়েছে। আমরা একটি বৃহৎ নেটওয়ার্ক দিয়ে শুরু করি এবং স্প্যার্সিফাই (ধাপ 1), ফলের নেটওয়ার্কটি ছাঁটাই করি (ধাপ 2), কিছু প্রতীকীকরণ সেট করি (ধাপ 3), নেটওয়ার্ককে প্রশিক্ষিত করি (ধাপ 4), এবং অবশেষে প্রশিক্ষিত মডেলে পৌঁছাই।
পরীক্ষা এবং ফলাফল
উপরে উল্লিখিত পদক্ষেপগুলি ব্যবহার করে, তারা KAN নেটওয়ার্কগুলিকে তাদের কার্যকারিতা চিত্রিত করার জন্য পাঁচটি ভিন্ন খেলনা সমস্যার জন্য প্রশিক্ষণ দিয়েছে এবং তাদের MLP-এর সাথে তুলনা করেছে। তুলনা থেকে মূল টেকওয়ে হল:
- KAN MLP-এর তুলনায় অনেক দ্রুত ট্রেনিং করে, যার ফলে এটির অন্তর্নিহিত কম্পিউটেশনাল জটিলতার সাথে আপস করে।
- KAN কম প্যারামিটারের সাথে করতে পারে যা MLPs অনেক বেশি করতে পারে
- এমএলপির তুলনায় দ্রুত কমতে থাকা ক্ষতির সাথে KANগুলি খুব মসৃণভাবে একত্রিত হয়
প্রথম পয়েন্টটি 5টি খেলনা সমস্যার জন্য উপরের প্লটে পাঁচটি প্লটে ঘন নীল রেখা দ্বারা চিত্রিত করা হয়েছে। শেষ দুটি পয়েন্ট নিচের প্লট দ্বারা চিত্রিত করা হয়েছে ক্ষতির বক্ররেখা দেখায় এবং যে কোনো সমস্যা সমাধানের জন্য পরামিতি গণনা করা হয়।
সর্বনাশা ভুলে যাওয়া
পরবর্তী টেকঅওয়ে হ'ল বিপর্যয়কর ভুলে যাওয়ার সমস্যায় KANগুলি MLPs থেকে অনেক ভাল। যদি আমরা ক্রমাগত শেখার জন্য সিকোয়েন্স ডেটা ফিড করি, তাহলে KANs অতীতের ডেটা MLP-এর তুলনায় অনেক ভালো মনে রাখে। এটি নীচের চিত্রে দেখানো হয়েছে, যেখানে KAN ডেটাতে 5টি পর্যায় পুনরুত্পাদন করে, কিন্তু MLP সংগ্রাম করে।
অন্যান্য ফলাফল
আংশিক ডিফারেনশিয়াল এবং পদার্থবিদ্যার সমীকরণ জড়িত সমস্যাগুলির জন্য KAN ব্যবহার করা যেতে পারে তা দেখানোর জন্য তারা ব্যাপক পরীক্ষা-নিরীক্ষাও করেছে। সেই বিবরণগুলিতে না গিয়ে, আসুন দেখে নেওয়া যাক কখন KANs বনাম MLP বেছে নেবেন।
KAN এবং MLP এর মধ্যে নির্বাচন করা
কখন এমএলপি-তে KAN বেছে নিতে হবে সে বিষয়ে আমাদের গাইড করার জন্য তারা নীচের চিত্রটি দিয়েছে। সুতরাং, KAN নির্বাচন করুন যদি,
- আপনি তরঙ্গরূপ বা গ্রাফের মতো কাঠামোগত ডেটা নিয়ে কাজ করছেন
- ডেটা থেকে ক্রমাগত শিখতে চান
- প্রশিক্ষণ সময় সম্পর্কে খুব যত্ন না!
- উচ্চ মাত্রিক তথ্য
অন্যথায়, এমএলপিরা এখনও জিতবে।
চিৎকার কর
আপনি যদি এই নিবন্ধটি পছন্দ করেন তবে কেন আমাকে অনুসরণ করবেন না
এছাড়াও আমার সাবস্ক্রাইব করুন
আলোচনা এবং উপসংহার
আমার মতে, KANs এখানে MLP গুলিকে প্রতিস্থাপন করার জন্য নয় যে কিভাবে ট্রান্সফরমারগুলি NLP ল্যান্ডস্কেপ পরিষ্কারভাবে সুইপ করে। বরং, KANs গণিত এবং পদার্থবিদ্যার বিশেষ সমস্যাগুলির জন্য কার্যকর প্রমাণিত হবে। তারপরও, আমি মনে করি আমাদের আরও অনেক উন্নতি দরকার। কিন্তু ফাউন্ডেশন মডেলের সাহায্যে সমাধান করা বিগ-ডেটা সমস্যাগুলির জন্য, KAN-কে অন্তত তাদের বর্তমান অবস্থার সাথে অনেক দূর যেতে হবে।
তদ্ব্যতীত, প্রশিক্ষণ পদ্ধতি এবং ডিজাইনিং KAN আর্কিটেকচার আধুনিক দিনের নিউরাল নেটওয়ার্ক ডিজাইন এবং প্রশিক্ষণের আদর্শ উপায় থেকে বিচ্যুত হয়। তবুও, গিটহাব পৃষ্ঠায় ইতিমধ্যেই 13k তারা এবং 1.2k ফর্ক রয়েছে, যা ইঙ্গিত করে যে এটি কিছুর জন্য প্রস্তুত। আসুন অপেক্ষা করি এবং এই স্থানটি দেখি।