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 тЖТ