پیشرفتهml

LSTM — شبکه عصبی سری زمانی

15 دقیقه
LSTM — شبکه عصبی سری زمانی

کاربرد و محدودیت‌ها.

LSTM — شبکه عصبی سری زمانی: کاربرد و محدودیت‌ها

---

هدف‌های یادگیری

پس از مطالعه این درس، قادر خواهید بود:

- ساختار ریاضی گیت‌های LSTM را فرمول‌بندی و تحلیل کنید
- تفاوت بنیادی LSTM با RNN ساده را در بستر داده‌های مالی توضیح دهید
- یک پایپ‌لاین استاندارد LSTM برای پیش‌بینی قیمت و نوسان طراحی کنید
- محدودیت‌های کوانتیتاتیو این معماری را در محیط ترید واقعی شناسایی و مدیریت کنید

---

۱. ضعف بنیادی RNN و انگیزه LSTM

شبکه‌های بازگشتی ساده (Vanilla RNN) برای مدل‌سازی وابستگی‌های بلندمدت در سری‌های زمانی مالی طراحی نشده‌اند. مشکل اصلی، ناپایداری گرادیان است.

در فرآیند پس‌انتشار خطا (BPTT)، گرادیان لایه زمانی $t$ نسبت به لایه $t - k$ به‌صورت زیر محاسبه می‌شود:

$$\frac{\partial L}{\partial h_{t-k}} = \frac{\partial L}{\partial h_t} \prod_{i=t-k+1}^{t} \frac{\partial h_i}{\partial h_{i-1}}$$

اگر ماتریس وزن $W_h$ مقادیر کمتر از ۱ داشته باشد، این ضرب تکراری باعث می‌شود گرادیان با نرخ نمایی به صفر میل کند (Vanishing Gradient). در بازارهای مالی که الگوهای ماکرو گاهی در بازه‌های ۲۰۰ تا ۵۰۰ کندل خودشان را تکرار می‌کنند، این ضعف کشنده است.

Hochreiter و Schmidhuber در سال ۱۹۹۷ با معرفی Long Short-Term Memory این مشکل را از طریق یک حافظه صریح (cell state) و سه گیت کنترلی حل کردند.

---

۲. معماری LSTM: فرمول‌بندی دقیق گیت‌ها

هر سلول LSTM در گام زمانی $t$ سه خروجی تولید می‌کند: حافظه کوتاه‌مدت $h_t$، حافظه بلندمدت $C_t$، و بردار خروجی. ورودی‌ها عبارتند از: بردار ویژگی $x_t$ (مثلاً قیمت، حجم، RSI) و وضعیت قبلی $[h_{t-1}, C_{t-1}]$.

۲.۱ گیت فراموشی (Forget Gate)

$$f_t = \sigma(W_f \cdot [h_{t-1},\, x_t] + b_f)$$

خروجی این گیت بین ۰ و ۱ است و مشخص می‌کند چه کسری از حافظه بلندمدت قبلی باید حذف شود. در بازار کریپتو، اگر مدل یاد بگیرد که بعد از یک شکست ساختاری (market structure break) بایستی روند قبلی را فراموش کند، این گیت فعال می‌شود.

۲.۲ گیت ورودی (Input Gate)

$$i_t = \sigma(W_i \cdot [h_{t-1},\, x_t] + b_i)$$
$$\tilde{C}_t = \tanh(W_C \cdot [h_{t-1},\, x_t] + b_C)$$

$i_t$ تعیین می‌کند کدام اطلاعات جدید ارزش ذخیره دارد، و $\tilde{C}_t$ محتوای اطلاعات جدید را کد می‌کند.

۲.۳ به‌روزرسانی حافظه بلندمدت

$$C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t$$

این معادله قلب LSTM است. عملگر $\odot$ ضرب عنصر‌به‌عنصر (Hadamard product) است. جریان گرادیان از طریق این معادله جمعی بدون ضرب تکراری ماتریسی انجام می‌شود، که مشکل Vanishing Gradient را به‌طور ساختاری حل می‌کند.

۲.۴ گیت خروجی (Output Gate)

$$o_t = \sigma(W_o \cdot [h_{t-1},\, x_t] + b_o)$$
$$h_t = o_t \odot \tanh(C_t)$$

خروجی نهایی $h_t$ ترکیبی است از آنچه مدل تصمیم گرفته از حافظه بلندمدت بازخوانی کند.

---

۳. کاربردهای عملی در بازار کریپتو

۳.۱ پیش‌بینی قیمت (Price Forecasting)

رایج‌ترین کاربرد، پیش‌بینی قیمت بسته‌شدن $n$ کندل آینده است. ورودی معمول شامل:

- قیمت OHLCV نرمال‌سازی‌شده با Min-Max scaling
- اندیکاتورهای فنی: RSI، MACD، ATR
- داده‌های زنجیره (on-chain): Net Flow به صرافی‌ها، Funding Rate

برای نرمال‌سازی در محیط ترید (برای جلوگیری از data leakage)، باید از rolling normalization استفاده کنید نه global normalization:

$$x_t^{\text{norm}} = \frac{x_t - \mu_{[t-W, t-1]}}{\sigma_{[t-W, t-1]}}$$

اینجا $W$ پنجره زمانی نرمال‌سازی است (معمولاً ۱۰۰–۲۰۰ کندل).

۳.۲ پیش‌بینی نوسان (Volatility Forecasting)

کاربرد کمتر اشباع‌شده و اغلب سودمندتر. مدل LSTM را روی سری $\sigma_t$ (نوسان تحقق‌یافته rolling) آموزش می‌دهید:

$$\sigma_t = \sqrt{\frac{1}{N}\sum_{i=0}^{N-1}(r_{t-i} - \bar{r})^2}$$

خروجی چنین مدلی در تعیین سایز پوزیشن (position sizing) بر اساس Kelly Criterion تعدیل‌شده مستقیماً قابل استفاده است.

۳.۳ رژیم‌بندی بازار (Market Regime Classification)

به‌جای پیش‌بینی قیمت، LSTM را برای طبقه‌بندی رژیم (trending / ranging / volatile) استفاده کنید. خروجی یک بردار احتمال سه‌بُعدی است که می‌توانید استراتژی‌های مختلف را بر اساس آن فعال یا غیرفعال کنید. این رویکرد نسبت به پیش‌بینی مستقیم قیمت پایداری بیشتری در out-of-sample دارد.

---

۴. پایپ‌لاین استاندارد: از داده تا سیگنال

یک پایپ‌لاین production-grade شامل مراحل زیر است:

گام ۱ — ساخت Feature Matrix:
برای هر نمونه زمانی $t$، یک پنجره ورودی $L$ کندله می‌سازید:
$$\mathbf{X}_t = [x_{t-L+1}, x_{t-L+2}, \ldots, x_t] \in \mathbb{R}^{L \times F}$$
اینجا $F$ تعداد ویژگی‌هاست. پنجره‌های رایج در کریپتو: $L = 48$ (دو روز برای ۱H) یا $L = 168$ (یک هفته برای ۱H).

گام ۲ — معماری مدل:
یک پیکربندی معقول برای مسئله پیش‌بینی بازگشتی:
- لایه LSTM اول: ۱۲۸ واحد، return_sequences=True
- Dropout: نرخ ۰.۲ (برای regularization)
- لایه LSTM دوم: ۶۴ واحد
- لایه Dense خروجی: $n$ واحد (تعداد گام‌های پیش‌بینی)

گام ۳ — تقسیم داده بدون نشت:
تقسیم باید به‌صورت زمانی باشد نه تصادفی:
- Train: ۷۰٪ ابتدایی
- Validation: ۱۵٪ میانی (برای early stopping)
- Test: ۱۵٪ انتهایی (هرگز لمس نشود تا ارزیابی نهایی)

گام ۴ — تابع خسارت:
برای پیش‌بینی جهت (direction)، Binary Cross-Entropy مناسب است. برای پیش‌بینی قیمت، Huber Loss نسبت به MSE مقاوم‌تر است:
$$L_{\delta}(y, \hat{y}) = \begin{cases} \frac{1}{2}(y-\hat{y})^2 & |y-\hat{y}| \leq \delta \\ \delta|y-\hat{y}| - \frac{\delta^2}{2} & \text{otherwise} \end{cases}$$

مقدار $\delta$ را معمولاً روی ۱ ATR تنظیم می‌کنند تا outlierهای قیمتی تأثیر کمتری داشته باشند.

---

۵. محدودیت‌های بنیادی و دام‌های عملی

۵.۱ ناایستایی بازار (Non-Stationarity)

مهم‌ترین چالش: توزیع آماری قیمت کریپتو در طول زمان ثابت نیست. مدل LSTM که روی داده‌های ۲۰۲۱ آموزش دیده، در بازار خرسی ۲۰۲۲ کار نمی‌کند چون رژیم کاملاً عوض شده است. راه‌حل جزئی: retraining دوره‌ای (online learning یا sliding window retrain) — اما هیچ‌گاه کامل نیست.

۵.۲ بیش‌برازش (Overfitting) در بازارهای کم‌سیگنال

نسبت سیگنال به نویز (Signal-to-Noise Ratio) در بازارهای مالی بسیار پایین است. یک LSTM با ۱۰۰,۰۰۰ پارامتر، روی ۵,۰۰۰ نمونه آموزشی به‌راحتی نویز را حفظ می‌کند. قانون سرانگشتی: تعداد پارامتر باید حداکثر ۱٪ حجم داده آموزشی باشد. Dropout و L2 Regularization اجباری هستند، نه اختیاری.

۵.۳ تأخیر استنتاج (Inference Latency)

در استراتژی‌های فرکانس بالا (HFT)، LSTM به دلیل محاسبات ترتیبی (sequential computation) برای هر گام زمانی قابل استفاده نیست. زمان استنتاج یک LSTM با $L=168$ و ۱۲۸ واحد روی CPU در حدود ۵–۲۰ میلی‌ثانیه است — برای ترید روزانه کافی، اما برای اسکالپینگ خودکار ناکافی.

۵.۴ تفسیرناپذیری (Black Box)

LSTM یک مدل black box است. نمی‌توانید به‌راحتی بگویید چرا مدل سیگنال خرید داده است. این مشکل در محیط‌هایی که باید پوزیشن را با مدیریت ریسک توضیح داد (مثل fund management) یا وقتی مدل شروع به رفتار غیرمنتظره می‌کند، جدی است. تکنیک‌هایی مثل SHAP for time series و Integrated Gradients می‌توانند کمی تفسیرپذیری اضافه کنند.

۵.۵ Lookahead Bias: خطرناک‌ترین دام

اگر در preprocessing از اطلاعات آینده استفاده کنید (مثلاً نرمال‌سازی global با min/max کل دیتاست، یا محاسبه اندیکاتور روی کل داده قبل از split)، نتایج بک‌تست خوب خواهند بود اما در لایو ترید کاملاً فرو می‌ریزند. هر transformation باید فقط با داده‌های در دسترس در لحظه $t$ محاسبه شود.

---

نتیجه‌گیری

LSTM ابزار قدرتمندی برای مدل‌سازی وابستگی‌های بلندمدت در سری‌های زمانی مالی است، اما «قدرتمند» به معنای «جادویی» نیست. مزیت اصلی آن در شناسایی الگوهای ترتیبی پیچیده‌ای است که اندیکاتورهای کلاسیک از آن‌ها ناتوانند. محدودیت اصلی آن ناپایداری رژیم بازار و ریسک overfitting است. موفقیت در استفاده از LSTM نه در پیچیدگی معماری، بلکه در دقت مهندسی داده، جلوگیری از data leakage، و راه‌اندازی یک سیستم retraining منظم نهفته است.

---

خلاصه نقطه‌ای

- Vanishing Gradient مشکل اصلی RNN ساده است؛ LSTM با cell state و گیت‌های ضربی این مشکل را ساختاری حل می‌کند
- سه گیت Forget / Input / Output به مدل اجازه می‌دهد انتخاب کند چه اطلاعاتی را نگه دارد یا فراموش کند
- Rolling normalization به‌جای global normalization برای جلوگیری از lookahead bias اجباری است
- پیش‌بینی نوسان و رژیم بازار اغلب پایدارتر از پیش‌بینی مستقیم قیمت است
- Overfitting در بازارهای مالی ریسک اول است؛ نسبت پارامتر به داده را کنترل کنید
- Non-stationarity یعنی مدل باید به‌صورت دوره‌ای retrain شود — هیچ مدلی برای همیشه معتبر نمی‌ماند
- Lookahead Bias در preprocessing رایج‌ترین دلیل بک‌تست خوب و لایو بد است
- برای HFT از LSTM استفاده نکنید؛ latency ترتیبی آن با فرکانس بالا ناسازگار است

LSTM — شبکه عصبی سری زمانی | آکادمی تریدیار | تریدیار