人工智能模型训练技术,正则化!

news/2024/11/19 9:26:08/文章来源:https://www.cnblogs.com/jellyai/p/18554210

前一篇:《人工智能模型训练技术:随机失活,丢弃法,Dropout》

序言:让人工智能模型变得更“聪明”的方法之一,就是减少“过拟合”(读死书)的问题,从而提升模型的“泛化能力”,也就是它面对新问题时的适应能力。在前面,我们讲解了最常用的“随机丢弃”法,本节将带大家了解另一种重要的方法——“正则化”。

那么,正则化主要做什么呢?用现实生活中的案例来比喻,正则化的作用就像学校里的老师,目的是引导学生往正确的方向走,而不是死记硬背课本,或者因为某些考试题目熟悉而侥幸得高分。老师会通过约束学生的行为,比如规范学习方法、减少偏科等,让学生学到的是通用的规律和解决问题的能力,而不是偏离正常轨道或者学到无用的信息。同样,正则化在人工智能中通过约束模型的权重等机制,帮助模型避免过拟合,提升它面对新数据的表现能力。

使用正则化

正则化是一种通过减少权重的极端化(polarization)来防止过拟合的技术。如果某些神经元的权重过大,正则化会对它们进行“惩罚”。总体来说,正则化有两种主要类型:L1 和 L2。

• L1 正则化 通常被称为套索正则化(lasso,最小绝对收缩和选择算子)。它的作用是帮助我们忽略权重为零或接近零的值,当计算层的结果时,这些权重会被有效地“抛弃”。

• L2 正则化 通常被称为岭回归(ridge regression),因为它通过计算权重的平方,将非零值和零值(或接近零的值)之间的差异放大,从而产生一种“山脊效应”。

这两种方法还可以结合起来,形成一种叫做弹性正则化(elastic regularization)的技术。

对于像我们当前这种自然语言处理问题,L2 正则化 是最常用的。你可以通过 kernel_regularizer 属性将它添加到 Dense 层中,这个属性接受一个浮点值作为正则化因子。这是另一个可以用来优化模型的超参数,值得尝试!

以下是一个示例代码:

model = tf.keras.Sequential([

tf.keras.layers.Embedding(vocab_size, embedding_dim),

tf.keras.layers.GlobalAveragePooling1D(),

tf.keras.layers.Dense(8, activation='relu',

kernel_regularizer=tf.keras.regularizers.l2(0.01)),

tf.keras.layers.Dense(1, activation='sigmoid')

])

在像这样的简单模型中,添加正则化的影响并不会特别大,但它确实让训练损失和验证损失的曲线变得更加平滑了一些。在这种场景下可能有点“用力过猛”,但和 Dropout 一样,了解如何使用正则化来防止模型过度专注(overspecialized)是一个非常重要的技能。

其他优化的考虑

虽然我们已经通过之前的修改得到了一个过拟合更少、性能更好的模型,但还有其他超参数可以进行实验。例如,我们之前将最大句子长度设置为 100,但这个值纯粹是随意选的,可能并不是最佳值。一个好主意是探索语料库,看看有没有更合适的句子长度。

以下是一个代码片段,用来检查句子的长度并将它们从短到长排序后绘制成图表:

xs = []

ys = []

current_item = 1

for item in sentences:

xs.append(current_item)

current_item += 1

ys.append(len(item))

newys = sorted(ys)

import matplotlib.pyplot as plt

plt.plot(xs, newys)

plt.show()

图 6-16 展示了这个代码的结果。

图 6-16:探索句子长度

在整个 26,000 多条语料中,长度达到 100 个单词或以上的句子不到 200 条。所以,把句子长度的最大值设为 100,就会引入很多不必要的填充(padding),这会影响模型的性能。如果把最大长度减少到 85,仍然可以覆盖 26,000 条语料中的 99% 以上,几乎不需要任何填充。

总结:正则化也是为了让模型变聪明的一种方法,即增强模型的泛化能力。它的角色就像我们从小到大的老师,负责引导和规范我们的学习框架和方向。下一节我们将把通过各种方法优化后训练好的模型,用于实际应用——分类新闻中的句子并进行预测。

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

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

相关文章

AlmaLinux 9.5 正式版发布 - RHEL 二进制兼容免费发行版

AlmaLinux 9.5 正式版发布 - RHEL 二进制兼容免费发行版AlmaLinux 9.5 正式版发布 - RHEL 二进制兼容免费发行版 由社区提供的免费 Linux 操作系统,RHEL 二进制兼容发行版 请访问原文链接:https://sysin.org/blog/almalinux-9/ 查看最新版。原创作品,转载请保留出处。 作者主…

尚硅谷Docker实战教程学习笔记

尚硅谷Docker实战教程学习笔记尚硅谷Docker实战教程学习笔记 我从没想过因为即将要学习dockerfile而激动,也因这激动而顿感羞愧。————20241029 目录尚硅谷Docker实战教程学习笔记写在前面1. Docker简介2. Docker安装3. Docker常用命令4. Docker镜像5. 本地镜像发布到阿里云…

20222405 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 信息搜集是网络攻防的关键环节,通过分析目标系统获取有价值的信息,分为被动收集和主动扫描两种方式。被动收集利用 Google Hacking、WHOIS 等工具从公开资源中提取域名、IP 地址、子域等数据;主动扫描则借助 nmap 等工具识别目标的开放端口、服务及可能存在的漏洞…

京准电钟:北斗卫星同步时钟(NTP授时)助力智慧教育

京准电钟:北斗卫星同步时钟(NTP授时)助力智慧教育京准电钟:北斗卫星同步时钟(NTP授时)助力智慧教育 京准电钟:北斗卫星同步时钟(NTP授时)助力智慧教育 京准电子科技官微——ahjzsz 第一部分 网络时间同步显示系统概述: 医院、学校网络时间同步显示系统是由高精度GPS(…

织梦栏目伪静态出现Request Error!

问题:栏目伪静态出现Request Error! 解决办法:检查出现问题的栏目文件保存目录,确保目录路径末尾没有多余的 /。 将末尾的斜杠去掉,保存后页面访问应恢复正常。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Jav…

修改网站是修改源代码吗,了解网站修改的基本概念

什么是网站源代码:网站源代码是指构成网站的所有文件,包括HTML、CSS、JavaScript、PHP等。这些文件共同决定了网站的结构、样式和功能。修改网站的方式:通过后台管理界面:大多数现代网站都使用内容管理系统(CMS),如WordPress、Joomla等。通过后台管理界面,用户可以方便…

公司网站数据库修改软件,如何使用数据库管理软件修改公司网站数据库

使用数据库管理软件可以方便地修改公司网站的数据库。以下是具体步骤:安装数据库管理软件:下载并安装数据库管理软件,如phpMyAdmin、MySQL Workbench等。连接数据库:打开数据库管理软件,输入数据库的连接信息,包括服务器地址、用户名和密码。选择数据库:在数据库管理软件…

织梦网站的小图标修改,如何在织梦CMS中修改网站小图标

修改织梦CMS的网站小图标(Favicon)可以提升网站的视觉效果。以下是具体步骤:准备新的图标文件:准备一个16x16像素或32x32像素的PNG或ICO格式的图标文件。 例如,favicon.ico。上传图标文件:使用FTP工具(如FileZilla)连接到服务器,导航到网站根目录。 将新的图标文件上传…

懂了这个道理,人月神话不再是神话!

本文书接上回《解决DDD最大难题-如何划分领域》,关注公众号(老肖想当外语大佬)获取信息:最新文章更新;DDD框架源码(.NET、Java双平台);加群畅聊,建模分析、技术交流;视频和直播在B站。声明: 本文观点限定在重业务的软件系统研发场景下,其它场景不作为本文讨论的范围…

组合数学基础 - 学习记录

组合数学基础 - 学习记录组合数学基础 - 学习笔记 代码集合 1. 加法 / 乘法原理 加法原理 指若有 \(n\) 类选择完成工程,每类选择有 \(a_i\) 个方法,总完成方法数为 \(a_1+a_2+ \cdots +a_n\) 乘法原理 指若有 \(n\) 个步骤完成工程,每个步骤有 \(a_i\) 种方法,总完成方法数…