Activation functions help a machine learning model decide what information to keep or ignore. They add the ability to learn complex patterns by introducing non-linearity.
When building a neural network to classify images like cats and dogs.
When predicting house prices using many features with complex relationships.
When creating a model that needs to understand speech or text.
When training a deep learning model to recognize handwritten digits.
When you want your model to learn from data that is not just straight lines.
Syntax
ML Python
def activation_function(x):
# apply some math to xreturn result
Activation functions take a number and return another number.
They are applied to each neuron's output in a neural network.
Examples
ReLU returns zero if input is negative, else returns input itself.
ML Python
def relu(x):
returnmax(0, x)
Sigmoid squashes input to a value between 0 and 1.
ML Python
import math
def sigmoid(x):
return1 / (1 + math.exp(-x))
Tanh squashes input to a value between -1 and 1.
ML Python
import math
def tanh(x):
return math.tanh(x)
Sample Model
This program shows how ReLU and Sigmoid activation functions transform a list of numbers. ReLU clips negatives to zero, sigmoid squashes values between 0 and 1.
ML Python
import math
def relu(x):
returnmax(0, x)
def sigmoid(x):
return1 / (1 + math.exp(-x))
inputs = [-2, -1, 0, 1, 2]
relu_outputs = [relu(x) for x in inputs]
sigmoid_outputs = [sigmoid(x) for x in inputs]
print(f"ReLU outputs: {relu_outputs}")
print(f"Sigmoid outputs: {[round(s, 3) for s in sigmoid_outputs]}")
OutputSuccess
Important Notes
Choosing the right activation function affects how well your model learns.
ReLU is popular because it is simple and helps models learn faster.
Sigmoid is good for outputs that represent probabilities.
Summary
Activation functions add non-linearity to neural networks.
Common types include ReLU, Sigmoid, and Tanh.
They help models learn complex patterns beyond straight lines.
Practice
(1/5)
1. What is the main purpose of an activation function in a neural network?
easy
A. To split data into training and testing sets
B. To initialize the weights of the network
C. To reduce the size of the dataset
D. To add non-linearity so the network can learn complex patterns
Solution
Step 1: Understand the role of activation functions
Activation functions introduce non-linearity to the network, allowing it to learn complex patterns beyond simple straight lines.
Step 2: Compare with other options
Weight initialization, data splitting, and dataset size reduction are unrelated to activation functions.
Final Answer:
To add non-linearity so the network can learn complex patterns -> Option D
Quick Check:
Activation function purpose = Add non-linearity [OK]
Hint: Activation functions make models learn complex patterns [OK]
Common Mistakes:
Confusing activation functions with weight initialization
Thinking activation functions reduce dataset size
Believing activation functions split data
2. Which of the following is the correct Python syntax to apply the ReLU activation function on a variable x using NumPy?
easy
A. relu_x = np.maximum(0, x)
B. relu_x = np.min(0, x)
C. relu_x = np.exp(x)
D. relu_x = np.log(x)
Solution
Step 1: Recall ReLU function definition
ReLU returns the maximum between 0 and the input value, so np.maximum(0, x) is correct.
Step 2: Check other options
np.min(0, x) returns the minimum, which is incorrect. np.exp(x) and np.log(x) are exponential and logarithm functions, not ReLU.
Final Answer:
relu_x = np.maximum(0, x) -> Option A
Quick Check:
ReLU = max(0, x) [OK]
Hint: ReLU = max between zero and input [OK]
Common Mistakes:
Using np.min instead of np.maximum
Confusing ReLU with exponential or log functions
Forgetting to import numpy as np
3. Given the following Python code using NumPy, what is the output of print(output)?
import numpy as np
x = np.array([-2, 0, 3])
output = 1 / (1 + np.exp(-x))
print(output)
medium
A. [0 0 3]
B. [0.11920292 0.5 0.95257413]
C. [-2 0 3]
D. [1 1 1]
Solution
Step 1: Identify the activation function used
The code applies the sigmoid function: 1 / (1 + exp(-x)) on each element of x.
Step 2: Calculate sigmoid values for each element
For x = -2: sigmoid ≈ 0.1192; for 0: sigmoid = 0.5; for 3: sigmoid ≈ 0.9526.
Final Answer:
[0.11920292 0.5 0.95257413] -> Option B
Quick Check:
Sigmoid([-2,0,3]) = [0.119,0.5,0.953] [OK]
Hint: Sigmoid outputs values between 0 and 1 [OK]
Common Mistakes:
Confusing sigmoid with identity function
Expecting original input as output
Miscomputing exponential values
4. The following code attempts to implement the Tanh activation function but has an error. What is the error?
A. The denominator should be (np.exp(x) + np.exp(-x)) instead of (np.exp(x) + np.exp(x))
B. The numerator should be (np.exp(x) + np.exp(-x))
C. The function should use np.tanh(x) directly
D. The function is missing a return statement
Solution
Step 1: Review the Tanh formula
Tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x)). The denominator in the code is incorrect.
Step 2: Identify the error in denominator
The code uses (np.exp(x) + np.exp(x)) which doubles exp(x) instead of adding exp(-x).
Final Answer:
The denominator should be (np.exp(x) + np.exp(-x)) instead of (np.exp(x) + np.exp(x)) -> Option A
Quick Check:
Tanh denominator = exp(x)+exp(-x) [OK]
Hint: Check denominator carefully for plus and minus signs [OK]
Common Mistakes:
Copying exp(x) twice in denominator
Swapping numerator and denominator terms
Forgetting to return the value
5. You want to design a neural network for a binary classification task. Which activation function should you use in the output layer to get a probability between 0 and 1, and why?
hard
A. Tanh, because it outputs values between -1 and 1
B. ReLU, because it outputs only positive values
C. Sigmoid, because it outputs values between 0 and 1 suitable for probabilities
D. Linear, because it outputs raw scores
Solution
Step 1: Understand output layer needs for binary classification
The output should represent a probability, so it must be between 0 and 1.
Step 2: Match activation functions to output range
Sigmoid outputs between 0 and 1, perfect for probabilities. ReLU outputs 0 or more but unbounded. Tanh outputs between -1 and 1, not suitable for probabilities. Linear outputs any real number.
Final Answer:
Sigmoid, because it outputs values between 0 and 1 suitable for probabilities -> Option C
Quick Check:
Binary output needs sigmoid for probability [OK]
Hint: Use sigmoid for binary output probabilities [OK]
Common Mistakes:
Using ReLU or Tanh in output layer for probabilities
Choosing linear activation for classification output
Not considering output range needed
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.