Activation Functions, bend by bend


Activation
Target curve
Neurons
Learn
Dashed gray: the curve to match. Thin colored lines: what each neuron adds (its output times its weight). Thick black line: the network's answer, which is their sum plus a constant. Click or drag on the plot to choose an input x; the shaded columns of the table follow it through the network. Click a neuron in the table to pick out its line.
The network itself. Every neuron gets the same x; each line's thickness shows the size of its weight, and the neuron numbers match the colors in the plot and the table. Under x and y are their values at the chosen x. Click a neuron here or in the table to pick it out.

الفكرة كلّها.
الشبكة هنا في أصغر حجم ممكن: input واحد x، وhidden layer واحدة فيها بضعة neurons، وoutput واحد. يحسب كلّ neuron مجموعًا موزونًا، z = w·x + b، ويمرّره عبر الـ activation f، ثمّ يجمع الـ output القيم wout·f(z) على كلّ الـ neurons، ويضيف ثابتًا.

انزع الـ activation، فتصبح كلّ خطوة مجرّد “اضرب، ثمّ اجمع”. وتكديس هذه الخطوات يُختصَر إلى ضربٍ واحد وجمعٍ واحد، فتصير الشبكة كلّها خطًّا مستقيمًا واحدًا، مهما كان عدد الـ neurons فيها. ويعرض الـ readout ذلك الخطّ، محسوبًا من الأوزان. على الموجة (wave) أفضل ما يمكنه هو error قدره 0.4959، والضغط على Fit it مرّة أخرى لا يغيّر شيئًا.

الـ activation هو الشيء الوحيد في الشبكة الذي ليس خطًّا مستقيمًا، ولذلك فهو الشيء الوحيد الذي يستطيع أن يثني الـ output. يضيف كلّ neuron قطعةً منثنية واحدة، والخطّ الأسود هو مجموعها. لكلّ قطعة من قطع ReLU زاوية حادّة واحدة، بينما قطع sigmoid وtanh درجات ناعمة. مزيد من الـ neurons يعطي مزيدًا من القطع، ومزيد من القطع يستطيع أن يتبع منحنى أكثر تعقيدًا.

أمور تستحقّ التجربة:
1. None، ثمّ Reset بضع مرّات. يميل الخطّ الأسود وينزلق، لكنّه لا ينثني أبدًا.

2. ReLU على الموجة مع أربعة neurons. بعد Fit it تُظهر النقاط أين يثني كلّ neuron الـ output: أربعة neurons، أربع انثناءات، وينخفض الـ error من 0.7104 إلى 0.0051. أضِف الـ neurons واحدًا تلو الآخر، وأعِد الـ fit بعد كلّ إضافة: 0.0042 مع خمسة، و0.0025 مع ستّة، و0.0008 مع ثمانية.

3. الموجة نفسها مع Sigmoid أو Tanh: تصل أربعة neurons إلى 0.0002 و0.0001. فالمنحنى الناعم أسهل بناءً من قطعٍ ناعمة. ثمّ جرّب V shape: تطابقه ReLU تمامًا (error قدره 0.0000)، لأنّ الـ V مجرّد قطعتين مستقيمتين بزاوية واحدة، بينما تتوقّف sigmoid عند 0.0010.

4. انظر إلى عمود learning signal. إنّه متوسّط ميل f حيث يُستخدَم الـ neuron، والتعلّم لا يستطيع أن يدفع الـ neuron إلّا عبر هذا الميل. ميل sigmoid لا يزيد أبدًا على 0.25، وبعد fit الموجة تقع neurons الخاصّة بها بين 0.06 و0.15. وتقع neurons الـ tanh بين 0.21 و0.36. كلا المنحنيين يصبح مسطّحًا عند الطرفين، فالـ neuron المدفوع بعيدًا إلى جانب واحد بالكاد يتعلّم.

5. Dead neurons. إذا صار input الـ ReLU neuron سالبًا لكلّ x، فإنّ الـ output الخاصّ به وميله كليهما 0، فلا تصله أيّ learning signal ولا يتعافى أبدًا. ويَسِمه الجدول بـ dead. مع ReLU على الموجة، اضغط Reset سبع مرّات، ثمّ Fit it: يموت neuron 1 في الطريق ويتوقّف الـ error عند 0.2335. وعلى مدى 50 بداية عشوائية لكلّ منحنى من المنحنيات الثلاثة، انتهى نحو 1 من كلّ 15 ReLU neuron ميّتًا بعد الـ fit. تحتفظ Leaky ReLU بميل صغير على الجانب السالب (0.1 هنا؛ ومعظم المكتبات تستخدم 0.01 افتراضيًّا)، فلا ينقطع أيّ neuron تمامًا أبدًا. انتقل إلى Leaky ReLU، التي تبدأ من الأوزان نفسها، واضغط Fit it: يصل الـ error إلى 0.0047.