টেম্পোরাল ফিউশন ট্রান্সফরমার: গভীর শিক্ষার সাথে টাইম সিরিজ পূর্বাভাস — সম্পূর্ণ টিউটোরিয়াল

সঠিক এবং ব্যাখ্যাযোগ্য ভবিষ্যদ্বাণী তৈরি করুন

DALLE দিয়ে তৈরি করা হয়েছে [1]

[২] অনুসারে, টেম্পোরাল ফিউশন ট্রান্সফরমার সময় সিরিজের পূর্বাভাসের জন্য সমস্ত বিশিষ্ট ডিপ লার্নিং মডেলকে ছাড়িয়ে যায়।

একটি বৈশিষ্ট্যযুক্ত সহ গ্রেডিয়েন্ট বুস্টিং ট্রি ট্যাবুলার টাইম সিরিজ ডেটার মডেল।

তবে কি টেম্পোরাল ফিউশন ট্রান্সফরমার (TFT)[3] এবং কেন এটা এত আকর্ষণীয়?

এই নিবন্ধে, আমরা সংক্ষিপ্তভাবে এর নতুনত্ব ব্যাখ্যা টেম্পোরাল ফিউশন ট্রান্সফরমার এবং একটি এন্ড-টু-এন্ড প্রকল্প তৈরি করুন শক্তি চাহিদা পূর্বাভাস. বিশেষত, আমরা কভার করব:

  • টিএফটি ফরম্যাটের জন্য কীভাবে আমাদের ডেটা প্রস্তুত করবেন।
  • কীভাবে TFT মডেল তৈরি, প্রশিক্ষণ এবং মূল্যায়ন করবেন।
  • বৈধতা ডেটা এবং নমুনার বাইরের ভবিষ্যদ্বাণীগুলির ভবিষ্যদ্বাণীগুলি কীভাবে পাবেন৷
  • কীভাবে গণনা করা যায় বৈশিষ্ট্যের গুরুত্ব, ঋতুগত নিদর্শন, এবং চরম ঘটনা দৃঢ়তা বিল্ট-ইন মডেল ব্যবহার করে ব্যাখ্যাযোগ্য মনোযোগ পদ্ধতি.

চলুন শুরু করা যাক!

টেম্পোরাল ফিউশন ট্রান্সফরমার আর্কিটেকচারের গভীরভাবে বিশ্লেষণের জন্য, আমার আগেরটি দেখুন প্রবন্ধ.

Tনৈতিক Fusion Tরূপান্তরকারী (টিএফটি) হল একটি ট্রান্সফরমার-ভিত্তিক মডেল যা একাধিক সময়ের ক্রমগুলির জটিল অস্থায়ী গতিবিদ্যাকে ক্যাপচার করার জন্য স্ব-মনোযোগ লাভ করে।

TFT সমর্থন করে:

  • একাধিক সময় সিরিজ: আমরা হাজার হাজার ইউনিভেরিয়েট বা মাল্টিভেরিয়েট টাইম সিরিজে একটি TFT মডেল প্রশিক্ষণ দিতে পারি।
  • মাল্টি-হরাইজন পূর্বাভাস: মডেলটি এক বা একাধিক লক্ষ্য ভেরিয়েবলের বহু-পদক্ষেপের পূর্বাভাস দেয় — পূর্বাভাস ব্যবধান সহ।
  • ভিন্ন ভিন্ন বৈশিষ্ট্য: TFT সময়-ভেরিয়েন্ট এবং স্ট্যাটিক এক্সোজেনাস ভেরিয়েবল সহ অনেক ধরণের বৈশিষ্ট্য সমর্থন করে।
  • ব্যাখ্যাযোগ্য ভবিষ্যদ্বাণী: ভবিষ্যদ্বাণীগুলি পরিবর্তনশীল গুরুত্ব এবং ঋতুগততার পরিপ্রেক্ষিতে ব্যাখ্যা করা যেতে পারে।

সেই বৈশিষ্ট্যগুলির মধ্যে একটি অনন্য টেম্পোরাল ফিউশন ট্রান্সফরমার. আমরা পরবর্তী বিভাগে এটি কভার করব।

উল্লেখযোগ্য ডিএল টাইম-সিরিজ মডেলের মধ্যে (যেমন, ডিপএআর[৪]), টিএফটি আলাদা কারণ এটি বিভিন্ন ধরনের বৈশিষ্ট্য সমর্থন করে। এইগুলো:

  • সময়-পরিবর্তনশীল পরিচিত
  • সময়-পরিবর্তনশীল অজানা
  • সময় অপরিবর্তনীয় বাস্তব
  • সময় অপরিবর্তনীয় শ্রেণিবদ্ধ

উদাহরণস্বরূপ, কল্পনা করুন আমাদের একটি আছে বিক্রয় পূর্বাভাস মামলা:

ধরা যাক আমাদের 3টি পণ্যের বিক্রির পূর্বাভাস দিতে হবে। দ্য num sales লক্ষ্য পরিবর্তনশীল. দ্য CPI index অথবা number of visitors হয় সময়-পরিবর্তন অজানা বৈশিষ্ট্য কারণ তারা শুধুমাত্র ভবিষ্যদ্বাণী সময় পর্যন্ত পরিচিত হয়. যাহোক, holidaysএবং special days হয় সময়-পরিচিত পরিচিত ইভেন্ট নেই।

সার্জারির product id is a time-invariant (static) categorical বৈশিষ্ট্য অন্যান্য বৈশিষ্ট্য যা সংখ্যাসূচক এবং সময়-নির্ভর নয় যেমন yearly_revenue হিসাবে শ্রেণীবদ্ধ করা যেতে পারে সময় অপরিবর্তনীয় বাস্তব.

আমাদের প্রজেক্টে যাওয়ার আগে, আমরা প্রথমে একটি মিনি-টিউটোরিয়াল দেখাব কিভাবে আপনার ডেটা কনভার্ট করতে হয় বর্ধিত সময়-সিরিজ বিন্যাস.

বিঃদ্রঃ: এই নিবন্ধের সমস্ত ছবি এবং পরিসংখ্যান লেখক দ্বারা তৈরি করা হয়.

এই টিউটোরিয়ালের জন্য, আমরা ব্যবহার করি TemporalFusionTransformer থেকে মডেল PyTorch পূর্বাভাস লাইব্রেরি এবং পাইটর্চ লাইটনিং:

পিপ ইনস্টল টর্চ pytorch-বাজ pytorch_forecasting

পুরো প্রক্রিয়াটি 3 টি জিনিস জড়িত:

  1. আমাদের সময়-সিরিজ ডেটা দিয়ে একটি পান্ডাস ডেটাফ্রেম তৈরি করুন।
  2. আমাদের ডাটাফ্রেমকে একটি তে মোড়ানো টাইমসিরিজ ডেটাসেট উদাহরণ হিসেবে বলা যায়।
  3. আমাদের পাস টাইমসিরিজ ডেটাসেট উদাহরণস্বরূপ TemporalFusionTransformer.

সার্জারির টাইমসিরিজ ডেটাসেট খুব দরকারী কারণ এটি আমাদের নির্দিষ্ট করতে সাহায্য করে যে বৈশিষ্ট্যগুলি সময়-পরিবর্তনশীল বা স্থির। প্লাস, এটি একমাত্র বিন্যাস যে TemporalFusionTransformer গ্রহণ করে

কিভাবে দেখানোর জন্য একটি ন্যূনতম প্রশিক্ষণ ডেটাসেট তৈরি করা যাক টাইমসিরিজ ডেটাসেট কাজ করে:

আমাদের নিম্নলিখিত উপায়ে আমাদের ডেটা বিন্যাস করা উচিত: প্রতিটি রঙিন বাক্স একটি ভিন্ন সময়ের ধারাকে প্রতিনিধিত্ব করে, যা এর দ্বারা প্রতিনিধিত্ব করে group মান।

চিত্র 1: নমুনা_ডেটা পান্ডা ডাটা ফ্রেম

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

এর পরে, আমরা আমাদের ডেটাফ্রেমকে a তে মোড়ানো টাইমসিরিজ ডেটাসেট দৃষ্টান্ত:

সমস্ত যুক্তি স্ব-ব্যাখ্যামূলক: The max_encoder_length লুকব্যাক সময়কাল সংজ্ঞায়িত করে এবং max_prediction_length কতগুলি ডেটাপয়েন্ট ভবিষ্যদ্বাণী করা হবে তা নির্দিষ্ট করে। আমাদের ক্ষেত্রে, আমরা 3 ভবিষ্যদ্বাণী আউটপুট করতে অতীতে 2 বার পিছনে ফিরে তাকাই।

সার্জারির টাইমসিরিজ ডেটাসেট উদাহরণ এখন ডেটালোডার হিসাবে কাজ করে। আসুন একটি ব্যাচ প্রিন্ট করি এবং কীভাবে আমাদের ডেটা টিএফটি-তে প্রেরণ করা হবে তা পরীক্ষা করি:

এই ব্যাচে প্রশিক্ষণের মান রয়েছে [0,1] প্রথমবারের সিরিজ থেকে (group 0) এবং পরীক্ষার মান[2,3,4]. আপনি যদি এই কোডটি পুনরায় চালান, আপনি বিভিন্ন মান পাবেন কারণ ডেটা ডিফল্টরূপে পরিবর্তন করা হয়।

আমাদের প্রকল্প ব্যবহার করবে ইলেকট্রিসিটি লোডডায়াগ্রাম 20112014 [5] UCI থেকে ডেটাসেট। এই উদাহরণের জন্য নোটবুক থেকে ডাউনলোড করা যেতে পারে এখানে:

এই ডেটাসেটে 370 মিনিটের ফ্রিকোয়েন্সি সহ 15 জন ক্লায়েন্ট/ভোক্তার পাওয়ার ব্যবহার (KWs-এ) রয়েছে। ডেটা 4 বছর ধরে (2011-2014)।

কিছু ভোক্তা 2011 সালের পরে তৈরি করা হয়েছিল, তাই প্রাথমিকভাবে তাদের পাওয়ার ব্যবহার শূন্য।

আমরা সেই অনুযায়ী ডেটা প্রিপ্রসেসিং করি [3]:

  • আমাদের লক্ষ্য পরিবর্তনশীল সমষ্টি power_usage ঘন্টা দ্বারা
  • প্রতিটি টাইম-সিরিজের জন্য প্রথম তারিখ খুঁজুন যেখানে পাওয়ার অ-শূন্য।
  • নতুন বৈশিষ্ট্য তৈরি করুন: month, day, hour এবং day_of_week.
  • মধ্যে সব দিন নির্বাচন করুন 2014–01–01 এবং 2014–09–07.

চল শুরু করি:

ডাউনলোড ডেটা

wget হয় https://archive.ics.uci.edu/ml/machine-learning-databases/00321/LD2011_2014.txt.zip
আনজিপ
LD2011_2014.txt.zip

তথ্য প্রপ্রোকাসিং

প্রতিটি কলাম একটি ভোক্তা প্রতিনিধিত্ব করে। সবচেয়ে প্রাথমিক power_usage মান 0।

এর পরে, আমরা প্রতি ঘন্টায় ডেটা একত্রিত করি। মডেলের আকার এবং জটিলতার কারণে, আমরা আমাদের মডেলকে শুধুমাত্র 5 জন গ্রাহককে প্রশিক্ষণ দিই (যাদের জন্য শূন্য মান নেই)।

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

চূড়ান্ত প্রিপ্রসেসড ডেটাফ্রেম বলা হয় time_df. এর বিষয়বস্তু প্রিন্ট করা যাক:

সার্জারির time_df এখন এর জন্য সঠিক বিন্যাসে রয়েছে টাইমসিরিজ ডেটাসেট. আপনি এখন পর্যন্ত অনুমান করেছেন, যেহেতু গ্রানুলারিটি প্রতি ঘণ্টায়, hours_from_start পরিবর্তনশীল হবে সময় সূচক।

অনুসন্ধানের ডেটা বিশ্লেষণ

5 জন গ্রাহক/সময়-সিরিজের পছন্দ এলোমেলো নয়। দ্য power usage প্রতিটি সময়-সিরিজের বিভিন্ন বৈশিষ্ট্য রয়েছে, যেমন গড় মান:

time_df[['consumer_id','power_usage']].groupby('consumer_id').mean()

আসুন প্রতিটি সময়-সিরিজের প্রথম মাস প্লট করি:

চিত্র 2: 5টি টাইম-সিরিজ/ভোক্তাদের প্রথম মাস।

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

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

ডেটালোডার তৈরি করুন

এই ধাপে, আমরা আমাদের পাস time_df থেকে TimeSeriesDataSet বিন্যাস যা অত্যন্ত দরকারী কারণ:

  • এটি আমাদের নিজস্ব ডেটালোডার লেখা থেকে রক্ষা করে।
  • আমরা নির্দিষ্ট করতে পারি কিভাবে TFT ডেটাসেটের বৈশিষ্ট্যগুলি পরিচালনা করবে৷
  • আমরা সহজেই আমাদের ডেটাসেট স্বাভাবিক করতে পারি। আমাদের ক্ষেত্রে, স্বাভাবিককরণ বাধ্যতামূলক কারণ সমস্ত সময়ের ক্রমগুলি মাত্রায় আলাদা। এইভাবে, আমরা ব্যবহার গ্রুপ নর্মালাইজার প্রতিটি টাইম-সিরিজকে স্বতন্ত্রভাবে স্বাভাবিক করতে।

আমাদের মডেলটি পরবর্তী 7 ঘন্টার পাওয়ার ব্যবহারের পূর্বাভাস দিতে এক সপ্তাহের (24*24) একটি লুকব্যাক উইন্ডো ব্যবহার করে।

এছাড়াও, লক্ষ্য করুন যে hours_from_start সময় সূচক এবং একটি সময়-পরিবর্তন বৈশিষ্ট্য উভয়ই। দ্য power_usage আমাদের লক্ষ্য পরিবর্তনশীল. প্রদর্শনের জন্য, আমাদের বৈধতা সেট শেষ দিন:

বেসলাইন মডেল

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

একটি সরল বেসলাইন হিসাবে, আমরা আগের দিনের পাওয়ার ব্যবহারের বক্ররেখার পূর্বাভাস দিই:

টেম্পোরাল ফিউশন ট্রান্সফরমার মডেলের প্রশিক্ষণ

আমরা পরিচিত ব্যবহার করে আমাদের TFT মডেল প্রশিক্ষণ দিতে পারেন শিক্ষক PyTorch Lightning থেকে ইন্টারফেস।

নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:

  • আমরা ব্যবহার করি প্রারম্ভিক থামানো বৈধতা ক্ষতি নিরীক্ষণ কলব্যাক.
  • আমরা ব্যাবহার করি টেনসরবোর্ড আমাদের প্রশিক্ষণ এবং বৈধতা মেট্রিক্স লগ করতে.
  • আমাদের মডেল ব্যবহার করে কোয়ান্টাইল লস — একটি বিশেষ ধরনের ক্ষতি যা আমাদের ভবিষ্যদ্বাণীর ব্যবধানগুলি আউটপুট করতে সাহায্য করে। কোয়ান্টাইল লস ফাংশন সম্পর্কে আরও জানতে, এই নিবন্ধটি পরীক্ষা করুন.
  • আমরা 4 ব্যবহার করি মনোযোগ প্রধান, আসল কাগজের মত।

আমরা এখন আমাদের মডেল তৈরি এবং প্রশিক্ষণের জন্য প্রস্তুত:

এটাই! 6 যুগের পরে, আর্লিস্টপিং শুরু করে এবং প্রশিক্ষণ বন্ধ করে।

লোড এবং সেরা মডেল সংরক্ষণ করুন

আপনার মডেল সংরক্ষণ করতে ভুলবেন না. যদিও আমরা এটি আচার করতে পারি, সবচেয়ে নিরাপদ বিকল্প হল সেরা যুগকে সরাসরি সংরক্ষণ করা:

!zip -r model.zip lightning_logs/lightning_logs/version_1/*

মডেলটি আবার লোড করতে, আনজিপ করুন মডেল জিপ এবং নিম্নলিখিতগুলি চালান - শুধু সেরা মডেল পথটি মনে রাখবেন:

টেনসরবোর্ড চেক করুন

টেনসরবোর্ডের সাথে প্রশিক্ষণ এবং বৈধতা বক্ররেখাগুলি ঘনিষ্ঠভাবে দেখুন:

মডেল মূল্যায়ন

বৈধতা সেটে পূর্বাভাস পান এবং গড় গণনা করুন P50 (পরিমাণিক মধ্যক) ক্ষতি:

শেষ 2টি টাইম-সিরিজের ক্ষতি কিছুটা বেশি কারণ তাদের আপেক্ষিক মাত্রাও বেশি।

বৈধতা ডেটার উপর প্লট পূর্বাভাস

যদি আমরা পাস করি mode=raw উপরে পূর্বাভাস () পদ্ধতি, আমরা সমস্ত সাত কোয়ান্টাইলের ভবিষ্যদ্বাণী সহ আরও তথ্য পাই। আমাদের মনোযোগের মানগুলিতেও অ্যাক্সেস রয়েছে (পরে এটি সম্পর্কে আরও)।

ঘনিষ্ঠভাবে দেখুন raw_predictions পরিবর্তনশীল:

আমরা ব্যবহার করি প্লট_ভবিষ্যদ্বাণী() আমাদের প্লট তৈরি করতে। অবশ্যই, আপনি আপনার নিজস্ব কাস্টম প্লট তৈরি করতে পারেন — প্লট_ভবিষ্যদ্বাণী() মনোযোগ মান যোগ করার অতিরিক্ত সুবিধা আছে।

বিঃদ্রঃ: আমাদের মডেল পরবর্তী 24 ডেটাপয়েন্টের পূর্বাভাস দেয় একজনের ভিতরে প্রবেশ. এটি একটি রোলিং পূর্বাভাস দৃশ্য নয় যেখানে একটি মডেল একটি ভবিষ্যদ্বাণী করে একক প্রতিটি সময় মান এবং 'সেলাই' সব ভবিষ্যদ্বাণী একসঙ্গে.

আমরা প্রতিটি ভোক্তার জন্য একটি প্লট তৈরি করি (মোট 5)।

চিত্র 3: MT_002 এর জন্য বৈধতা ডেটার পূর্বাভাস
চিত্র 4: MT_004 এর জন্য বৈধতা ডেটার পূর্বাভাস
চিত্র 5: MT_005 এর জন্য বৈধতা ডেটার পূর্বাভাস
চিত্র 6: MT_006 এর জন্য বৈধতা ডেটার পূর্বাভাস
চিত্র 7: MT_008 এর জন্য বৈধতা ডেটার পূর্বাভাস

ফলাফল বেশ চিত্তাকর্ষক হয়.

আমাদের টেম্পোরাল ফিউশন ট্রান্সফরমার মডেল ঋতু এবং মাত্রা উভয় পরিপ্রেক্ষিতে, সমস্ত 5 টাইম-সিরিজের আচরণ ক্যাপচার করতে সক্ষম হয়েছিল!

এছাড়াও, লক্ষ্য করুন যে:

  • আমরা কোনো হাইপারপ্যারামিটার টিউনিং করিনি।
  • আমরা কোনো অভিনব বৈশিষ্ট্য ইঞ্জিনিয়ারিং কৌশল বাস্তবায়ন করিনি।

পরবর্তী বিভাগে, আমরা হাইপারপ্যারামিটার অপ্টিমাইজেশনের মাধ্যমে আমাদের মডেলকে কীভাবে উন্নত করতে পারি তা দেখাই।

একটি নির্দিষ্ট সময়ের সিরিজের জন্য প্লট ভবিষ্যদ্বাণী

পূর্বে, আমরা ব্যবহার করে বৈধতা ডেটাতে ভবিষ্যদ্বাণী প্লট করি idx আর্গুমেন্ট, যা আমাদের ডেটাসেটের সমস্ত সময়-সিরিজে পুনরাবৃত্তি করে। আমরা একটি নির্দিষ্ট সময়-সিরিজের উপর আরও নির্দিষ্ট এবং আউটপুট পূর্বাভাস দিতে পারি:

চিত্র 7: জন্য দিন এগিয়ে ভবিষ্যদ্বাণী MT_004 প্রশিক্ষণ সেটে

In চিত্র 7, আমরা দিন-আগামী প্লট MT_004 সময় সূচকের জন্য ভোক্তা = 26512।

মনে রাখবেন, আমাদের টাইম-ইনডেক্সিং কলাম hours_from_start 26304 থেকে শুরু হয় এবং আমরা 26388 থেকে ভবিষ্যদ্বাণী পেতে পারি (কারণ আমরা আগে সেট করেছি min_encoder_length=max_encoder_length // 2 যা সমান 26304 + 168//2=26388

বাইরের নমুনা পূর্বাভাস

আসুন যাচাইকরণ ডেটার চূড়ান্ত ডেটাপয়েন্টের বাইরে নমুনার বাইরের পূর্বাভাস তৈরি করি — যা 2014–09–07 23:00:00

আমাদের যা করতে হবে তা হল একটি নতুন ডেটাফ্রেম তৈরি করা যাতে রয়েছে:

  • সংখ্যা N=max_encoder_length অতীতের তারিখ, যা লুকব্যাক উইন্ডো হিসাবে কাজ করে — এনকোডার ডেটা TFT পরিভাষায়।
  • আকারের ভবিষ্যতের তারিখ max_prediction_length যার জন্য আমরা আমাদের ভবিষ্যদ্বাণীগুলি গণনা করতে চাই — ডিকোডার ডেটা।

আমরা আমাদের টাইম-সিরিজের 5টি বা শুধুমাত্র একটির জন্য ভবিষ্যদ্বাণী তৈরি করতে পারি। চিত্র 7 ভোক্তাদের জন্য নমুনার বাইরের পূর্বাভাস দেখায় MT_002:

চিত্র 7: MT_002 এর জন্য আগের দিনের পূর্বাভাস

সঠিক পূর্বাভাস একটি জিনিস, কিন্তু ব্যাখ্যাযোগ্যতাও আজকাল অনেক গুরুত্বপূর্ণ।

এবং এটি ডিপ লার্নিং মডেলগুলির জন্য আরও খারাপ, যেগুলিকে কালো বাক্স হিসাবে বিবেচনা করা হয়। পদ্ধতি যেমন LIME এবং SHAP ব্যাখ্যাযোগ্যতা প্রদান করতে পারে (কিছু পরিমাণে) কিন্তু সময়-সিরিজের জন্য ভাল কাজ করে না। এছাড়াও, তারা বহিরাগত পোস্ট-হক পদ্ধতি এবং একটি নির্দিষ্ট মডেলের সাথে আবদ্ধ নয়।

টেম্পোরাল ফিউশন ট্রান্সফরমার তিন ধরনের ব্যাখ্যাযোগ্যতা প্রদান করে:

  • ঋতু অনুসারে: টিএফটি তার উপন্যাসটি লাভ করে ব্যাখ্যাযোগ্য মাল্টি-হেড মনোযোগ বিগত সময়ের পদক্ষেপের গুরুত্ব গণনা করার প্রক্রিয়া।
  • বৈশিষ্ট্য অনুযায়ী: টিএফটি এর লিভারেজ পরিবর্তনশীল নির্বাচন নেটওয়ার্ক প্রতিটি বৈশিষ্ট্যের গুরুত্ব গণনা করার জন্য মডিউল।
  • চরম ঘটনা দৃঢ়তা: বিরল ঘটনার সময় টাইম সিরিজ কীভাবে আচরণ করে তা আমরা তদন্ত করতে পারি

আপনি যদি ভিতরের কাজ সম্পর্কে গভীরভাবে জানতে চান ব্যাখ্যাযোগ্য মাল্টি-হেড মনোযোগ এবং পরিবর্তনশীল নির্বাচন নেটওয়ার্ক, আমার আগের নিবন্ধ পরীক্ষা করুন.

ঋতু অনুসারে ব্যাখ্যাযোগ্যতা

TFT বিগত সময়ের ধাপ জুড়ে টেম্পোরাল প্যাটার্ন বোঝার জন্য মনোযোগের ওজন অন্বেষণ করে।

পূর্ববর্তী সমস্ত প্লটের ধূসর রেখাগুলি মনোযোগের স্কোরগুলিকে উপস্থাপন করে৷ সেই প্লটগুলো আবার দেখুন—আপনি কি কিছু লক্ষ্য করছেন? চিত্র 8 এর ফলাফল দেখায় চিত্র 7 এবং মনোযোগ স্কোরের জন্যও দায়ী:

চিত্র 8: MT_001-এর জন্য দিনের আগাম ভবিষ্যদ্বাণী ঋতুর সাথে প্রদর্শিত হয়েছে

মনোযোগের স্কোরগুলি প্রকাশ করে যে সেই সময়ের পদক্ষেপগুলি কতটা প্রভাবশালী যখন মডেলটি তার পূর্বাভাস দেয়। ছোট শিখরগুলি দৈনিক ঋতুতাকে প্রতিফলিত করে, যখন শেষের দিকে উচ্চ শিখরগুলি সম্ভবত সাপ্তাহিক ঋতুকে বোঝায়।

যদি আমরা সমস্ত টাইমস্টেপ এবং টাইম-সিরিজ জুড়ে মনোযোগ বক্ররেখা গড় করি (শুধুমাত্র 5টি নয় যেটি আমরা এই টিউটোরিয়ালে ব্যবহার করেছি), আমরা প্রতিসাম্যভাবে দেখতে পাব চিত্র 9 TFT কাগজ থেকে:

চিত্র 9: বিদ্যুৎ ডেটাসেটের জন্য অস্থায়ী নিদর্শন (উৎস)

প্রশ্ন: এটা কি ভাল? আমরা কি সহজভাবে ACF প্লট, টাইম সিগন্যাল পচন ইত্যাদি পদ্ধতির মাধ্যমে ঋতুর ধরন অনুমান করতে পারি না?

উত্তর: সত্য। যাইহোক, TFT এর মনোযোগ ওজন অধ্যয়ন করার অতিরিক্ত সুবিধা রয়েছে:

  1. আমরা নিশ্চিত করতে পারি যে আমাদের মডেলটি আমাদের সিকোয়েন্সের আপাত মৌসুমী গতিবিদ্যা ক্যাপচার করে।
  2. আমাদের মডেল লুকানো নিদর্শনগুলিও প্রকাশ করতে পারে কারণ বর্তমান ইনপুট উইন্ডোগুলির মনোযোগের ওজন অতীতের সমস্ত ইনপুট বিবেচনা করে৷
  3. মনোযোগ ওজনের প্লটটি একটি অটোকোরিলেশন প্লটের মতো নয়: অটোকোরিলেশন প্লটটি একটি নির্দিষ্ট ক্রমকে বোঝায়, যেখানে মনোযোগের ওজনগুলি এখানে সমস্ত কোভেরিয়েট এবং টাইম সিরিজ জুড়ে প্রতিটি টাইমস্টেপের প্রভাবের উপর ফোকাস করে।

বৈশিষ্ট্য অনুসারে ব্যাখ্যাযোগ্যতা

সার্জারির পরিবর্তনশীল নির্বাচন নেটওয়ার্ক TFT এর উপাদান সহজেই অনুমান করতে পারে বৈশিষ্ট্য গুরুত্ব:

চিত্র 10: বৈধতা তথ্যের উপর গুরুত্ব বৈশিষ্ট্য বৈশিষ্ট্য

In চিত্র 10, আমরা নিম্নলিখিত লক্ষ্য করি:

  • সার্জারির hour এবং day_of_week শক্তিশালী স্কোর আছে, অতীত পর্যবেক্ষণ এবং ভবিষ্যত কোভেরিয়েট উভয় হিসাবে। মূল কাগজের বেঞ্চমার্ক একই উপসংহার শেয়ার করে।
  • সার্জারির power_usage স্পষ্টতই সবচেয়ে প্রভাবশালী পর্যবেক্ষিত covariate.
  • সার্জারির consumer_id এখানে খুব গুরুত্বপূর্ণ নয় কারণ আমরা মাত্র 5 জন গ্রাহক ব্যবহার করি। TFT কাগজে, যেখানে লেখকরা সব 370 ভোক্তা ব্যবহার করেন, এই পরিবর্তনশীলটি আরও তাৎপর্যপূর্ণ।

বিঃদ্রঃ: যদি আপনার গ্রুপিং স্ট্যাটিক ভেরিয়েবল গুরুত্বপূর্ণ না হয়, তাহলে খুব সম্ভবত আপনার ডেটাসেট একটি একক ডিস্ট্রিবিউশন মডেল (যেমন ARIMA) দ্বারা সমানভাবে মডেল করা যেতে পারে।

চরম ইভেন্ট সনাক্তকরণ

টাইম সিরিজগুলি বিরল ঘটনার সময় তাদের বৈশিষ্ট্যগুলির আকস্মিক পরিবর্তনের জন্য সংবেদনশীল হওয়ার জন্য কুখ্যাত (এটিও বলা হয় শক).

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

এটি কি কিছু এলোমেলো শব্দ বা একটি লুকানো ক্রমাগত প্যাটার্ন যা আমাদের মডেলকে এড়িয়ে যায়?

TFT-এর মাধ্যমে, আমরা তাদের মানগুলির পরিসর জুড়ে প্রতিটি পৃথক বৈশিষ্ট্যের দৃঢ়তা বিশ্লেষণ করতে পারি। দুর্ভাগ্যবশত, বর্তমান ডেটাসেট অস্থিরতা বা বিরল ঘটনাগুলি প্রদর্শন করে না — সেগুলি আর্থিক, বিক্রয় ডেটা এবং আরও অনেক কিছুতে পাওয়া যাওয়ার সম্ভাবনা বেশি। তবুও, আমরা কীভাবে তাদের গণনা করব তা দেখাব:

কিছু বৈশিষ্ট্যের বৈধতা ডেটাসেটে তাদের সমস্ত মান থাকে না, তাই আমরা শুধুমাত্র দেখাই hour এবং consumer_id:

চিত্র 11: ঘণ্টায় ভবিষ্যদ্বাণী বনাম বাস্তব (স্বাভাবিক উপায়)
চিত্র 12: ভোক্তা_আইডিতে ভবিষ্যদ্বাণী বনাম বাস্তব (স্বাভাবিক উপায়)

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

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

সাধারণভাবে, আপনি এই TFT বৈশিষ্ট্যটি ব্যবহার করতে পারেন আপনার মডেলের দুর্বলতার জন্য তদন্ত করতে এবং আরও তদন্তে এগিয়ে যেতে।

আমরা নির্বিঘ্নে ব্যবহার করতে পারেন টেম্পোরাল ফিউশন ট্রান্সফরমার সঙ্গে অপটুনা হাইপারপ্যারামিটার টিউনিং করতে:

সমস্যাটি হল যেহেতু TFT একটি ট্রান্সফরমার-ভিত্তিক মডেল, আপনার উল্লেখযোগ্য হার্ডওয়্যার সংস্থানগুলির প্রয়োজন হবে!

টেম্পোরাল ফিউশন ট্রান্সফরমার টাইম-সিরিজ সম্প্রদায়ের জন্য নিঃসন্দেহে একটি মাইলফলক।

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

অবশেষে, আপনি যদি স্থাপত্য সম্পর্কে জানতে আগ্রহী হন টেম্পোরাল ফিউশন ট্রান্সফরমার বিস্তারিতভাবে, চেক করুন সহচর নিবন্ধ মূল কাগজে।

টেম্পোরাল ফিউশন ট্রান্সফরমার: টাইম সিরিজ ফোরকাস্টিং উইথ ডিপ লার্নিং — সম্পূর্ণ টিউটোরিয়াল উৎস থেকে পুনঃপ্রকাশিত https://towardsdatascience.com/temporal-fusion-transformer-time-series-forecasting-with-deep-learning-complete-tutorial-d32c1e51cd91?= https://towardsdatascience.com/feed এর মাধ্যমে rss—-7f60cf5620c9—4

<!–

->

সময় স্ট্যাম্প:

থেকে আরো ব্লকচেইন পরামর্শদাতা