RNNs (যেমন, LSTMs এবং GRUs) এর জন্য, স্তর ইনপুট হয় timesteps একটি তালিকা, এবং প্রতিটি timestep হয় একটি বৈশিষ্ট্য টেন্সর। এর অর্থ হ'ল আপনার কাছে এর মতো একটি ইনপুট টেনসর থাকতে পারে (পাইথোনিক স্বরলিপিতে):
# Input tensor to RNN
[
# Timestep 1
[ temperature_in_paris, value_of_nasdaq, unemployment_rate ],
# Timestep 2
[ temperature_in_paris, value_of_nasdaq, unemployment_rate ],
# Timestep 3
[ temperature_in_paris, value_of_nasdaq, unemployment_rate ],
...
]
সুতরাং একেবারে, প্রতিটি টাইমস্টেপে আপনার একাধিক বৈশিষ্ট্য থাকতে পারে। আমার মনে, আবহাওয়া একটি সময় সিরিজের বৈশিষ্ট্য: যেখানে আমি থাকি, এটি সময়ের ফাংশন বলে মনে হয়। সুতরাং প্রতিটি টাইমস্টেপে আপনার বৈশিষ্ট্যগুলির মধ্যে একটি হিসাবে আবহাওয়ার তথ্যকে এনকোড করা বেশ যুক্তিসঙ্গত হবে (উপযুক্ত এনকোডিং সহ মেঘলা = 0, রৌদ্র = 1 ইত্যাদি)।
আপনার যদি অ-সময়-সিরিজ ডেটা থাকে, তবে এটি LSTM এর মাধ্যমে পাস করার সত্যিকার অর্থে তা বোঝা যায় না। সম্ভবত এলএসটিএম যাইহোক কাজ করবে, তবে এটি যদি না হয় তবে এটি প্রশিক্ষণের সময় প্রতি উচ্চতর ক্ষতি / কম নির্ভুলতার জন্য ব্যয় করতে পারে।
বিকল্পভাবে, আপনি অতিরিক্ত স্তরগুলির মাধ্যমে LSTM এর বাইরে আপনার মডেলটিতে এই ধরণের "অতিরিক্ত" তথ্য প্রবর্তন করতে পারেন। আপনার এই জাতীয় ডেটা প্রবাহ থাকতে পারে:
TIME_SERIES_INPUT ------> LSTM -------\
*---> MERGE ---> [more processing]
AUXILIARY_INPUTS --> [do something] --/
সুতরাং আপনি আপনার সহায়ক ইনপুটগুলি LSTM আউটপুটগুলিতে মার্জ করবেন এবং সেখান থেকে আপনার নেটওয়ার্ক চালিয়ে যান। এখন আপনার মডেলটি কেবল মাল্টি-ইনপুট।
উদাহরণস্বরূপ, ধরা যাক যে আপনার নির্দিষ্ট অ্যাপ্লিকেশনটিতে আপনি কেবলমাত্র LSTM আউটপুট ক্রমের শেষ আউটপুট রাখবেন। ধরা যাক যে এটি দৈর্ঘ্যের 10 একটি ভেক্টর You আপনার মার্জ স্তরটি কেবলমাত্র দৈর্ঘ্যের একক ভেক্টর উত্পাদন করতে LSTM আউটপুট ভেক্টরের শেষের দিকে সহায়ক আবহাওয়ার তথ্য সংযোজন করতে পারে But তবে আপনাকে কেবল শেষ LSTM আউটপুট টাইমস্টেপ রাখার দরকার নেই: যদি LSTM 100 টি টাইপস আউটপুট করে থাকে তবে প্রতিটি বৈশিষ্ট্যগুলির একটি 10-ভেক্টর সহ, আপনি এখনও আপনার সহায়ক আবহাওয়ার তথ্যগুলি পরীক্ষা করতে পারেন, যার ফলে 100 টি টাইমপ্লেস, প্রতিটি 11 টি ডেটাপয়েন্টের ভেক্টর নিয়ে গঠিত।
এর কার্যক্ষম এপিআই- তে কেরাস ডকুমেন্টেশনের এটির একটি ভাল ওভারভিউ রয়েছে।
অন্যান্য ক্ষেত্রে, @ হোরাসেটটি যেমন উল্লেখ করেছে, আপনি অ-অস্থায়ী ডেটাতে এলএসটিএমকে শর্ত করতে চাইতে পারেন। উদাহরণস্বরূপ, প্রদত্ত অবস্থানটি আগামীকাল আবহাওয়ার পূর্বাভাস দিন। এই ক্ষেত্রে, ইতিবাচক / নেতিবাচক সমেত তিনটি পরামর্শ এখানে দেওয়া হয়েছে:
প্রথম টাইমস্টেপটিতে আপনার কন্ডিশনার ডেটা রয়েছে, কারণ এটি আপনার আরএনএন এর অভ্যন্তরীণ / লুকানো অবস্থাকে কার্যকরভাবে "সেট" করবে। সত্যি, আমি চাই না এটি করেন, কারণের একটি গুচ্ছ জন্য: আপনার কন্ডিশনার ডেটা আপনার বৈশিষ্ট্য বাকি হিসাবে একই আকৃতি করা প্রয়োজন, (ট্র্যাক করতে কিভাবে আপনি ডেটা ফিড পাওয়া কঠিন হয়ে পড়ে stateful RNNs তৈরি করে তোলে সত্যিই সাবধান হওয়ার পরিপ্রেক্ষিতে নেটওয়ার্কের মধ্যে), নেটওয়ার্ক পর্যাপ্ত সময় (যেমন, দীর্ঘ প্রশিক্ষণের অনুক্রম বা দীর্ঘ ভবিষ্যদ্বাণী ক্রম) ইত্যাদি সহ কন্ডিশনার ডেটা "ভুলে" যেতে পারে etc.
অস্থায়ী তথ্যের অংশ হিসাবে ডেটা অন্তর্ভুক্ত করুন। সুতরাং নির্দিষ্ট টাইমস্টেপের প্রতিটি বৈশিষ্ট্য ভেক্টরে "বেশিরভাগ" সময়-সিরিজের ডেটা অন্তর্ভুক্ত থাকে তবে তারপরে প্রতিটি বৈশিষ্ট্য ভেক্টরের শেষে কন্ডিশনার ডেটা যুক্ত করা হয়। নেটওয়ার্ক কি এটি চিনতে শিখবে? সম্ভবত, তবে তারপরেও, আপনি অ-অনুক্রমিক তথ্য সহ সিক্যুয়েন্স ডেটাটিকে দূষিত করে একটি শক্ত শেখার কাজ তৈরি করছেন। সুতরাং আমি এই নিরুৎসাহিত করা হবে ।
সম্ভবত সেরা পন্থাটি হ'ল শূন্য সময়ে আরএনএন এর লুকানো অবস্থাকে সরাসরি প্রভাবিত করে। এটি কার্পেটি এবং ফি-ফি এবং ভিনিয়ালস এট আল দ্বারা গ্রহণ করা পদ্ধতি । এটা এভাবে কাজ করে:
- প্রতিটি প্রশিক্ষণ নমুনা জন্য, আপনার অবস্থা ভেরিয়েবল নেওয়া ।x⃗
- আপনার শর্ত ভেরিয়েবলগুলিকে আরএনএন এর অভ্যন্তরীণ অবস্থা হিসাবে সঠিক আকারে আনতে একটি অ্যাফাইন ট্রান্সফর্মেশনের সাথে পুনরায় আকার দিন: (এগুলি এবং প্রশিক্ষণযোগ্য ওজন)। আপনি কেরাসে একটি ঘন স্তর দিয়ে এটি পেতে পারেন।v⃗ =Wx⃗ +b⃗ Wb⃗
- প্রথম বারের বারের জন্য, আরএনএন এর মান গণনা করার সময় লুকানো অবস্থায় add যুক্ত করুন ।v⃗
এই পদ্ধতির সর্বাধিক "তাত্ত্বিকভাবে" সঠিক, যেহেতু এটি আপনার অ-অস্থায়ী ইনপুটগুলিতে আরএনএনকে যথাযথভাবে শর্ত দেয়, প্রাকৃতিকভাবে আকারের সমস্যাটি সমাধান করে এবং অতিরিক্ত, অ-অস্থায়ী তথ্য দিয়ে আপনার ইনপুটগুলির টাইমস্টেপগুলিকে দূষিত করা এড়িয়ে যায়। খারাপ দিকটি হ'ল এই পদ্ধতির প্রায়শই আপনার আর্কিটেকচারের গ্রাফ-লেভেল নিয়ন্ত্রণের প্রয়োজন হয়, সুতরাং আপনি যদি কেরাসের মতো উচ্চ স্তরের বিমূর্ত ব্যবহার করছেন তবে আপনি নিজের স্তরটির ধরণ না যুক্তি প্রয়োগ করা আপনার পক্ষে কঠিন হবে।