आसान 0 हल किए गए 0% स्वीकृति

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

सूची के हर मान पर sigmoid, ReLU, Leaky ReLU या tanh लागू करें।

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

  • आम एक्टिवेशन फ़ंक्शन लागू करना
  • समझना कि नेटवर्क को गैर-रैखिकता क्यों चाहिए
  • सिग्मॉइड में ओवरफ़्लो से बचना

समस्या

जब कोई न्यूरॉन अपने वेट वाले इनपुट जोड़ लेता है, तब एक्टिवेशन फ़ंक्शन उसका आउटपुट तय करता है। इसके बिना न्यूरल नेटवर्क केवल सीधी रेखाएँ ही सीख पाता।

activate(name, values) लागू करें और दिए गए नाम वाला फ़ंक्शन हर मान पर लगाएँ:

nameसूत्र
"sigmoid"1 / (1 + e^(-x))
"relu"max(0, x)
"leaky_relu"अगर x > 0 तो x, नहीं तो 0.01 × x
"tanh"(e^x - e^(-x)) / (e^x + e^(-x))

इनपुट

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

values: संख्याओं की एक सूची।

आउटपुट

हर मान पर एक्टिवेशन लगाकर बनी सूची उसी क्रम में लौटाएँ।

सीमाएँ

1 ≤ values की लंबाई ≤ 1,000

-50 ≤ हर मान ≤ 50

उदाहरण

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

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

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

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

व्याख्या

sigmoid(0) = 1 / (1 + 1) = 0.5, sigmoid(2) ≈ 0.880797 और sigmoid(-2) ≈ 0.119203। sigmoid किसी भी संख्या को 0 से 1 की सीमा में ले आता है।

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

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

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

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

व्याख्या

ReLU धनात्मक मानों को वैसा ही रखता है और ऋणात्मक मानों को 0 बना देता है: [0, 0, 3]।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

हर activation हर number पर अलग से लागू होती है, इसलिए एक value पर ध्यान दें.

संकेत 2

दिए गए name के अनुसार formula use करें और results से नई list बनाएं.

संकेत 3

Negative inputs पर सावधान रहें, खासकर ReLU और nonpositive side पर leaky slope के लिए.

अपेक्षित जटिलता

समय O(n), अतिरिक्त स्थान O(n)

संदर्भ

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

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

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

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