गणना ग्राफ़

प्रथम सिद्धांतों से बहु-चर कलन

एक डेटा संरचना पिछले दो पाठों के सब कुछ को व्यवस्थित करती है: गणना ग्राफ़। एक मॉडल में हर अंकगणितीय संक्रिया (जोड़, गुणा, matmul, सक्रियण) एक निर्देशित ग्राफ़ में एक नोड बन जाती है। यह ग्राफ़ है जिससे PyTorch, JAX, और TensorFlow ग्रेडिएंट स्वतः गणना करते हैं।

प्रशिक्षण ग्राफ़ को दो बहावों में चलाता है। अग्र पास बाएँ से दाएँ बहता है, प्रत्येक नोड का मान गणना और कैश करता है। पश्चगामी पास दाएँ से बाएँ बहता है, श्रृंखला नियम का उपयोग कर हानि से हर इनपुट तक ग्रेडिएंट धकेलता है, एक समय में एक नोड।

यही विचार इसे स्केल कराता है: प्रत्येक नोड को केवल अपनी स्थानीय अवकलज जानने की ज़रूरत है। एक नोड से ग्रेडिएंट पीछे भेजने के लिए, आने वाले ग्रेडिएंट (ऊपर से) को नोड के स्थानीय जैकोबियन (उसका आउटपुट इनपुट पर कैसे निर्भर करता है) से गुणा करें। किसी नोड को वैश्विक चित्र कभी नहीं चाहिए; स्थानीय नियम जोड़े जाते हैं और सटीक कुल ग्रेडिएंट बनाते हैं।

ML में इसका स्थानएक गणना ग्राफ़ ही ऑटोग्रेड है। जब आप PyTorch में मॉडल लिखते हैं, हर संक्रिया चुपचाप एक नोड रिकॉर्ड करती है; loss.backward() कॉल ग्राफ़ को उल्टा चलता है, श्रृंखला नियम से स्थानीय जैकोबियन गुणा करता है, और हर पैरामीटर पर ∂loss/∂w जमा करता है। आप कभी हाथ से अवकलज नहीं लिखते, और वह एक सुविधा, अवकलज ठीक और मुफ़्त गणना, बहुत कुछ है जिसके कारण आधुनिक गहन शिक्षण व्यावहारिक है।
▶ गणना ग्राफ़
← श्रृंखला नियम: आव्यूह रूपRⁿ में क्रांतिक बिंदु →