深度学习卷积神经网络图像识别介绍

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 深度学习卷积神经网络图像识别介绍

1 手写体识别

在机器学习、神经网络领域,有一个应用层的经典“Hello World”:手写体识别,于是它成为了众多入门者的实践项目。

这是一个手写体“5”,它是由 28 * 28 的灰度图,每一个像素用一个字节的无符号数表示它的等级。如果是0,那就是最暗(纯黑色);如果是255,那就是最亮(纯白色)。


现实中,人毕竟不同于精准但呆板的计算机,每次手写一个数字都可能不太一样,比如第一次我们写成这样:

第二次由于手抖写成这样:

这时候就没有什么确定的规则去根据像素的灰度值判断是什么数字了,换句话说这不再是一个适用于计算机机械逻辑做判断的问题,我们需要用有一定的容错能力的系统来做这件事,很明显神经网络是一个很好的选择。

我们把mnist数据集(手写图片数据)以784维向量作为输入,依次送入神经网络进行训练就好。


模型在训练集和测试集上的不同表现导致了机器学习中三种常见的现象:

1.训练集准确率很低,额,这个模型多半是废了,这个现象称为欠拟合,可能模型过于简单

2.训练集准确率高,测试集准确率低,说明该模型拥有很好的泛化能力,有能力去解决新的问题

3.训练集和测试集准确率都很高,说明这个模型的泛化能力不行,称为过拟合,原因有很多,比如用一个过分复杂的模型拟合一个实则简单的问题,,当然解决过拟合也有很多方式,比如:调整神经网络结构、L2正则化、节点失活(Dropout)正则化等等


当然这节我们主要以全连接神经网络讲解,而图像作为一个二维物体,相邻元素之间总是存在关联的,如果我们强行把它降低到一维也就破坏了这些关联,失去了重要的特征。在实际中,卷积神经网络会有更好的效果,也是更为常用的方法。这也说明了重要特征对提高模型的泛化能力有很大作用。

至于如何提取重要特征,这里简单说明一下,我们还是以上面的“5”为例:

💡嗯…怎么快速理解这个卷积核呢,我们以一幅茶杯图像为例,思考卷积后的图像是什么样子呢?

结果发现,把垂直的边沿给提取出来了。

我们再以8*8的小图来看一下细节:

你会发现,结果图片都有垂直条纹的特征

我们在搞一张极端的情况,还是以上面的杯子为例:

我们对这个图像进行卷积,机智如你,会发现:只有中间两列有值,其他两列均为0

对于两边,它们就会在左右的一正一负相互抵消

对于中间部分,左大右小完全不对称,加起来之后就会把这个值变得很大,或者说特征被凸显出来了

2 炼丹

我们对上述过程代码实现:mnist_recognizer.py

# 导入数据集
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
import matplotlib.pyplot as plt
# one-hot编码转化
from keras.utils import to_categorical
(X_train, Y_train), (X_test, Y_test) = mnist.load_data()
# 查看样本数据的类型:60000, 28, 28
print("X_train.shape:" + str(X_train.shape))
print("X_test.shape:" + str(X_test.shape))
print("Y_train.shape:" + str(Y_train.shape))
print("Y_test.shape:" + str(Y_test.shape))
# # 打印标签值
# print(Y_train[0])
# # 训练集的第一个样本数据,绘图模式:灰度图
# plt.imshow(X_train[0], cmap="gray")
# plt.show()
# 28 * 28 = 784 二维变一维
X_train = X_train.reshape(60000, 784) / 255.0 # 减少差距,加快梯度下降
X_test = X_test.reshape(10000, 784) / 255.0
Y_train = to_categorical(Y_train, 10)
Y_test = to_categorical(Y_test, 10)
model = Sequential()
model.add(Dense(units=256, activation='relu', input_dim=784))
model.add(Dense(units=256, activation='relu'))
model.add(Dense(units=256, activation='relu'))
model.add(Dense(units=10, activation='softmax'))
# 使用多分类交叉熵代价函数
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.05), metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=5000, batch_size=256)
loss, accuracy = model.evaluate(X_test, Y_test)
print("loss" + str(loss))
print("accuracy" + str(accuracy))

目录
相关文章
|
2天前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
15 9
|
3天前
|
机器学习/深度学习 人工智能 算法
探索深度学习在图像识别中的应用及其挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了其背后的原理、当前的研究进展以及面临的主要挑战。通过对比传统图像处理方法,我们展示了深度学习如何提高识别准确率和效率。同时,本文还讨论了数据偏差、模型泛化能力等关键问题,并提出了未来研究的可能方向。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
深度学习在图像识别中的应用与挑战
随着人工智能技术的飞速发展,深度学习已成为推动图像识别领域进步的关键力量。通过模拟人脑处理信息的方式,深度学习模型能够自动提取高维数据特征,实现对复杂图像的高效识别。然而,尽管取得了显著成就,深度学习在图像识别中仍面临数据偏差、模型泛化能力不足以及对抗性攻击等挑战。本文将探讨深度学习在图像识别领域的应用现状,分析其面临的主要技术挑战,并提出未来研究的可能方向。
|
20小时前
|
机器学习/深度学习 自动驾驶 安全
探索深度学习在图像识别中的应用
本文将深入探讨深度学习技术,尤其是卷积神经网络(CNN)在图像识别领域的应用。我们将从基础理论出发,逐步解析深度学习模型如何通过多层次的抽象学习来识别和处理图像数据。同时,文章将展示一些实际案例,包括面部识别、自动驾驶车辆视觉系统等,以体现深度学习技术的实际应用价值。最后,我们将讨论该技术面临的挑战和未来发展趋势。
|
20小时前
|
机器学习/深度学习 传感器 自动驾驶
探索深度学习在图像识别中的应用
本文深入探讨了深度学习技术在图像识别领域的应用及其带来的变革。通过分析深度学习模型的基本原理和结构,揭示了其在处理复杂视觉数据方面的高效性。文章进一步讨论了深度学习如何推动自动化图像分类、目标检测与追踪以及语义分割等任务的进步,并通过具体案例展示了深度学习在图像识别中的实际效果。最后,本文指出了当前深度学习技术面临的挑战及未来发展方向。
|
22小时前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习在图像识别中的应用与挑战
随着人工智能领域的迅速发展,深度学习技术已成为推动图像识别进步的核心力量。本文将探讨深度学习在图像识别中的创新应用,分析其面临的主要挑战,并提出相应的解决策略。通过深入讨论深度学习模型的优化、数据集的多样性和质量、以及对抗性攻击等问题,本文旨在为研究者和开发者提供指导,以促进图像识别技术的进一步发展。
|
1天前
|
机器学习/深度学习 边缘计算 计算机视觉
深度学习在图像识别中的应用与挑战
【7月更文挑战第15天】随着人工智能技术的飞速发展,深度学习已成为推动图像识别技术革新的核心力量。从卷积神经网络到深度强化学习,深度学习模型不断刷新着图像处理的边界。本文将深入探讨深度学习在图像识别领域的应用现状、面临的挑战以及未来的发展趋势,旨在为相关领域的研究者和工程师提供参考和启示。
|
2天前
|
机器学习/深度学习 安全 数据可视化
深度学习在图像识别中的应用与挑战
【7月更文挑战第14天】随着人工智能技术的迅猛发展,深度学习已成为推动图像识别技术革新的核心驱动力。本文旨在探讨深度学习如何重塑图像识别领域,揭示其背后的技术原理,分析当前面临的主要挑战,并展望未来的发展趋势。通过深入剖析深度学习模型如卷积神经网络(CNNs)在图像识别任务中的应用实例,本文将提供对深度学习技术在处理视觉信息方面能力的全面理解,同时指出数据偏差、模型泛化能力不足等关键问题,为研究人员和工程师提供实践指导和未来研究方向。
|
4天前
|
机器学习/深度学习 监控 自动驾驶
深度学习在图像识别中的应用与挑战
【7月更文挑战第12天】本文将探讨深度学习技术在图像识别领域的应用及其面临的挑战。我们将首先介绍深度学习的基本原理和关键技术,然后详细讨论其在图像识别中的具体应用,包括面部识别、物体检测和场景理解等。最后,我们将分析当前深度学习在图像识别领域所面临的主要挑战,如数据偏见、模型泛化能力和计算资源需求等。
14 4
|
4天前
|
机器学习/深度学习 人工智能 监控
深度学习在图像识别中的应用与挑战
【7月更文挑战第12天】随着人工智能技术的飞速发展,深度学习已经成为图像识别领域的核心技术。本文将探讨深度学习如何改变图像识别的面貌,包括其在特征提取、目标检测和分类方面的应用。同时,我们也将分析深度学习面临的主要挑战,如过拟合、数据集偏差和模型解释性问题,并提出相应的解决策略。通过深入讨论,旨在为深度学习在图像识别领域的未来发展提供洞见。

相关实验场景

更多