TensorFlow之文本分类算法-6

news/2024/5/20 4:45:16/文章来源:https://blog.csdn.net/uesowys/article/details/128160894

1 前言

2 收集数据

3 探索数据

4 选择模型

5 准备数据

6 模型-构建训练评估

构建输出层

构建n-gram模型

构建序列模型

GloVe(英文全称是Global Vectors for Word Representation)是一个全球化的英语语境的单词表示的向量集,其使用非监督类型的机器学习算法生成(GloVe在后续章节中详细描述)。

IMDb数据集合与GloVe数据集合的来源不一样,因此,机器学习过程需要进行一些上下文环境的优化与调整才能在不同向量空间中实行相互融合,其调整步骤如下所示:

步骤1:

在第一次运行机器学习的过程中,先不使用嵌入层的向量空间参与学习,也就是,保持权重不变,其他层保持正常学习,在第一次运行机器学习过程中,让权重这些初始值先达到一个比较好的状态,在第二次运行机器学习的过程中,使用嵌入层的向量空间参与到整个神经网络的学习,第二次运行机器学习对整个神经网络的权重进行较好的调整,该过程被称之嵌入层的微调(小幅度的调优)。

步骤2:

步骤1的嵌入层的微调能够取得更好的准确度,但是该过程也大幅度地消耗更多的计算资源。实践证明,只要学习的样本足够多,使用其他的机器学习方式也能取得与嵌入层微调相同的准确度,其他机器学习方式能大幅度地降低计算资源的消耗。

监督型机器学习

监督型机器学习模型训练的数据包括两个部分,特征数据集(问题)以及每个特征对应的标签数据集(答案),该学习方式类似于从一系列的问题以及问题对应的答案中学习,通过机器学习之后,系统掌握了问题与答案之间的映射关系,并将这些问题与答案进行归类为某一个主题,当系统接收到全新的问题的时候,则从这些主题中寻找答案。

非监督型机器学习

非监督型机器学习模型训练的数据只包括一个部分,特征数据集,其学习的目的是从这些未被标签化的特征数据集中进行归类(聚类)于类似的分组。例如,对不同属性的音乐进行分类,然后,将分类所得的音乐集合推送给用户(推荐服务)。

半监督型机器学习

半监督型机器学习模型的数据包括两个部分,特征数据集以及一部分特征数据集对应的标签数据集,由于标签不全,需要通过机器学习推断其他未被标签化的特征数据集,标签推断完成之后,再进行全面的监督型机器学习。

实践证明,通过对比不同的序列化机器学习模型(CNN, sepCNN, RNN (LSTM & GRU), CNN-RNN),sepCNN(在后续章节中详细描述)模型是效率最高的模型,其学习表现比其他模型更加优秀,sepCNN模型(四层)的代码如下所示:

训练模型

训练模型是对前面章节中构建的模型进行训练,训练涉及到的步骤是根据模型的当前状态做出预测,计算预测的准确率,根据预测的准确率更新以及调整神经网络中的权重、参数,从而最小化模型预测的错误,最终使得构建的模型的预测更加准确,训练过程中不断重复这些预测与分析的过程,直到模型达到收敛的效果而结束训练模型的过程,该过程涉及到三个关键参数如下所示:

  •  统计数据(Metric),用于测量模型的表现的优秀程度,在机器学习中使用准确度作为统计数据。

  • 损失函数(Loss function),用于计算一个训练过程中的损失值,然后,调整神经网络的权重,最终,让损失值最小化,对于分类问题,使用交叉熵(cross-entropy)损失函数最适合。

  • 优化器(Optimizer),该函数用于根据损失函数的输出确定如何更新神经网络的权重,例如,Adam优化方法(在后续章节中详细描述)。

这些参数的对照信息如下所示:

如上所示,learning parameter是学习参数类型,Value是学习参数对应的名称。

在训练流程中,主要使用模型的fit函数,根据训练数据集的规模,训练的大部分计算时间都消耗在fit函数中。在训练过程的每次迭代中,从训练数据集中提取batch_size大小的数据样本进行训练,在该次迭代中,使用损失函数计算损失值,根据损失值更新神经网络中的权重值。在训练过程中,经过多次的迭代,训练数据集已经根据batch_size大小处理了所有的批次,则该次训练过程完成,该过程被称之为一次epoch。在每次epoch完成时,使用测试数据集验证该次epoch的训练效果如何,经过多次epoch的训练,验证的训练效果的准确度达标以及准确度达到稳定的状态,则停止训练。训练的超级参数如下所示:

如上所示,Training hyperparameter是超级参数的名称,Value是超级参数对应的值。

Keras技术框架使用前面所述的调优参数以及超级参数的代码如下所示:

7 参数调优

机器学习过程中需要根据实际的需求为模型选择一些超级参数用于定义以及训练。这些参数调整建议如下所示:

模型的层数(Number of layers in the model

神经网络的层数决定其复杂度,层数太多则容易产生训练过多而过度拟合,层数太少则容易产生训练不足,对于MLPs类型的文本分类模型,层数保持在1层、2层、3层,有些场景用2层最合适,对于sepCNNs类型的文本分类模型,层数保持在4层、6层,有些场景用4层最合适

每层的单元数(Number of units per layer

单元是用于数据样本的信息转换,第一层的单元数是由特征数确定,随后的层的单元数是由前一层的输出、具体的扩展或者具体的收缩而确定,为了最小化每层信息在转换过程中信息的丢失,单元数保持的建议值是[8, 16, 32, 64],其中32或者64的单元数表现更优秀

删除比率(Dropout rate

该处理层是用于防止过度拟合,删除一部分比较随机的特征数据,建议范围是0.2–0.5

学习速率(Learning rate

该参数主要用于在多次迭代之间的权重值的变化的速率,保持低学习速率是比较好的设置,但是模型会执行更多的迭代,建议设置值是1e-4,如果训练过程非常缓慢,则建议提升该设置值,如果模型不训练,则建议降低该设置值

sepCNN模型涉及到的超级参数的调整如下所示:

核心大小(Kernel size

卷积的窗口大小,建议值是3或者5   

嵌入层的维度(Embedding dimensions

用于标识嵌入向量空间的大小,每个单词的向量集合的大小,建议值是50–300,GloVe类型的嵌入向量空间的大小,建议值是200

8 部署模型

将训练好模型部署到具体的运行环境中,运行环境包括公用云、私有云、容器云。具体部署方式参考云计算提供商的环境部署说明。

(未完待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_229659.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows ssh免密访问Linux服务器

文章目录1.在Windows上生成公钥和私钥2.将公钥中的内容复制到linux服务器3.确认linux服务器开启了允许SSH免密登录4.确认免密登录配置成功ssh提供了安全的身份认证的策略,在免密登录之前,首先需要一对公钥和私钥。客户端拿着私钥,服务端拿着公…

HTML网页制作代码——简约的旅游图文相册博客HTML模板(12页)HTML+CSS+JavaScript 静态HTML旅行主题网页作业

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

了解世界杯赔率,让您运气更‘好‘(个人分享)

足球世界杯买球赢面计算理论基础实际计算用例:代码实现理论基础 假设有两只球队甲和乙,在双方实力局等的情况下,赢球概率都为0.5%,则有: 甲乙概率胜负1/4胜胜1/4负胜1/4负负1/4 由此可知:甲胜的概率是1/4…

亚马逊云科技推出安全数据湖Amazon Security Lake

2022年12月2日,亚马逊云科技在2022 re:Invent全球大会上宣布,推出Amazon Security Lake,该服务可以自动将客户在云端和本地的安全数据集中到客户在亚马逊云科技账户下专门构建的数据湖中,方便客户针对安全数据做出快速行动。 Am…

教你6招轻松搞定 网站被木马反复篡改

提到网络被恶意篡改,应该让很多做了百度竞价的企业官网怀恨已久了吧?这类行为的目的就是通过这些受害网站获得排名并跳转到违法网站,达到不法的目的。对于企业来说不但损失了百度竞价的费用,还对企业形象造成很大的影响。甚至直接…

[附源码]计算机毕业设计springboot云南美食管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

svg路径动画

前言 最近在开发大屏看板,UI让做一个这样的效果 本来也简单,UI给个git动图放上就好了。但是UI给的图有四五十m,实在是太大了。后来想到了svg路径动画,之前从来没有搞过,就研究了下,由于svg没怎么研究过&a…

实现自定义Spring Boot Starter

实现自定义Spring Boot Starter一、原理二、实战1 自定义 Spring Boot Starter1.1 添加maven依赖1.2 属性类AuthorProperties1.3 自动配置类AuthorAutoConfiguration1.4 业务逻辑AuthorServer1.5 spring.factories2 测试自定义的 Spring Boot Starter2.1 新建module或者新建工程…

Compose 动画艺术探索之动画规格

本篇文章是此专栏的第四篇文章,如果想阅读前三篇文章的话请点击下方链接: Compose 动画艺术探索之瞅下 Compose 的动画Compose 动画艺术探索之可见性动画Compose 动画艺术探索之属性动画 动画规格在上一篇文章中提到过,不过上一篇文章中说的…

[附源码]JAVA毕业设计教材管理(系统+LW)

[附源码]JAVA毕业设计教材管理(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xf…

ARM mkv210_image.c 文件详解

一、mkv210_image.c 的使用演示 裸机程序中的 Makefile(实际上真正的项目的 Makefile 都是这样的)是把程序的编译和链接过程分开的。(平时我们用 gcc a.c -o exe 这种方式来编译时,实际上把编译和链接过程一步完成了。在内部实际…

[附源码]Python计算机毕业设计Django教学辅助系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

一文教会你如何在内网搭建一套属于自己小组的在线 API 文档?

Hello,大家好,我是阿粉,对接文档是每个开发人员不可避免都要写的,友好的文档可以大大的提升工作效率。 阿粉最近将项目的文档基于 Gitbook 和 Gitlab 的 Webhook 功能的在内网部署了一套实时的,使用起来特方便了。跟着…

[附源码]计算机毕业设计JAVA校园拓展活动管理系统

[附源码]计算机毕业设计JAVA校园拓展活动管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

什么是【固件】?

文章目录一、软件 硬件 固件二、BIOS(Basic Input/output System)三、百度百科的解释四、固件的工作原理五、应用六、参考链接一、软件 硬件 固件 通常我们会将硬件和软件分开看待,二者协同工作为我们提供计算机的体验。硬件是摸得着的实体&…

SpringBoot中使用MySQL存用户信息, 日志的使用

SpringBoot中使用MySQL存用户信息 UserController类 package com.tedu.secboot.controller; import com.tarena.mnmp.api.SendParam; import com.tedu.secboot.entity.User; import com.tedu.secboot.util.DBUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory;…

[附源码]计算机毕业设计springboot在线图书销售系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2023年天津天狮学院专升本市场营销专业《管理学》考试大纲

2023天津天狮学院高职升本科市场营销专业入学考试《管理学》考试大纲一、考试性质 《管理学》专业课程考试是天津天狮学院市场营销专业高职升本入学考试的必考科目之一,其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《管理学》考试大纲的编…

LIO-SAM源码解析(四):imuPreintegration.cpp

1. 代码流程 2. 功能说明 这个cpp文件主要有两个类,一个叫IMUPreintegration类,一个叫TransformFusion类。 现在我们分开讲,先说IMUPreintegration类。 关于IMU原始数据,送入imuhandle中: 2.1. imuhandle imu原始…

[附源码]Python计算机毕业设计Django景区直通车服务系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…