Bird
Raised Fist0
TensorFlowml~20 mins

L1 and L2 regularization in TensorFlow - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Regularization Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Difference between L1 and L2 regularization

Which statement correctly describes the main difference between L1 and L2 regularization in machine learning models?

AL2 regularization produces sparse models by setting weights to zero, while L1 regularization only shrinks weights without making them zero.
BL1 regularization tends to produce sparse models by driving some weights exactly to zero, while L2 regularization shrinks weights but rarely makes them zero.
CBoth L1 and L2 regularization always set all weights to zero to prevent overfitting.
DL1 regularization increases model complexity, while L2 regularization decreases it.
Attempts:
2 left
💡 Hint

Think about which regularization method helps with feature selection by removing some features completely.

❓ Predict Output
intermediate
1:30remaining
Output shape after applying L2 regularization in TensorFlow

What will be the shape of the weights after creating a Dense layer with 5 units and L2 regularization in TensorFlow?

TensorFlow
import tensorflow as tf
layer = tf.keras.layers.Dense(5, kernel_regularizer=tf.keras.regularizers.l2(0.01), input_shape=(10,))
model = tf.keras.Sequential([layer])
model.build()
weights_shape = model.layers[0].kernel.shape
print(weights_shape)
A(10, 5)
B(5, 10)
C(5,)
D(10,)
Attempts:
2 left
💡 Hint

Remember the Dense layer shape is (input_features, output_units).

❓ Hyperparameter
advanced
1:30remaining
Choosing regularization strength

You train a neural network and notice it overfits the training data. Which change to the regularization parameter lambda (strength) will most likely reduce overfitting?

AIncrease lambda to add stronger regularization.
BDecrease lambda to reduce regularization strength.
CSet lambda to zero to remove regularization.
DKeep lambda unchanged because it does not affect overfitting.
Attempts:
2 left
💡 Hint

Think about how regularization controls model complexity and overfitting.

❓ Metrics
advanced
1:30remaining
Effect of L1 regularization on model sparsity metric

After training a model with L1 regularization, which metric would best show that many weights are exactly zero?

ASum of all weights regardless of value.
BMean squared error on training data.
CCount of weights equal to zero (sparsity count).
DAccuracy on validation data.
Attempts:
2 left
💡 Hint

Sparsity means many weights are zero. Which metric directly measures that?

🔧 Debug
expert
2:00remaining
Identifying error in TensorFlow model with combined L1 and L2 regularization

Consider this TensorFlow code snippet that tries to apply both L1 and L2 regularization to a Dense layer. What error will it raise?

TensorFlow
import tensorflow as tf
layer = tf.keras.layers.Dense(4, kernel_regularizer=tf.keras.regularizers.l1_l2(l1=0.01, l2=0.01))
model = tf.keras.Sequential([layer])
model.build(input_shape=(None, 8))
print(model.layers[0].kernel_regularizer.l1)
ASyntaxError due to incorrect function call.
BTypeError because l1_l2 does not accept keyword arguments.
CNo error; prints 0.01 as expected.
DAttributeError because 'kernel_regularizer' has no attribute 'l1'.
Attempts:
2 left
💡 Hint

Check the attributes available on the l1_l2 regularizer object.

Practice

(1/5)
1. What is the main purpose of using L1 and L2 regularization in TensorFlow models?
easy
A. To change the activation function of the model
B. To increase the size of the model weights
C. To prevent overfitting by adding penalties to large weights
D. To speed up the training process by skipping layers

Solution

  1. Step 1: Understand the role of regularization

    L1 and L2 regularization add penalties to the loss function based on the size of the weights to reduce overfitting.
  2. Step 2: Identify the effect on model weights

    These penalties discourage large weights, helping the model generalize better on new data.
  3. Final Answer:

    To prevent overfitting by adding penalties to large weights -> Option C
  4. Quick Check:

    Regularization = Prevent overfitting [OK]
Hint: Regularization adds penalty to weights to avoid overfitting [OK]
Common Mistakes:
  • Thinking regularization speeds up training
  • Confusing regularization with activation functions
  • Believing regularization increases weight size
2. Which of the following is the correct way to add L2 regularization to a Dense layer in TensorFlow?
easy
A. Dense(64, kernel_regularizer=tf.keras.regularizers.l2(0.01))
B. Dense(64, regularizer=tf.keras.l2(0.01))
C. Dense(64, kernel_regularizer=tf.keras.regularizers.l1(0.01))
D. Dense(64, kernel_regularizer=tf.keras.regularizers.l1_l2(0.01))

Solution

  1. Step 1: Recall the correct argument name

    The argument to add regularization in a Dense layer is kernel_regularizer.
  2. Step 2: Use the correct regularizer function

    For L2 regularization, use tf.keras.regularizers.l2() with the penalty value.
  3. Final Answer:

    Dense(64, kernel_regularizer=tf.keras.regularizers.l2(0.01)) -> Option A
  4. Quick Check:

    Correct syntax = Dense(64, kernel_regularizer=tf.keras.regularizers.l2(0.01)) [OK]
Hint: Use kernel_regularizer with tf.keras.regularizers.l2 for L2 [OK]
Common Mistakes:
  • Using 'regularizer' instead of 'kernel_regularizer'
  • Using L1 regularizer when L2 is needed
  • Wrong function call like tf.keras.l2 instead of tf.keras.regularizers.l2
3. What will be the effect on the weights after training a model with L1 regularization compared to no regularization?
medium
A. Weights will be larger to fit the training data better
B. Weights will not change compared to no regularization
C. Weights will be small but rarely zero
D. Weights will be exactly zero for some features, creating sparsity

Solution

  1. Step 1: Understand L1 regularization effect

    L1 regularization adds absolute value penalties, encouraging some weights to become zero.
  2. Step 2: Compare with no regularization

    Without regularization, weights can be large and non-sparse; L1 creates sparsity by zeroing some weights.
  3. Final Answer:

    Weights will be exactly zero for some features, creating sparsity -> Option D
  4. Quick Check:

    L1 = Sparsity with zero weights [OK]
Hint: L1 makes some weights zero, creating sparse models [OK]
Common Mistakes:
  • Confusing L1 with L2 effects
  • Thinking weights get larger with regularization
  • Assuming weights remain unchanged
4. You wrote this code to add L2 regularization but get an error:
model.add(Dense(32, kernel_regularizer=tf.keras.regularizers.l2))

What is the error and how to fix it?
medium
A. Missing parentheses after l2; fix with l2(0.01)
B. kernel_regularizer should be regularizer
C. Dense layer does not support regularization
D. l2 should be replaced with l1

Solution

  1. Step 1: Identify the error in regularizer usage

    The code uses tf.keras.regularizers.l2 without calling it as a function.
  2. Step 2: Correct the syntax by adding parentheses and penalty value

    Use tf.keras.regularizers.l2(0.01) to create the regularizer instance.
  3. Final Answer:

    Missing parentheses after l2; fix with l2(0.01) -> Option A
  4. Quick Check:

    Call l2() with penalty value [OK]
Hint: Always call l1 or l2 with parentheses and penalty [OK]
Common Mistakes:
  • Forgetting parentheses after l1 or l2
  • Using 'regularizer' instead of 'kernel_regularizer'
  • Thinking Dense layer can't have regularization
5. You want to build a TensorFlow model that uses both L1 and L2 regularization on the kernel weights of a Dense layer with penalties 0.001 and 0.01 respectively. Which code snippet correctly applies this?
hard
A. Dense(128, kernel_regularizer=tf.keras.regularizers.l2(0.01), kernel_regularizer=tf.keras.regularizers.l1(0.001))
B. Dense(128, kernel_regularizer=tf.keras.regularizers.l1_l2(l1=0.001, l2=0.01))
C. Dense(128, kernel_regularizer=tf.keras.regularizers.l1(0.001), bias_regularizer=tf.keras.regularizers.l2(0.01))
D. Dense(128, kernel_regularizer=tf.keras.regularizers.l1(0.001) + tf.keras.regularizers.l2(0.01))

Solution

  1. Step 1: Understand how to combine L1 and L2 regularization

    TensorFlow provides l1_l2 regularizer to apply both penalties together on the same weights.
  2. Step 2: Check the correct syntax for l1_l2

    Use tf.keras.regularizers.l1_l2(l1=0.001, l2=0.01) as the kernel_regularizer argument.
  3. Final Answer:

    Dense(128, kernel_regularizer=tf.keras.regularizers.l1_l2(l1=0.001, l2=0.01)) -> Option B
  4. Quick Check:

    Use l1_l2() for combined regularization [OK]
Hint: Use l1_l2() to combine L1 and L2 penalties [OK]
Common Mistakes:
  • Trying to add two kernel_regularizer arguments
  • Adding regularizers instead of using l1_l2
  • Applying L1 to kernel and L2 to bias instead
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard