Transformer
说明
我在看bert和gpt模型的时候,都出现了transformer,所以写一篇博客,记录下学习的内容,方便以后忘了可以回想起来。
一个Transformer层:6个(其实可以自己改数量)encoder层加上6个decoder层。
粗略的结构如下图,该图片来自龙心尘-CSDN博客_transformer
本文还参考了原论文attention is all your need,transformer的个人实现代码
由于transformer的个人实现代码的例子不太友好,我这里修改了下代码,统一了这篇博客的例子一致。
首先写一个数据流,再介绍结构,最后展示代码
全文以Je suis etudiant为输入,任务为翻译,输出值为I am a student
那么transformer是怎么做这个翻译的呢
首先encoder将输入句子Je suis etudiant编码,也就是提取特征
下一步,我们将这个特征,和[EOS]输入到decoder中,翻译出I
接着,再把特征和[EOS] I输入到decoder中,翻译出am
接着,把特征和[EOS] I am输入到decoder中,翻译出a ...
ggplot
ggplot的组成
诸如geom_point()这样的函数,其实都是调用了layor函数
1234567ggplot(data) + layer( mapping = NULL, data = NULL, geom = "point", stat = "identity", position = "identity" )
ggplot的组成部分:data、layer、geom、mapping、stat、position
data一定是数据框
geom_point()之类的函数,必须有aes(),即aesthetic mappings,指定了数据框中的变量怎么映射到图片中。在ggplot(data, aes())中写aes(),和geom_point(data, aes())中指定,是一样的;但是有多个图层的时候,前者的aes所有图层都能用。
123# aes里面都是:某个属性=某一列,或,某个属性=某个值# 某个属性=某个值,aes自动会在数据框中添加一列,全是该数值aes()
geom函数
1234 ...
hive
一、基本概念
解决海量结构化日志的数据统计
基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张表
本质:将HQL转化成MapReduce程序
Hive处理的数据存储在HDFS上,默认实现MapReduce(可以替换成spark),执行程序在Yarn上
可以理解为,hive是hadoop的客户端
架构:
客户端:CLI、JDBC、Driver
元数据Meta store:包括表名、表所属的数据库、表拥有者等
驱动器:SQL Parser解析器 -> Physical Plan编译器 -> Query Optimizer优化器 -> Execution执行器
Hadoop:MapReduce,HDFS
二、安装
这里强烈建议和尚老师的版本一样,顺便把原来的hadoop环境改成了2.7.2。。。。
不一定要把hive分发到各个机器上
自己配版本很容易会有一堆jar包冲突的问题。
1234567891011121314# 在software文件下解压tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/modu ...
zookeeper
未完待续
什么是zookeeper
开源的分布式、提供协调服务
zookeeper = 文件系统 + 通知机制
服务器开机后,向zookeeper注册信息
客服端向zookeeper获取服务器的信息
服务器
https://zhuanlan.zhihu.com/p/69114539?utm_source=wechat_session
组成
一个leader,多个Follower
集群中只要有半数以上的节点存活,就能正常运行
全局数据一致,集群每个服务器保存相同的数据,所以客户端连接任何一个服务器,数据都是一致的
更新请求顺序进行,来自同一个客户端的更新请求按发送
数据更新原子性,要么更新成功,要么更新失败
实时性,zookeeper更新非常快
数据结构:树形结构,每个节点叫做Znode,默认存1MB的数据
应用场景
统一命名服务:对服务统一命名,如域名
统一配置管理:同步配置文件
将配置信息写入Znode
各个客户端、服务器监听Znode
如果Znode中的数据被修改,zookeeper就通知各个客户端、服务器
统一集群管理:实时掌握每个节点的状态
可以将节点 ...
hadoop-MapReduce
一、MapReduce
MapReduce是一个分布式运算程序的编程框架
由于MR是个框架,所以要注重逻辑,而不太需要关心程序的运行
优点:高容错性、超大量数据
缺点:不适用实时计算、流式计算、有向图计算,就是慢
二、核心思想
MapReduce分成Map和Reduce两个部分
Map指映射,将数据映射成KV值<key, value>
Reduce指化简,将Map阶段的KV值合并成想要的数据
三、工作流程1、简化流程123456MapReudce的简化流程:Input -> Mapper -> Reducer -> Output1. Input到Mapper由InputFormat完成,变成<k1, v1>2. Mapper将<k1, v1>转成<k2, v2>3. Mapper到Reducer为shuffle阶段:将<k2, v2>排序3. Reducer处理成想要的<k3, v3>形式4. Reducer到Output由OutputFormat完成
上述的流程都是写成代码,并封装成一 ...
hadoop-HDFS
一、HDFS
HDFS:Hadoop Distribution File System
HDFS有三个部分:NameNode、DataNode、Secondary NameNode
适合一次写入、多次读取、不支持文件修改的情况
无法高效的对大量小文件进行存储
不支持并发写入、文件随机修改,仅支持数据append
DataNode里面:文件不是整个存储的,是分成一个个block(块),默认一个block为128M
二、数据流
分上传、下载两个部分,这是重点
上传:
客户端(client)读取文件A(假设200M)
client向NameNode申请
NameNode审核后,同意申请client的请求
client将200M的文件逻辑切分成128M和72M
client输出流,请求NameNode上传第一个block
NameNode返回DataNode的list,存储副本几个,list就有几个。这里有节点选择策略
client依次向DataNode请求建立通道
DataNode向client回复应答成功,注意这个通道是串联的
client向DataNode传数据包,64KB ...
Hadoop-基础
一、基本概念1.计算机的一些概念
计算机系统可以粗糙的分成三个层次:底层系统,中间层,应用层
底层系统,也叫系统内核(kernel),如Linux/UNIX、Windows NT(Windows New Technology)
中间层是shell层,叫命令解释层,是底层系统与用户交互的界面;
有图形化的shell:如Windows Explorer;
命令行shell:如command、cmd.exe、PowerShell
2.Hadoop组成
Hadoop 1.x:MapReduce,HDFS,COMMON
Hadoop 2.x:MapReduce,Yarn,HDFS,COMMON
分别为:计算、资源调度、数据存储、辅助工具
2.x版本是将1.x的MapReduce拆成两部分
2.1 HDFS架构
NameNode(NN):类似目录、索引
DataNode(DN):存数据的地方,可以分到各个硬盘里面
Secondary NameNode(2NN):监控整个HDFS架构的程序,NN报废了,2NN并不能恢复NN
2.2 Yarn架构
用来调用CPU、内存资源等
...
结构方程模型
本文大部分内容来自油管教程和厚杰泰的《结构方程模型及其应用》
一、基本概念
《结构方程模型及其应用》里叙述:结构方程模型是验证性因子模型和潜变量(latent variable)因果模型(叫结构方程会不会更好一点?)的结合:
种类
作用
测量方程 measurement equation
描述潜变量(因子)与指标(可测量的变量)的关系
结构方程 structural equation
描述潜变量(因子)之间的关系
潜变量的概念:与可观察变量相对,是不可直接观察但是通过观察到的其他变量推断(通过数学模型)的变量(直接测量),有的地方叫因子
油管教程里提出的几个容易混淆的概念:
回归模型:$y = \beta_1 x_1 + \beta_2 x_2 + \epsilon$
路径模型:$z = \beta_1 x + \epsilon_1, \quad y = \beta_2 z + \epsilon_2$
注意这里路径模型和回归模型是不一样的,$x$预测$z$,$z$预测$y$,形成了一条链chain,这就有结构的意味了
因子模型:\begin{ ...
自然语言处理
本来是2020年的春夏学nlp的,但是疫情耽搁了,课本都在学校,所以只能先在网上学习一点了。
19年一直在搞cv,现在又转到nlp,感觉nlp会更难一点(感觉开了个大坑)
长期更新
一、NLP的过程
获取语料(获取数据集)
语料预处理(数据清洗):清洗、分词、词性标注、去停用词(没有用的语气词,如的、了、么)
特征工程:把词语转成向量,方便计算机处理
一种方法就是word embedding(词嵌入),将字符转成数值向量。
特征选择(啥意思?)
模型训练
选择合适的机器学习模型
评价指标
NLP的任务
序列标注
分类任务
句子关系判断
生成式任务
二、NLP的分布假说
词语是nlp里最基本的单元,但与图像、音频不一样,词语是文字、字符,不是计算机能识别的数字
Harris提出了分布假说,上下文相似的词,其语义也相似
既然有词语有分布,那么就有分布模型
如
如统计模型
如神经网络模型
one hot vector可以将字符转成0-1的向量,但是这种方式,仅仅是将字符转成向量,还不够方便
即有$V$个词语,就形成$V$维向量,每个词语在某个维度为1,其余为0
如词语 ...
Matlab编写乐谱
记录下我学习乐理知识,并使用MATLAB编写曲子
学习资料
视频
https://www.bilibili.com/video/av4500081
https://www.bilibili.com/video/av4125801?spm_id_from=333.788.b_765f64657363.1
https://www.bilibili.com/video/av17564021
博客
https://blog.csdn.net/bat67/article/details/68928562
https://blog.csdn.net/qq_42852933/article/details/89814880
钢琴谱
https://www.everyonepiano.cn/Stave-1976.html
MATLAB程序钢琴各音名1234567891011121314151617181920212223% 记录各音符的音阶,一行为一组% 升音符号note_treble = {'A2','A2+','B2 ...