卷积神经网络CNN

From @AI

卷积神经网络(CNN)是深度学习中的一种强大的模型,尤其在图像处理领域表现出色。

它的设计灵感来源于人类的视觉系统,试图模拟人眼对视觉信息的处理方式。CNN通过

一系列的卷积层、池化层和全连接层来提取图像中的特征,并进行分类或其他任务

卷积层的工作原理

卷积层是CNN中的核心,它使用一组可学习的滤波器(也称为卷积核)来扫描整个图像。每个滤波器负责从原始图像数据中提取特定类型的特征,如边缘、纹理等。这些特征随后被传递到网络的更深层次,以进行更复杂的图像分析。

在卷积操作中,滤波器在输入图像上滑动,对应位置的像素值与滤波器的权重相乘后求和,得到输出特征图的一个像素值。这个过程可以通过下面的代码示例来模拟:

import numpy as np
# 假设输入图像是一个6x6的灰度图像(值范围0-255)
input_image = np.array([
   [64, 34, 23, 12, 45, 67],
   [98, 87, 76, 65, 54, 43],
   [11, 22, 33, 44, 55, 66],
   [77, 88, 99, 11, 22, 33],
   [44, 55, 66, 77, 88, 99],
   [31, 42, 53, 64, 75, 86]
])
# 假设卷积核是一个3x3的滤波器
filter = np.array([
   [-1, 0, 1],
   [-2, 0, 2],
   [-1, 0, 1]
])
# 执行卷积操作
output_feature_map = np.zeros((4, 4))
for i in range(4):
   for j in range(4):
       # 提取当前窗口
       current_window = input_image[i:i+3, j:j+3]
       # 执行元素级乘法并求和
       convolved_value = np.sum(current_window * filter)
       output_feature_map[i, j] = convolved_value
print(output_feature_map)

池化层的作用

池化层(Pooling Layer)通常紧随卷积层之后,它的主要作用是降低特征图的空间尺寸,从而减少网络中的参数数量和计算量。池化操作通常有最大池化(Max Pooling)和平均池化(Average Pooling)两种。最大池化会选取特征图中每个小区域的最大值,而平均池化则计算区域内所有值的平均值。

全连接层的功能

全连接层(Fully Connected Layer)位于CNN的末端,它将前面层次提取的所有特征整合在一起,以便进行最终的分类或回归任务。在全连接层中,每个输入节点都与输出节点全连接,这意味着网络将学习输入数据中的全局模式。

输出层的任务

输出层是CNN的最后一层,它通常使用softmax函数来计算每个类别的概率分布。在分类任务中,输出层的节点数与类别数相同,每个节点的输出值代表了输入图像属于对应类别的概率。

通过这些层次的组合,CNN能够从简单到复杂逐步提取图像的特征,并进行有效的分类。这种层次化的特征提取方式使得CNN在图像识别等任务中表现出色。

posted @ 2025-10-23 11:23  PKICA  阅读(6)  评论(0)    收藏  举报