东坑东莞微信网站建设公司网站的搭建方案

web/2025/10/3 3:07:52/文章来源:
东坑东莞微信网站建设,公司网站的搭建方案,重庆高端网站设计公司,整合营销公司目录 统计 Bigram 语言模型质量评价方法 神经网络语言模型 【系列笔记】 【Andrej Karpathy 神经网络从Zero到Hero】–1. 自动微分autograd实践要点 本文主要参考 大神Andrej Karpathy 大模型讲座 | 构建makemore 系列之一#xff1a;讲解语言建模的明确入门#xff0c;演示… 目录 统计 Bigram 语言模型质量评价方法 神经网络语言模型 【系列笔记】 【Andrej Karpathy 神经网络从Zero到Hero】–1. 自动微分autograd实践要点 本文主要参考 大神Andrej Karpathy 大模型讲座 | 构建makemore 系列之一讲解语言建模的明确入门演示 如何利用统计数值构建一个简单的 Bigram 语言模型如何用一个神经网络来复现前面 Bigram 语言模型的结果以此来展示神经网络相对于传统 n-gram 模型的拓展性。 统计 Bigram 语言模型 首先给定一批数据每个数据是一个英文名字例如 [emma,olivia,ava,isabella,sophia,charlotte,mia,amelia,harper,evelyn]Bigram语言模型的做法很简单首先将数据中的英文名字都做成一个个bigram的数据 其中每个格子中是对应的二元组eg: “rh” 在所有数据中出现的次数。那么一个自然的想法是对于给定的字母取其对应的行将次数归一化转成概率值然后根据概率分布抽取下一个可能的字母 g torch.Generator().manual_seed(2147483647) P N.float() # N 即为上述 counts 矩阵 P P / P.sum(1, keepdimsTrue) # P是每行归一化后的概率值for i in range(5):out []ix 0 ## start符和end符都用 id0 表示这里是startwhile True:p P[ix] # 当前字符为 ix 时预测下一个字符的概率分布实质是一个多项分布即可能抽到的值有多个eg: 掷色子是六项分布ix torch.multinomial(p, num_samples1, replacementTrue, generatorg).item()out.append(itos[ix])if ix 0: ## 当运行到end符停止生成breakprint(.join(out))输出类似于 mor. axx. minaymoryles. kondlaisah. anchshizarie.质量评价方法 我们还需要方法来评估语言模型的质量一个直观的想法是: P ( s 1 s 2 . . . s n ) P ( s 1 ) P ( s 2 ∣ s 1 ) ⋯ P ( s n ∣ s n − 1 ) P(s_1s_2...s_n) P(s_1)P(s_2|s_1)\cdots P(s_n|s_{n-1}) P(s1​s2​...sn​)P(s1​)P(s2​∣s1​)⋯P(sn​∣sn−1​) 但上述计算方式有一个问题概率值都是小于1的当序列的长度比较长时上述数值会趋于0计算时容易下溢。因此实践中往往使用 l o g ( P ) log(P) log(P)来代替为了可以对比不同长度的序列的预测效果再进一步使用 l o g ( P ) / n log(P)/n log(P)/n 表示一个序列平均的质量。 上述统计 Bigram 模型在训练数据上的平均质量为 log_likelihood 0.0 n 0for w in words: # 所有word里的二元组概率叠加chs [.] list(w) [.]for ch1, ch2 in zip(chs, chs[1:]):ix1 stoi[ch1]ix2 stoi[ch2]prob P[ix1, ix2]logprob torch.log(prob)log_likelihood logprobn 1 # 所有word里的二元组数量之和nll -log_likelihood print(f{nll/n}) ## 值为 2.4764表示前面做的bigram模型对现有训练数据的置信度## 这个值越低表示当前模型越认可训练数据的质量而由于训练数据是我们认为“好”的数据因此反过来就说明这个模型好但这里有一个问题是例如 log_likelihood 0.0 n 0#for w in words: for w in [andrejz]:chs [.] list(w) [.]for ch1, ch2 in zip(chs, chs[1:]):ix1 stoi[ch1]ix2 stoi[ch2]prob P[ix1, ix2]logprob torch.log(prob)log_likelihood logprobn 1print(f{ch1}{ch2}: {prob:.4f} {logprob:.4f})print(f{log_likelihood}) nll -log_likelihood print(f{nll}) print(f{nll/n})输出是 .a: 0.1377 -1.9829 an: 0.1605 -1.8296 nd: 0.0384 -3.2594 dr: 0.0771 -2.5620 re: 0.1336 -2.0127 ej: 0.0027 -5.9171 jz: 0.0000 -inf z.: 0.0667 -2.7072 log_likelihoodtensor(-inf) nlltensor(inf) inf可以发现由于jz 在计数矩阵 N 中为0即数据中没有出现过导致 log(loss) 变成了负无穷这里为了避免这样的情况需要做 平滑处理即 P N.float() 改成 P (N1).float()这样上述代码输出变成 .a: 0.1376 -1.9835 an: 0.1604 -1.8302 nd: 0.0384 -3.2594 dr: 0.0770 -2.5646 re: 0.1334 -2.0143 ej: 0.0027 -5.9004 jz: 0.0003 -7.9817 z.: 0.0664 -2.7122 log_likelihoodtensor(-28.2463) nlltensor(28.2463) 3.5307815074920654避免了出现 inf 这种数据溢出问题。 神经网络语言模型 接下来尝试用神经网络的方式构建上述bigram语言模型 # 构建训练数据 xs, ys [], [] # 分别是前一个字符和要预测的下一个字符的id for w in words[:5]:chs [.] list(w) [.]for ch1, ch2 in zip(chs, chs[1:]):ix1 stoi[ch1]ix2 stoi[ch2]print(ch1, ch2)xs.append(ix1)ys.append(ix2) xs torch.tensor(xs) ys torch.tensor(ys) # 输出示例. e # e m # m m # m a # a . # xs: tensor([ 0, 5, 13, 13, 1]) # ys: tensor([ 5, 13, 13, 1, 0])# 随机初始化一个 27*27 的参数矩阵 g torch.Generator().manual_seed(2147483647) W torch.randn((27, 27), generatorg, requires_gradTrue) # 基于正态分布随机初始化 # 前向传播 import torch.nn.functional as F xenc F.one_hot(xs, num_classes27).float() # 将输入数据xs做成one-hot embedding logits xenc W # 用于模拟统计模型中的统计数值矩阵由于 W 是基于正态分布采样logits 并非直接是计数值可以认为是 log(counts) ## tensor([[-0.5288, -0.5967, -0.7431, ..., 0.5990, -1.5881, 1.1731], ## [-0.3065, -0.1569, -0.8672, ..., 0.0821, 0.0672, -0.3943], ## [ 0.4942, 1.5439, -0.2300, ..., -2.0636, -0.8923, -1.6962], ## ..., ## [-0.1936, -0.2342, 0.5450, ..., -0.0578, 0.7762, 1.9665], ## [-0.4965, -1.5579, 2.6435, ..., 0.9274, 0.3591, -0.3198], ## [ 1.5803, -1.1465, -1.2724, ..., 0.8207, 0.0131, 0.4530]]) counts logits.exp() # 将 log(counts) 还原成可以看作是 counts 的矩阵 ## tensor([[ 0.5893, 0.5507, 0.4756, ..., 1.8203, 0.2043, 3.2321], ## [ 0.7360, 0.8548, 0.4201, ..., 1.0856, 1.0695, 0.6741], ## [ 1.6391, 4.6828, 0.7945, ..., 0.1270, 0.4097, 0.1834], ## ..., ## [ 0.8240, 0.7912, 1.7245, ..., 0.9438, 2.1732, 7.1459], ## [ 0.6086, 0.2106, 14.0621, ..., 2.5279, 1.4320, 0.7263], ## [ 4.8566, 0.3177, 0.2802, ..., 2.2722, 1.0132, 1.5730]]) probs counts / counts.sum(1, keepdimsTrue) # 用于模拟统计模型中的概率矩阵这其实即是 softmax 的实现 loss -probs[torch.arange(5), ys].log().mean() # loss log(P)/n 这其实即是 cross-entropy 的实现接下来可以通过loss.backward()来更新参数 W: for k in range(100):# forward passxenc F.one_hot(xs, num_classes27).float() logits xenc W # predict log-countscounts logits.exp()probs counts / counts.sum(1, keepdimsTrue) loss -probs[torch.arange(num), ys].log().mean() 0.01*(W**2).mean() ## 这里加上了L2正则防止过拟合print(loss.item())# backward passW.grad None # 每次反向传播前置为Noneloss.backward()# updateW.data -50 * W.grad 注意这里 logits xenc W 由于 xenc 是 one-hot 向量因此这里 logits 相当于是抽出了 W 中的某一行而结合 bigram 模型中loss 实际上是在计算实际的 log(P[x_i, y_i])那么可以认为这里 W 其实是在拟合 bigram 中的计数矩阵 N不过实际是 logW 在拟合 N。 另外上述神经网络的 loss 最终也是达到差不多 2.47 的最低 loss。这是合理的因为从上面的分析可知这个神经网络是完全在拟合 bigram 计数矩阵的没有使用更复杂的特征提取方法因此效果最终也会差不多。 这里 loss 中还加了一个 L2 正则主要目的是压缩 W使得它向全 0 靠近这里的效果非常类似于 bigram 中的平滑手段想象给一个极大的平滑P (N10000).float()那么 P 会趋于一个均匀分布而 W 全为 0 会导致 counts logits.exp() 全为 1即也在拟合一个均匀分布。这里前面的参数 0.01 即是用来调整平滑强度的如果这个给的太大那么平滑太大了就会学成一个均匀分布当然实际不会希望这样所以不会给很大

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

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

相关文章

做外贸的网站怎样做电商

介绍: Java中的HashSet实现Set接口,即它不允许重复。 它在内部由HashMap支持,该哈希表基于哈希原理。 我们可以在HashSet中存储一个空值。 默认容量为16,负载系数为0.75,其中: Load factor Number of St…

做网站视频存储在哪里建大网站首页

题目描述: 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他&#xff…

莱芜聊城网站建设建站宝盒开通

引言 在数据驱动的时代,数据库连接组件是众多应用程序与数据存储之间的关键桥梁。Cantian-Connector-Mysql 作为一款开源项目,正逐渐受到开发者群体的关注,下面我们将从技术亮点、应用场景、部署实操以及代码示例等维度对它展开全面解读。 …

建立网站的公司杭州长沙网站关键词推广

文章目录 一. 什么是异常?二. 为什么要引入抛异常机制?方法一:直接终止程序方法二:返回错误码方法三:C 标准库中的 setjmp 和 longjmp 组合总结 C 中处理异常的方式 三. 如何进行抛异常?1. 关于抛出的异常对…

手机百度关键词排名 seo网站优化软件做网站必须花钱吗

一、批次管理 1.配置 SAP EWM 特定参数 激活仓库的批次管理 2.ERP端物料需要启用批次管理 3.EWM物料需要启用批次管理 一般是ERP启用批次管理,相关的配置也会传输到EWM系统 4.建立批次主数据 5.创建采购订单并创建内向交货单,维护批次 6.维护产品主数…

优秀网页设计网站如何做英文网站外链

目录 一.二层组网环路 1.广播风暴 2.MAC地址漂移 3.有没有三层环路 二.STP生成树 (1)工作原理 (2)STP概念 1.桥ID(BID) 2.根桥 3.COST 4.RPC 5. Rort ID ——本端 6.BPDU报文 7.PID(Port ID&…

西安高端网站开发网站自己可以做么

0 实践发现KDB不支持step调试功能 (本文针对的是arm CotexA9架构,各种架构的实现方式不一样, X86的好像已经支持,不过本人没有验证过) 1 首先看下要调试的代码段 1.1 C语言 int testPara_7(int a, int b,int c,int d, int e…

域名和网站建设网站建设软件

1导入vue 2创建一个vuex的存储对象 3注册插件 4导出 5导入vuex的存储对象 6建立一个组件

学会了php的语法怎么做网站网络维护培训

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

锡林浩特本地网站建设移动端后台管理系统

1、 2、 3、 4、 5、 转载于:https://www.cnblogs.com/happykoukou/p/4437111.html

公司网站如何被百度收录网站手机版方案

一、前言实际上权限系统老早之前我就在一直开发,大概在刚毕业没多久就想一个人写一个系统,断断续续一直坚持到现在,毕竟自己亲动手自写的系统才有收获,本篇仅介绍权限。小小系统上不了台面,望各位大神勿喷。二、系统介…

长沙手机app网站开发wordpress插件一般开源

nagios转载于:https://blog.51cto.com/yujianglei/1557718

外贸网站建设 公司价格最好的购物网站

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

请勿直接解析到ip否则我司不能保证您的网站能正常运行!"js常用网页特效

人脸对比 人脸对比,顾名思义,就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS:作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集: 人脸数据_数据集-飞桨AI Studio星河社区 (b…

口碑好的番禺网站建设seo推广沧州公司电话

随着信息化时代的到来,数据安全已成为国家、企业和个人共同关注的焦点。政府系统国产化作为提高信息安全和自主可控能力的重要举措,正逐步得到广泛实施。在这一过程中,沙箱技术作为一种先进的安全机制,其在国产化系统加密效果方面…

成都网站建设外包业务网络文学网站开发

系统环境 一、FS相关网站 二、第三方库安装 1.apt安装 2.指定版本sofia-sip安装 3.指定版本spandsp安装 4.指定版本libks安装 5.指定版本openssl安装 三、指定版本FS安装 1.CPPFLAGS配置 2.编译器版本 3.FS配置编译 四、FS,fs_cli运行,模块加载 附录 1.安…

广州哪家做网站mt4外汇网站建设

文章目录前言一、什么是毕昇 JDK?1.1、毕昇 JDK 发展历程1.2、毕昇 JDK 的支持架构1.3、毕昇 JDK、OpenJDK 和 Oracle JDK 区别二、为什么要做毕昇 JDK?2.1、Oracle JDK 授权方式发生变化2.2、高版本 JDK 有价值特性的渴望2.3、应用的定制化优化诉求三、…

四川住房与城乡城乡建设厅网站做模板下载网站挣钱吗

文 | Akhil Raju源 | 机器之心在这里,既有头脑风暴,也有生活气息。本月初,时任苹果机器学习总监的 Ian Goodfellow 宣布在加入公司三年后辞职,没过几天,就有消息曝出大神去向定了,他将重返谷歌加入 DeepMin…

美容院网站源码如何在服务器上放网站

1.外墙外保温系统耐候性试验设备,测温点不应少于( ),每个测温点的温度与平均温度偏差不应大于( )。 A、2个,5℃ B、4个,5℃ C、2

天河企业网站建设网站总是跳转

目录 测试计划书 1. 引言 2. 测试目标 3. 测试方法 3.1 黑盒测试 (1)等价类划分: (2)边界值分析: (3)因果图: ​编辑(4)错误推测法 3.2 白盒测试 测试用例!! 4. 测试环境 5. 测试计划 6…