机器学习之深度神经网络

这篇具有很好参考价值的文章主要介绍了机器学习之深度神经网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

卷积神经网络与全连接神经网络

前向后向传播推导

通用手写体识别模型

人脸识别模型

电影评论情感分析模型


卷积神经网络与全连接神经网络

卷积神经网络(Convolutional Neural Network,CNN)和全连接神经网络(Fully Connected Neural Network,FCN)都是深度学习领域中常见的神经网络模型。下面是二者的比较。

1)相同点

①都是前馈神经网络模型,由多个神经元构成。

②都可以通过反向传播算法进行训练,优化网络参数以达到最小化损失函数的目的。

③都可以使用多层堆叠的方式来构建深度网络,提高模型的表达能力。

④都可以处理各种类型的数据,如图像、语音、文本、时间序列等。

2)不同点

①结构不同:

CNN 是由卷积层、池化层和全连接层组成的,其中卷积层和池化层是卷积运算和子采样运算,可以提取出图像中的局部特征。CNN 的结构参数小,具有较强的抗噪声能力。

FCN是由多个全连接层组成的,每个神经元都与上一层的所有神经元相连。这种结构使得全连接网络可以学习到非常复杂的函数映射,但是参数量非常大,容易过拟合。

②权重共享不同:

在FCN中,每个神经元都有独立的权值和偏置。而CNN的卷积层和池化层具有权值共享的特点,这使得模型的参数量大大降低,同时也提高了模型的泛化能力。

③可解释性不同:

FCN是一种黑盒子模型,输入和输出之间的映射关系不可解释,无法获得特征的空间分布情况,难以进行特征可视化。而在CNN中,由于卷积核的权值共享和局部连接性,它们在提取特征时具有一定的可解释性,可以更好地理解特征提取过程。

前向后向传播推导

深度神经网络中的误差逆传播算法(backpropagation,BP算法)是一种用于训练神经网络的反向传播算法。它利用梯度下降法来调整网络参数,使得网络的输出尽可能接近目标输出。

首先,我们需要定义一个损失函数(loss function)。在训练过程中,我们需要将该损失函数最小化,以使网络输出和目标输出的差异最小化。一般情况下,我们会使用均方误差(MSE)或交叉熵(Cross-Entropy)作为损失函数。

接着,利用前向传播算法计算网络的输出值。前向传播算法是指输入数据从输入层到输出层的正向传播过程,整个过程中的每一个神经元都会进行一次乘加运算。

然后,我们需要根据输出误差对每个参数进行更新。这里使用反向传播算法来计算参数的梯度,从而实现参数更新。反向传播算法的核心思想是将误差从输出层一直传递到输入层,并根据每个参数的贡献程度来分配误差值。具体来说,误差的传递由两部分组成:前向传播和反向传播。

在前向传播时,我们通过正向计算来得到输出值;在反向传播时,我们先计算输出误差,再将误差反向传递,并根据每个参数的贡献程度来分配误差值。最后,我们可以使用梯度下降法来调整网络参数,使得网络的输出尽可能接近目标输出。

1)前向传播

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

 2)后向传播

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

通用手写体识别模型

使用的数据集为MNIST手写数字识别数据集,包含了0到9这10个数字的灰度图片,一共有 60,000 张训练图片和 10,000 张测试图片,每张图片的大小为 28 x 28 像素。

我们用一个3×3的卷积层来提取图像的特征,激活函数为ReLU函数,接着用一个2×2的最大池化层降低采样,减少参数数量,最后添加一个全连接层,激活函数为softmax函数,给予10个输出神经元,表示0到9的数字分类。

使用了1个卷积核,训练了5轮,训练过程如图7所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图7手写体MNIST训练过程

训练出的手写体识别模型在测试集上的识别率和损失随训练的轮次的变化如图8所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图8 手写体MNIST识别率

具体数据如表4所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

表4 手写体MNIST

由结果可以看出,训练出来的手写体识别模型,其拟合效果和泛化效果都比较好。

具体代码实现请看: Keras-深度学习-神经网络-手写数字识别模型_一片叶子在深大的博客-CSDN博客

人脸识别模型

我们首先通过python的PIL库读取图片数据,将所有图片数据存储在numpy数组中,将人脸数据处理成一堆张量,并分成训练集和测试集,然后构建出图片的标签张量。

接着构建深度神经网络,这里我们构建的是卷积神经网络,(Convolutional Neural Network, CNN)模型。这个模型包含了一个卷积层、一个池化层、一个全连接层。其中卷积层用来提取图片中的特征,池化层用来降低数据量,全连接层实现了分类任务。这里我们使用的是3X3的卷积层,激活函数使用的ReLU激活函数,还有2X2的最大池化层,全连接层的激活函数为softmax激活函数。

以下是python构建的卷积神经网络在ORL、FERET和YaleFace三个人脸数据集的训练和表现情况。

  • ORL人脸数据集

ORL人脸数据集有40个人的人脸数据,每个人10张照片,一共400张照片,照片的维数是46×56。我们将每个人的前5张照片作为训练集,共200张,剩下的5张作为测试集,最后的全连接层采用40个神经元作为模型的输出,使用了64个卷积核,训练了20轮,训练过程如图1所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图1 ORL训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图2所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图2 ORL识别率

具体数据如表1所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

表1 ORL

由结果可以看出,ORL数据集训练出来的模型,其拟合效果和泛化效果都比较好。

  • FERET人脸数据集

FERET人脸数据集有200个人的人脸数据,每个人7张照片,一共1400张照片,照片的维数是80×80。我们将每个人的前4张照片作为训练集,共800张,剩下的3张作为测试集,最后的全连接层采用200个神经元作为模型的输出,使用了4个卷积核,训练了20轮,训练过程如图3所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图3 FERET训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图4所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图4 FERET识别率

具体数据如表2所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

表2 FERET

由结果可以知道,FERET数据集训练出来的模型,其拟合效果很好,但泛化效果并不理想,分析原因可能是因为训练的数据过少,加上FERET的噪声影响比较大,最后一张照片光线很暗,导致了测试集的识别率不高。

  • Yale Face人脸数据集

Yale Face人脸数据集有15个人的人脸数据,每个人11张照片,一共165张照片,照片的维数是80×100。我们将每个人的前6张照片作为训练集,共90张,剩下的5张作为测试集,最后的全连接层采用15个神经元作为模型的输出,使用了16个卷积核,训练了20轮,训练过程如图5所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图5 Yale Face训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图6所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图6 Yale Face识别率

具体数据如表3所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

表3 Yale Face

由结果可以看出,Yale Face数据集训练出来的模型,其拟合效果和泛化效果都比较好。

具体代码实现请看: Keras-深度学习-神经网络-人脸识别模型_一片叶子在深大的博客-CSDN博客

电影评论情感分析模型

使用到的数据集为IMDB电影评论情感分类数据集,该数据集包含 50,000 条电影评论,其中 25,000 条用于训练,25,000 条用于测试。每条评论被标记为正面或负面情感,因此该数据集是一个二分类问题。

我们构建一个包含嵌入层、全局平均池化层和输出层的神经网络,输入数据是一组英文电影评论,输出结果是二分类标签,即正面评价或负面评价。

其中,嵌入层将单词索引序列编码为连续的实数向量表示;全局平均池化层将这些向量取平均值去除位置信息,并将其映射到固定长度的向量中;输出层则使用 sigmoid 激活函数进行二分类预测。使用 Adam 优化器和二元交叉熵损失函数进行模型训练,并以准确率作为评估指标,共训练10轮,训练过程如图9所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图9 IMDB电影评论情感分析训练过程

训练出的电影评论情感分析模型在测试集上的准确率和损失随训练的轮次的变化如图10所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

图10情感分析 准确率

具体数据如表5所示。

机器学习之深度神经网络,机器学习,机器学习,dnn,人工智能

表5 情感分析

由结果可以知道,我们训练出来的电影评论情感分析模型,其数据的拟合效果和测试的泛化效果都比较理想。

具体代码实现请看:Keras-深度学习-神经网络-电影评论情感分析模型_一片叶子在深大的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-518688.html

到了这里,关于机器学习之深度神经网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 毕业设计选题-基于深度学习的车道线检测算法识别系统 人工智能 机器学习 卷积神经网络

    目录 前言 课题背景和意义 实现技术思路 一、车道线检测方法 1.1 卷积神经网络 1.2 注意力机制 二、 数据集 三、实验及结果分析 3.1 实验环境搭建 3.2 模型训练 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学

    2024年02月22日
    浏览(76)
  • 机器学习之深度神经网络

    目录 卷积神经网络与全连接神经网络 前向后向传播推导 通用手写体识别模型 人脸识别模型 电影评论情感分析模型 卷积神经网络(Convolutional Neural Network,CNN)和全连接神经网络(Fully Connected Neural Network,FCN)都是深度学习领域中常见的神经网络模型。下面是二者的比较。

    2024年02月12日
    浏览(52)
  • 精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型

    精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型。 机器学习 人工智能的核心,是使计算机具有智能的根本途径。机器学习专注于算法,允许机器学习而不需要编程,

    2024年01月25日
    浏览(73)
  • 研习深度神经网络DNN

    上图是一个感知机模型,有若干个输入和一个输出(输出的结果只可以是1或-1) 输入和输出有一个线性关系: 神经元激活函数:(二分类)  由于这个简单的感知机只可以进行二分类,则对于感知机进行升级,升级如下: 1)加入隐藏层,从而增加模型的表达能力,同时也增

    2024年02月01日
    浏览(38)
  • 深度神经网络DNN的理解

    上图是一个感知机模型,有若干个输入和一个输出(输出的结果只可以是1或-1) 输入和输出有一个线性关系: 神经元激活函数:(二分类)  由于这个简单的感知机只可以进行二分类,则对于感知机进行升级,升级如下: 1)加入隐藏层,从而增加模型的表达能力,同时也增

    2023年04月09日
    浏览(39)
  • 人工智能|机器学习——循环神经网络的简洁实现

    循环神经网络的简洁实现 如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 定义模型 高级API提供了循环神经网络的实现。 我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层 rnn_layer 。 事实上,我们

    2024年02月04日
    浏览(60)
  • 【机器学习】——神经网络与深度学习

    目录 引入 一、神经网络及其主要算法 1、前馈神经网络 2、感知器 3、三层前馈网络(多层感知器MLP) 4、反向传播算法 二、深度学习 1、自编码算法AutorEncoder 2、自组织编码深度网络 ①栈式AutorEncoder自动编码器 ②Sparse Coding稀疏编码 3、卷积神经网络模型(续下次) 拓展:

    2024年02月10日
    浏览(50)
  • 【机器学习】——深度学习与神经网络

    目录 引入 一、神经网络及其主要算法 1、前馈神经网络 2、感知器 3、三层前馈网络(多层感知器MLP) 4、反向传播算法 二、深度学习 1、自编码算法AutorEncoder 2、自组织编码深度网络 ①栈式AutorEncoder自动编码器 ②Sparse Coding稀疏编码 3、卷积神经网络模型(续下次) 拓展:

    2024年02月09日
    浏览(43)
  • 鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法

    鱼类识别系统。使用Python作为主要编程语言开发,通过收集常见的30种鱼类(‘墨鱼’, ‘多宝鱼’, ‘带鱼’, ‘石斑鱼’, ‘秋刀鱼’, ‘章鱼’, ‘红鱼’, ‘罗非鱼’, ‘胖头鱼’, ‘草鱼’, ‘银鱼’, ‘青鱼’, ‘马头鱼’, ‘鱿鱼’, ‘鲇鱼’, ‘鲈鱼’, ‘鲍鱼’, ‘鲑

    2024年02月02日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包