3 पॉइंट द्वारा GN⁺ 2023-08-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह लेख Python का उपयोग करके automatic differentiation जैसी एक महत्वपूर्ण अवधारणा को समझाता है, जो neural network training का एक मुख्य घटक है.
  • लेखक एक machine learning engineer हैं, जो Tensorflow और Pytorch जैसी libraries का उपयोग करते हैं, और automatic differentiation करने वाला सबसे सरल code लिखने का लक्ष्य रखते हैं.
  • लेखक Python code लिखकर शुरुआत करते हैं जो दो variables x और y के बीच जोड़ करता है और परिणाम को variable z में assign करता है. लेकिन z उपयोग किए गए variables को track नहीं करता, इसलिए x या y का मान बदलने पर z के मान को अपने-आप update करना संभव नहीं होता.
  • इसे हल करने के लिए, लेखक Tensor class पेश करते हैं, जो variables के लिए symbolic computation की अनुमति देती है. इस class में addition operation को override किया जाता है.
  • Tensor class को binary tree का उपयोग करके और बेहतर बनाया जाता है. हर tensor में दो अन्य tensors और उसे बनाने वाला operation शामिल हो सकता है. यह Children tuple को शामिल करके किया जाता है.
  • लेखक computation graph चलाने और tensor के वास्तविक मान की गणना करने के लिए Tensor class में forward method जोड़ते हैं.
  • लेखक Tensor class द्वारा समर्थित basic operations के लिए differentiation जोड़कर computation graph में automatic differentiation लाते हैं. grad function की recursive call computation graph को traverse करती है और complex functions को simple functions के संयोजन में तोड़ती है.
  • Tensor class को subtraction, division, exponentiation और negation जैसे अतिरिक्त operations जोड़कर अधिक जटिल formulas को handle करने लायक बनाया जाता है.
  • लेखक जटिल formulas बनाकर और उनका derivative निकालकर Tensor class के उपयोग को दिखाते हैं.
  • अंत में, लेखक Tensor class के लिए संभावित सुधार और optimization सुझाते हैं, जैसे arbitrary size के arrays पर operations जोड़ना, उन nodes पर traversal रोकना जो tensor x पर निर्भर नहीं हैं, और computation की पुनरावृत्ति से बचने के लिए cache सेट करना.
  • इस लेख का उद्देश्य पाठकों को यह समझने में मदद करना है कि neural network optimization और training के लिए automatic differentiation कैसे काम करता है.

1 टिप्पणियां

 
GN⁺ 2023-08-27
Hacker News की राय
  • पाठकों ने जटिल अवधारणाओं को समझने में मदद करने वाले संक्षिप्त और सुरुचिपूर्ण कोड डेमो की सराहना की।
  • लेख में automatic differentiation की व्याख्या केवल तब तक सीमित लगती है जब graph एक tree हो, इसलिए यह कुछ ज़्यादा ही सरल बना दी गई है; इसमें अधिक जटिल directed acyclic graphs को शामिल नहीं किया गया है।
  • कुछ पाठकों को automatic differentiation बहुत दिलचस्प लगा, और उन्होंने इस अवधारणा पर अपना परिचयात्मक लेख भी लिखा।
  • एक पाठक ने Python की 26 पंक्तियों में बनाया गया अपना autodiff साझा किया।
  • चर्चा की गई तकनीकों की तुलना "dependency tracking" और बड़े parametric 3D models में गणना कम करने के लिए इस्तेमाल होने वाले Knowledge Based Engineering systems से की गई।
  • autograd engine बनाने पर Andrej Karpathy का वीडियो ज्ञानवर्धक बताया गया और उसकी सिफारिश की गई।
  • कुछ पाठकों ने सुझाव दिया कि automatic differentiation में ज़रूरी नहीं कि operation graph बनाया ही जाए, बल्कि संबंधित मानों की गणना तुरंत की जा सकती है।
  • यह सुझाव दिया गया कि autodiff को numerical chain rule के रूप में समझाना अधिक स्पष्ट है।
  • class को tensor कहने के औचित्य पर सवाल उठाया गया।
  • implementation की सरलता ने कुछ पाठकों को चौंकाया, जिससे यह अवधारणा उनकी शुरुआती अपेक्षा से अधिक सुलभ लगी।
  • implementation की तुलना Haskell के free monad से की गई, जो लेख की भाषाओं के बीच प्रासंगिकता को दर्शाती है।