【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】3.34 用NumPy实现卷积神经网络
3.34 用NumPy实现卷积神经网络
3.34.1 文章目录
3.34.2 卷积神经网络的基本概念
3.34.2.1 什么是卷积神经网络
卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理具有网格结构的数据(如图像)的神经网络。CNN通过卷积层、池化层和全连接层等操作,有效地捕捉图像中的局部特征和层次结构。
3.34.2.2 卷积层
卷积层是CNN的核心,通过卷积操作提取图像的局部特征。卷积操作可以理解为一个小的滤波器在图像上滑动,对每个位置进行加权求和。卷积层的基本参数包括:
- 滤波器(Kernel):一个小的矩阵,用于在图像上进行卷积操作。
- 步长(Stride):滤波器在图像上滑动的步长。
- 填充(Padding):为了保持输出图像的尺寸,可以在图像边缘添加填充。
3.34.2.3 池化层
池化层用于降低卷积层输出的维度,减少参数数量,提高模型的计算效率。常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。
- 最大池化:在每个池化窗口内选择最大值。
- 平均池化:在每个池化窗口内计算平均值。
3.34.2.4 全连接层
全连接层将卷积层和池化层提取的特征映射到输出空间,通常用于分类任务。每个神经元与前一层的所有神经元相连,形成一个密集的连接。
3.34.2.5 激活函数
激活函数用于引入非线性,使得神经网络能够学习复杂的函数。常见的激活函数有:
- ReLU:Rectified Linear Unit, ReLU ( x ) = max ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)- Sigmoid: Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x) = \frac{1}{1 + e^{-x}} Sigmoid(x)=1+e−x1
- Tanh: Tanh ( x ) = e x − e − x e x + e − x \text{Tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} Tanh(x)=ex+e−xex−e−x
3.34.3 使用NumPy实现卷积神经网络的步骤
3.34.3.1 数据准备
在实现CNN之前,首先需要准备数据。对于图像分类任务,数据通常是图像和对应的标签。
import numpy as np
# 生成示例数据
X = np.random.rand(100, 28, 2
代码学习,前言技术分享,深度分析编程技术,普及科普编程技术,天天都要敲代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)