用户名:  密码:   
网站首页即时通讯活动公告最新消息科技前沿学人动向两岸三地人在海外历届活动关于我们联系我们申请加入
栏目导航 — 美国华裔教授专家网科技动向科技前沿
关键字  范围   
 
讲透一个强大的算法模型,CNN!!
来源:程序员学长 | 2024/10/10 19:26:04 | 浏览:47 | 评论:0

大家好,我是小寒

今天给大家介绍一个超强的算法模型,CNN

卷积神经网络(CNN)是一种深度学习模型,主要用于处理具有网格结构(如图像)的数据。CNN 在计算机视觉领域表现尤为突出,广泛应用于图像分类、目标检测、图像生成等任务。

CNN 通过引入卷积层、池化层等特殊层,能够有效提取数据的局部特征,同时减少参数量,提升训练效率和模型的泛化能力。
讲透一个强大的算法模型,CNN!!

CNN 的基本组成结构
一个典型的卷积神经网络通常由以下几个部分组成。
卷积层
卷积层是 CNN 的核心组件。它通过卷积操作来提取输入数据的局部特征。
卷积操作是将一个小的滤波器(filter)或者称为卷积核(kernel)在输入数据上滑动,进行逐元素的点积运算,从而生成一个特征图(feature map)。
局部连接:卷积核只作用于输入图像的局部区域,因此每个输出特征仅与输入图像的一部分有关。
权重共享:卷积核在输入图像的不同区域重复使用,从而减少了模型的参数数量。
讲透一个强大的算法模型,CNN!!

池化层

池化层的作用是减少特征图的尺寸,降低计算复杂度,同时保留重要特征。常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。
最大池化:选取池化窗口内的最大值作为输出,保留了最显著的特征。
平均池化:计算池化窗口内的平均值,平滑特征图。
讲透一个强大的算法模型,CNN!!

全连接层

卷积层和池化层的输出(特征图)一般会展开成一个一维向量,并输入到全连接层。

全连接层类似于传统的前馈神经网络,每个节点与上一层的所有节点相连。

全连接层用于综合卷积层和池化层提取的特征并输出最终的分类结果。


讲透一个强大的算法模型,CNN!!
卷积神经网络的工作流程
讲透一个强大的算法模型,CNN!!
输入层:输入图像数据。

卷积层:提取图像的局部特征,通过多个卷积层逐步提取更高层次的特征。

池化层:对特征图进行下采样,减少数据维度。

激活函数:引入非线性特性,使模型能够学习复杂的特征。

全连接层:将提取的特征整合并映射到分类空间。

输出层:通常使用 Softmax 函数进行多分类任务,输出每个类别的概率分布。

案例分享
以下是一个使用卷积神经网络(CNN)进行手写数字识别的示例代码,利用的是经典的 MNIST 数据集。
首先导入必要的 python 库。
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
然后加载和预处理数据。
# 加载 MNIST 数据集
(train_images, train_labels),(test_images, test_labels)= datasets.mnist.load_data()

train_images = train_images.reshape((train_images.shape[0], 28, 28, 1)).astype('float32')/ 255
test_images = test_images.reshape((test_images.shape[0], 28, 28, 1)).astype('float32')/ 255

plt.figure(figsize=(8, 4))
for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i].reshape(28, 28), cmap=plt.cm.binary)
    plt.xlabel(train_labels[i])
plt.show()
讲透一个强大的算法模型,CNN!!

接下来,构建 CNN 模型

# 构建卷积神经网络模型
model = models.Sequential()

# 第一层卷积,32 个过滤器,大小为 3x3,激活函数为 ReLU,输入形状为 28x28x1
model.add(layers.Conv2D(32,(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))  # 最大池化层

# 第二层卷积,64 个过滤器,大小为 3x3
model.add(layers.Conv2D(64,(3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# 第三层卷积,64 个过滤器,大小为 3x3
model.add(layers.Conv2D(64,(3, 3), activation='relu'))

# 全连接层
model.add(layers.Flatten())  # 将卷积层的输出展开为一维向量
model.add(layers.Dense(64, activation='relu'))  # 全连接层
model.add(layers.Dense(10, activation='softmax'))  # 输出层,10 个分类,使用 softmax 激活

model.summary()
讲透一个强大的算法模型,CNN!!


然后,编译和训练模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

history = model.fit(train_images, train_labels, epochs=5,
                    validation_data=(test_images, test_labels))


# 绘制训练和验证损失曲线
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend(loc='upper right')
plt.show()
讲透一个强大的算法模型,CNN!!

最后,对测试集进行预测

predictions = model.predict(test_images)
plt.figure(figsize=(8, 4))
for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(test_images[i].reshape(28, 28), cmap=plt.cm.binary)
    plt.xlabel(f"True:{test_labels[i]}, Pred:{predictions[i].argmax()}")
plt.show()

讲透一个强大的算法模型,CNN!!

相关栏目:『科技前沿
这样图解Transformer应该没人看不懂了吧——Transformer工作原理 2024-10-16 [29]
Nature:智能体涌现出语言 2024-10-16 [24]
50个顶级ChatGPT论文指令 2024-10-10 [74]
推荐五种简单有效的数据可视化方式 2024-10-10 [60]
这么有深度的文章是ChatGPT写的? 2024-10-10 [52]
人类与 AI 协同的三种模式 2024-10-10 [65]
11 种经典时间序列预测方法! 2024-10-09 [49]
美国宇航局(NASA)航天器发现木卫二咸海中可能存在生命! 2024-10-09 [69]
放弃Shopify,10分钟用cursor做一个免费跨境独立站 2024-10-09 [59]
Codon加持,Python 编译速度提升100倍?几乎可以拳打 c/c++! 2024-10-09 [57]
相关栏目更多文章
最新图文:
游天龙:《唐人街》是如何炼成的:UCLA社会学教授周敏的学术之路 :“为什么海外华人那么爱国,但是让他回国却不愿意?...“ :学术出版巨头Elsevier 彻查433名审稿人“强迫引用”黑幕 :中国336个国家重点实验室布局 :中澳政府联合出手打击洗钱和逃税漏税 大量中国居民海外账户遭冻结 :摄影师苏唐诗与寂寞百年的故宫对话6年,3万张照片美伦美奂 :大数据分析图解:2019中国企业500强 张梦然:英国惠康桑格研究所:人体内的微生物与出生方式有关
更多最新图文
更多《即时通讯》>>
 
打印本文章
 
您的名字:
电子邮件:
留言内容:
注意: 留言内容不要超过4000字,否则会被截断。
未 审 核:  是
  
关于我们联系我们申请加入后台管理设为主页加入收藏
美国华裔教授专家网版权所有,谢绝拷贝。如欲选登或发表,请与美国华裔教授专家网联系。
Copyright © 2024 ScholarsUpdate.com. All Rights Reserved.