Visualizing CNN: Understanding What Convolutional Neural Networks Learn | CNN рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛: рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рд╕реАрдЦрддрд╛ рд╣реИ?

Visualizing CNN: Understanding What Convolutional Neural Networks Learn | CNN рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛: рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рд╕реАрдЦрддрд╛ рд╣реИ?


CNN рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛: рдХреЙрдиреНрд╡реЛрд▓реНрдпреВрд╢рдирд▓ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рд╕реАрдЦрддрд╛ рд╣реИ?

Convolutional Neural Networks (CNNs) рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдореЙрдбрд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦ рд░рд╣реЗ рд╣реИрдВ тАФ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реИред рдЗрд╕реАрд▓рд┐рдП, CNN Visualization рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХреЗрдВ рдХрд┐ рд╣рд░ рд▓реЗрдпрд░ рдореЗрдВ рдХреМрди-рдХреМрди рд╕реЗ рдлреАрдЪрд░реНрд╕ рдкрд╣рдЪрд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

ЁЯУШ CNN Visualization рдХреНрдпрд╛ рд╣реИ?

Visualization рдХрд╛ рдЕрд░реНрде рд╣реИ CNN рдХреА рдЖрдВрддрд░рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рдирд╡-рдЕрдиреБрдХреВрд▓ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ CNN рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░ (layers) рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлреАрдЪрд░реНрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ тАФ рдЬреИрд╕реЗ edges, colors, shapes, textures, рдпрд╛ high-level objectsред

ЁЯза CNN рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреА рднреВрдорд┐рдХрд╛:

  • рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЗрдпрд░реНрд╕ (Initial Layers): edges рдФрд░ basic patterns рд╕реАрдЦрддреА рд╣реИрдВред
  • рдордзреНрдп рд▓реЗрдпрд░реНрд╕ (Intermediate Layers): shapes рдФрд░ parts рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓ рдкреИрдЯрд░реНрди рд╕реАрдЦрддреА рд╣реИрдВред
  • рдЕрдВрддрд┐рдо рд▓реЗрдпрд░реНрд╕ (Final Layers): objects рдФрд░ semantics рдкрд╣рдЪрд╛рдирддреА рд╣реИрдВред

тЪЩя╕П Visualization рдХреЗ рдкреНрд░рдореБрдЦ рддрд░реАрдХреЗ:

1я╕ПтГг Feature Map Visualization:

рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рдХрд┐рд╕реА convolutional рд▓реЗрдпрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗ рдЗрдирдкреБрдЯ рдЗрдореЗрдЬ рдХреЗ рдХреМрди рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирд╛ред

from tensorflow.keras.models import Model
import matplotlib.pyplot as plt

layer_outputs = [layer.output for layer in model.layers if 'conv' in layer.name]
activation_model = Model(inputs=model.input, outputs=layer_outputs)
activations = activation_model.predict(img)

plt.imshow(activations[0][0, :, :, 1], cmap='viridis')

2я╕ПтГг Filter Visualization:

рдпрд╣ CNN рдХреЗ filters рдХреЛ visualize рдХрд░рддрд╛ рд╣реИ тАФ рдпрд╛рдиреА рдХрд┐ рдореЙрдбрд▓ рдХрд┐рди рдкреИрдЯрд░реНрдиреНрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗ рд░рд╣рд╛ рд╣реИред рд╣рд░ filter рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ feature рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред

3я╕ПтГг Grad-CAM (Gradient-weighted Class Activation Mapping):

Grad-CAM рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп visualization рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ CNN рдиреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдХреЗ рдХрд┐рди рд╣рд┐рд╕реНрд╕реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ model interpretability рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

grad_model = tf.keras.models.Model([model.inputs], [model.get_layer('conv2d_2').output, model.output])
with tf.GradientTape() as tape:
    conv_outputs, predictions = grad_model(img)
    loss = predictions[:, np.argmax(predictions[0])]
grads = tape.gradient(loss, conv_outputs)
weights = tf.reduce_mean(grads, axis=(0, 1, 2))
cam = np.zeros(conv_outputs.shape[1:3], dtype=np.float32)
for i, w in enumerate(weights):
    cam += w * conv_outputs[0, :, :, i]
plt.imshow(cam, cmap='jet', alpha=0.5)

4я╕ПтГг Saliency Maps:

Saliency Maps рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдЗрдореЗрдЬ рдХреЗ рдХреМрди рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓реНрд╕ prediction рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдпрд╣ input pixels рдХреЗ gradients рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

5я╕ПтГг Activation Maximization:

рдЗрд╕ рддрдХрдиреАрдХ рдореЗрдВ рд╣рдо рдПрдХ рдЗрдирдкреБрдЯ рдЗрдореЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ neuron рдпрд╛ filter рдХреЛ рдЕрдзрд┐рдХрддрдо activate рдХрд░рддреА рд╣реИред рдЗрд╕рд╕реЗ рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ neuron рдХрд┐рди рдкреИрдЯрд░реНрдиреНрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред

ЁЯУК Visualization рдХреЗ рдЙрдкрдпреЛрдЧ:

  • рдореЙрдбрд▓ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ (Interpretability) рдмрдврд╝рд╛рдирд╛ред
  • рддреНрд░реБрдЯрд┐рдпреЛрдВ (Misclassifications) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред
  • Overfitting рдпрд╛ bias рдкрд╣рдЪрд╛рдирдирд╛ред
  • Feature learning рдХреА рд╕рдордЭ рдмрдврд╝рд╛рдирд╛ред

ЁЯЪА 2025 рдХреА рдЖрдзреБрдирд┐рдХ Visualization рддрдХрдиреАрдХреЗрдВ:

  • Grad-CAM++: рдЕрдзрд┐рдХ рд╕рдЯреАрдХ class-specific mapsред
  • Integrated Gradients: input attribution рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред
  • DeepSHAP рдФрд░ LIME: Explainable AI рдХреЗ рд▓рд┐рдП hybrid visualizationред
  • Activation Atlases: рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ feature organization visualizationред

ЁЯУЩ рдирд┐рд╖реНрдХрд░реНрд╖:

CNN Visualization рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреЛ тАЬрдмреНрд▓реИрдХ рдмреЙрдХреНрд╕тАЭ рд╕реЗ тАЬрдЧреНрд▓рд╛рд╕ рдмреЙрдХреНрд╕тАЭ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВред 2025 рдореЗрдВ, Explainable AI (XAI) рдХреЗ рдмрдврд╝рддреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде, Visualization рддрдХрдиреАрдХреЗрдВ рдореЙрдбрд▓ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХрд╛ рдЕрднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЪреБрдХреА рд╣реИрдВред

Related Articles

Applications of Deep Learning in Object Detection, Speech/Image Recognition, Video Analysis, NLP, and Medical Science | рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ: рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди, рд╕реНрдкреАрдЪ/рдЗрдореЗрдЬ рд░рд┐рдХрдЧреНрдирд┐рд╢рди, рд╡реАрдбрд┐рдпреЛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕, рдПрдирдПрд▓рдкреА рдФрд░ рдореЗрдбрд┐рдХрд▓ рд╕рд╛рдЗрдВрд╕

рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ: рдСрдмреНрдЬреЗр...

Read More тЖТ

Generative Adversarial Networks (GANs): Concept, Architecture, and Applications | рдЬреЗрдирд░реЗрдЯрд┐рд╡ рдПрдбрд╡рд░реНрд╕реЗрд░рд┐рдпрд▓ рдиреЗрдЯрд╡рд░реНрдХ (GAN): рдЕрд╡рдзрд╛рд░рдгрд╛, рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЬреЗрдирд░реЗрдЯрд┐рд╡ рдПрдбрд╡рд░реНрд╕реЗрд░рд┐рдпрд▓ рдиреЗрдЯрд╡рд░реНрдХ (GA...

Read More тЖТ

Auto-Regressive Models (NADE, MADE, PixelRNN): Concept, Architecture, and Deep Learning Applications | рдСрдЯреЛ-рд░реЗрдЧреНрд░реЗрд╕рд┐рд╡ рдореЙрдбрд▓реНрд╕ (NADE, MADE, PixelRNN): рдЕрд╡рдзрд╛рд░рдгрд╛, рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдСрдЯреЛ-рд░реЗрдЧреНрд░реЗрд╕рд┐рд╡ рдореЙрдбрд▓реНрд╕ (NADE, MADE, PixelRNN): рдЕ...

Read More тЖТ

Markov Chains: Concept, Transition Matrices, and Applications in Deep Learning | рдорд╛рд░реНрдХреЛрд╡ рдЪреЗрди: рдЕрд╡рдзрд╛рд░рдгрд╛, рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдорд╛рд░реНрдХреЛрд╡ рдЪреЗрди: рдЕрд╡рдзрд╛рд░рдгрд╛, рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди ...

Read More тЖТ

Markov Networks (Markov Random Fields): Concept, Structure, and Applications | рдорд╛рд░реНрдХреЛрд╡ рдиреЗрдЯрд╡рд░реНрдХ (Markov Networks): рдЕрд╡рдзрд╛рд░рдгрд╛, рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдорд╛рд░реНрдХреЛрд╡ рдиреЗрдЯрд╡рд░реНрдХ (Markov Random Fields): рдЕрд╡рдзрд╛рд░р...

Read More тЖТ