न्यूरल नेटवर्क जोखिम प्रबंधन

Python में Quantitative Risk Management

Jamsheed Shorish

Computational Economist

रियल-टाइम पोर्टफोलियो अपडेटिंग

  • जोखिम प्रबंधन
    • परिभाषित जोखिम माप (VaR, CVaR)
    • अनुमानित जोखिम माप (parametric, historical, Monte Carlo)
    • ऑप्टिमाइज़्ड पोर्टफोलियो (जैसे Modern Portfolio Theory)
  • _नई_ मार्केट जानकारी => अपडेट पोर्टफोलियो वेट्स
    • समस्या: पोर्टफोलियो ऑप्टिमाइज़ेशन महंगा
    • समाधान: $\text{weights} = f(\text{prices})$
    • रियल-टाइम में $f$ को evaluate करें
    • $f$ को कभी-कभी ही update करें
Python में Quantitative Risk Management

न्यूरल नेटवर्क्स

  • न्यूरल नेटवर्क: $\text{output} = f(\text{input})$
    • न्यूरॉन: फंक्शन में इंटरकनेक्टेड प्रोसेसिंग नोड
  • शुरुआत 1940s–1950s में हुई
  • Early 2000s: "big data" पर न्यूरल नेटवर्क के एप्लिकेशन
    • इमेज रिकग्निशन, प्रोसेसिंग
    • फाइनेंशियल डेटा
    • सर्च इंजन डेटा
  • डीप लर्निंग: Machine Learning का हिस्सा के रूप में न्यूरल नेटवर्क
    • 2015: Google ने Python के लिए ओपन-सोर्स TensorFlow डीप लर्निंग लाइब्रेरी जारी की
Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • लेयर्स: कनेक्टेड प्रोसेसिंग न्यूरॉन्स
    • इनपुट लेयर

न्यूरल नेटवर्क की इनपुट लेयर

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर

न्यूरल नेटवर्क की हिडन लेयर

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर
    • आउटपुट लेयर
  • ट्रेनिंग: इनपुट और आउटपुट के बीच संबंध सीखना

इनपुट, हिडन और आउटपुट लेयर की छवि

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर
    • आउटपुट लेयर
  • ट्रेनिंग: इनपुट और आउटपुट के बीच संबंध सीखना
    • एसेट प्राइस => इनपुट लेयर

एसेट प्राइस न्यूरल नेटवर्क में फीड होते हुए

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर
    • आउटपुट लेयर
  • ट्रेनिंग: इनपुट और आउटपुट के बीच संबंध सीखना
    • एसेट प्राइस => इनपुट लेयर
    • इनपुट + हिडन लेयर प्रोसेसिंग

न्यूरल नेटवर्क में वेटेड एजेस

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर
    • आउटपुट लेयर
  • ट्रेनिंग: इनपुट और आउटपुट के बीच संबंध सीखना
    • एसेट प्राइस => इनपुट लेयर
    • इनपुट + हिडन लेयर प्रोसेसिंग
    • हिडन + आउटपुट लेयर प्रोसेसिंग

हिडन से आउटपुट लेयर तक वेट्स

Python में Quantitative Risk Management

न्यूरल नेटवर्क संरचना

  • न्यूरल नेटवर्क संरचना
    • इनपुट लेयर
    • हिडन लेयर
    • आउटपुट लेयर
  • ट्रेनिंग: इनपुट और आउटपुट के बीच संबंध सीखना
    • एसेट प्राइस => इनपुट लेयर
    • इनपुट + हिडन लेयर प्रोसेसिंग
    • हिडन + आउटपुट लेयर प्रोसेसिंग
    • आउटपुट => पोर्टफोलियो वेट्स

आउटपुट लेयर को पोर्टफोलियो वेट्स के रूप में दिखाया गया

Python में Quantitative Risk Management

पोर्टफोलियो ऑप्टिमाइज़ेशन के लिए न्यूरल नेटवर्क्स का उपयोग

  • ट्रेनिंग
    • आउटपुट को पहले से मौजूद "best" पोर्टफोलियो वेट्स से compare करें
    • लक्ष्य: आउटपुट और वेट्स के बीच "error" को कम करना
    • त्रुटि कम है => नेटवर्क trained है
  • उपयोग
    • इनपुट: नए, अनदेखे एसेट प्राइस
    • आउटपुट: नए एसेट प्राइस के लिए अनुमानित "best" पोर्टफोलियो वेट्स
    • Best वेट्स = जोखिम प्रबंधन
Python में Quantitative Risk Management

Python में न्यूरल नेटवर्क बनाना

  • Keras: न्यूरल नेटवर्क्स/डीप लर्निंग के लिए हाई-लेवल Python लाइब्रेरी
  • और जानें: Introduction to Deep Learning with Keras

 

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense
model = Sequential() model.add(Dense(10, input_dim=4, activation='sigmoid')) model.add(Dense(4))
Python में Quantitative Risk Management

Python में नेटवर्क को ट्रेन करना

  • ऐतिहासिक एसेट प्राइस: training_input मैट्रिक्स
  • ऐतिहासिक पोर्टफोलियो वेट्स: training_output वेक्टर
  • कम्पाइल मॉडल इनसे:
    • दिया गया error minimization ('loss')
    • दिया गया optimization algorithm ('optimizer')
  • फिट करें मॉडल को ट्रेनिंग डेटा पर
    • epochs: आंतरिक पैरामीटर्स अपडेट करने के लिए ट्रेनिंग लूप्स की संख्या
model.compile(loss='mean_squared_error', optimizer='rmsprop')

model.fit(training_input, training_output, epochs=100)
Python में Quantitative Risk Management

Python में जोखिम प्रबंधन

  • उपयोग: नया (जैसे रियल-टाइम) एसेट प्राइसिंग डेटा दें
    • नया वेक्टर new_asset_prices इनपुट लेयर को दें
  • नए प्राइस पर model.predict() से नेटवर्क evaluate करें
    • परिणाम: predicted पोर्टफोलियो वेट्स
  • समय के साथ पर्याप्त डेटा हो जाए => नेटवर्क को re-train करें
    • पिछले डेटा पर नेटवर्क टेस्ट करें => backtesting
# new asset prices are in the vector new_asset_prices
predicted = model.predict(new_asset_prices)
Python में Quantitative Risk Management

अभ्यास करते हैं!

Python में Quantitative Risk Management

Preparing Video For Download...