सभी चुनौतियाँ
आसान 0 हल किए गए 0% स्वीकृति

एक्टिवेशन फ़ंक्शन के डेरिवेटिव

हर मान पर sigmoid, ReLU, Leaky ReLU या tanh का डेरिवेटिव निकालें, यानी वे ढलान जिनकी बैकप्रोपेगेशन को ज़रूरत होती है।

आप क्या सीखेंगे

  • आम एक्टिवेशन के ढलान निकालना
  • डेरिवेटिव के लिए सिग्मॉइड आउटपुट दोबारा उपयोग करना
  • बैकप्रोपेगेशन के लिए ज़रूरी हिस्से तैयार करना

समस्या

बैकप्रोपेगेशन ग्रेडिएंट को हर एक्टिवेशन फ़ंक्शन के डेरिवेटिव से गुणा करता है। activation_derivative(name, values) लागू करें और हर मान पर डेरिवेटिव लौटाएँ:

nameडेरिवेटिव
"sigmoid"s × (1 - s), जहाँ s = 1 / (1 + e^(-x))
"relu"1 अगर x > 0, नहीं तो 0
"leaky_relu"1 अगर x > 0, नहीं तो 0.01
"tanh"1 - tanh(x)²

इनपुट

name: "sigmoid", "relu", "leaky_relu" या "tanh" में से एक।

values: एक्टिवेशन के इनपुट x।

आउटपुट

उसी क्रम में हर मान पर डेरिवेटिव लौटाएँ।

सीमाएँ

1 ≤ लंबाई ≤ 1,000

-50 ≤ हर मान ≤ 50

उदाहरण

उदाहरण 1
इनपुट:
name = "sigmoid"
values = [0.0, 2.0]

अपेक्षित आउटपुट:
expected = [0.25, 0.104994]
इनपुट:
std::string name = "sigmoid";
std::vector<double> values = {0.0, 2.0};

अपेक्षित आउटपुट:
std::vector<double> expected = {0.25, 0.104994};
इनपुट:
string name = "sigmoid";
double[] values = new double[] {0.0, 2.0};

अपेक्षित आउटपुट:
double[] expected = new double[] {0.25, 0.104994};

व्याख्या

0 पर s = 0.5 है और ढलान 0.5 × 0.5 = 0.25 है, जो sigmoid का सबसे खड़ा बिंदु है। 2 पर s ≈ 0.880797 है और ढलान लगभग 0.104994 है।

उदाहरण 2
इनपुट:
name = "relu"
values = [-3.0, 0.0, 4.5]

अपेक्षित आउटपुट:
expected = [0.0, 0.0, 1.0]
इनपुट:
std::string name = "relu";
std::vector<double> values = {-3.0, 0.0, 4.5};

अपेक्षित आउटपुट:
std::vector<double> expected = {0.0, 0.0, 1.0};
इनपुट:
string name = "relu";
double[] values = new double[] {-3.0, 0.0, 4.5};

अपेक्षित आउटपुट:
double[] expected = new double[] {0.0, 0.0, 1.0};

व्याख्या

ReLU x ≤ 0 के लिए सपाट है (ढलान 0) और x > 0 के लिए ढलान 1 है, इसलिए परिणाम [0, 0, 1] है।

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।