深入理解GPT
GPT的结构
首先我们需要了解 GPT 的结构. 例如下图是一个 GPT-1 的结构图, 中间的蓝色框选部分对应 n 个 Transformer 的 Block, 左边为输入和 Embedding 层, 右边为输出预测以及 Loss.
关于输入
原始的输入为一个 [Batch_size, Time_step] 大小的矩阵. 例如字符级别的生成(预测), 输入为 "To be or not to be", 算上空格这是一个 Batch_size=1, Time_steps = 18 的输入.
如何对输入字符进行编码
例如针对 tinyshakespeare 这个文本, 我们统计出其中有 65 种字符, 并按照 ASCII 码的值对它们进行排序
1234567891011with open('input.txt', 'r', encoding='utf-8') as f: text = f.read()chars = sorted(list(set(text))) # len = 65# here ar ...
Gamma函数和Beta函数
Euler积分
含参积分
Γ(s)=∫0∞xs−1e−xdx,s>0\Gamma(s) = \int_{0}^\infty x^{s-1}e^{-x}\mathrm dx,\quad s > 0
Γ(s)=∫0∞xs−1e−xdx,s>0
B(p,q)=∫01xp−1(1−x)q−1dx,p>0,q>0\Beta(p,q) = \int_{0}^1 x^{p-1}(1-x)^{q-1}\mathrm d x,\quad p > 0,q > 0
B(p,q)=∫01xp−1(1−x)q−1dx,p>0,q>0
在应用中经常出现, 它们统称为Euler积分. 其中前者被称为Gamma函数, 后者称为 Beta函数.
Gamma函数
Γ(s)\Gamma(s)Γ(s)的定义域为s>0s>0s>0
Gamma函数Γ(s)\Gamma(s)Γ(s)可以写成如下两个积分的和:
Γ(s)=∫01xs−1e−xdx+∫1∞xs−1e−xdx=Φ(s)+Ψ(s)\Gamma(s) = \int_0^1 x^{s-1}e^{- ...
最大似然估计与EM算法
最大似然估计(1922 by Filch)
例1 估计两点分布 b(1,p)b(1,p)b(1,p) 的参数 ppp. 其分布列为 P(X=x)=px(1−p)1−x,x=0,1.P(X = x) = p^x(1-p)^{1-x},x=0,1.P(X=x)=px(1−p)1−x,x=0,1.
解 抽取n个样本x1,⋯ ,xnx_1,\cdots,x_nx1,⋯,xn, 这批观测值发生的概率为
P(X1=x1,⋯ ,Xn=xn;p)=独立性∏i=1npxi(1−p)1−xi=p∑i=1nxi(1−p)n−∑i=1nxi(eq1)P(X_1=x_1,\cdots,X_n=x_n;p) \overset{\text{独立性}}{=} \prod_{i=1}^n p^{x_i}(1-p)^{1-x_i} = p^{\sum_{i=1}^n x_i}(1-p)^{n-\sum_{i=1}^n x_i}
\quad(eq1)
P(X1=x1,⋯,Xn=xn;p)=独立性i=1∏npxi(1−p)1−xi=p∑i=1nxi(1−p)n−∑i=1nxi(eq1)
Note ...
特征函数&高阶矩的计算
随机变量的特征函数
定义: 设XXX是一个随机变量, 称
ϕ(t)=E(eitX)=Ecos(tX)+iEsin(tX)\phi(t) = E(e^{\mathrm itX}) = E\cos(tX) + \mathrm{i}E\sin(tX)
ϕ(t)=E(eitX)=Ecos(tX)+iEsin(tX)
为随机变量XXX的特征函数.
Note: eix=cos(x)+isin(x)←e^{\mathrm{i}x} = \cos(x) + \mathrm{i}\sin(x) \leftarroweix=cos(x)+isin(x)← 欧拉公式
对于离散型随机变量XXX, 若其分布律为P(X=ak)=pk,k=1,2,⋯P(X=a_k) = p_k,k=1,2,\cdotsP(X=ak)=pk,k=1,2,⋯, 则XXX的特征函数为
ϕ(t)=∑k=1∞pkeitak.\phi(t) = \sum_{k=1}^{\infty}p_k e^{\mathrm ita_k}.
ϕ(t)=k=1∑∞pkeitak.
对于连续型随机变量XXX, 若其密度函数为f(x)f(x ...
一个常微分方程的求解
求解常微分方程 yy′′=1+y′2yy'' = 1+y'^2yy′′=1+y′2在初始条件y(0)=1, y′(0)=0y(0) = 1,\ y'(0) = 0y(0)=1, y′(0)=0下的特解
解: 设 y′=py'=py′=p, 即 dydx=p\frac{dy}{dx}=pdxdy=p, 又由于dpdx=dpdy⋅dydx=pdpdy\frac{dp}{dx} = \frac{dp}{dy}\cdot\frac{dy}{dx} = p\frac{dp}{dy}dxdp=dydp⋅dxdy=pdydp, 原方程化为
ypdpdy=1+p2yp\frac{dp}{dy} = 1+p^2
ypdydp=1+p2
分离变量
pdp1+p2=dyyp\frac{dp}{1+p^2} = \frac{dy}{y}
p1+p2dp=ydy
两边积分
∫p1+p2dp=∫1ydy\int \frac{p}{1+p^2}dp = \int \frac{1}{y}dy
∫1+p2pdp=∫y1dy
...
关于一个随机游走的马尔科夫链
题目
定义一个非对称的随机游走: 令Y1,Y2,⋯ ,Yi,⋯Y_1,Y_2,\cdots,Y_i,\cdotsY1,Y2,⋯,Yi,⋯独立同分布, 其中Pr{Yi=1}=23,Pr{Yi=−1}=13Pr\{Y_i = 1\} = \frac{2}{3},Pr\{Y_i = -1\} = \frac{1}{3}Pr{Yi=1}=32,Pr{Yi=−1}=31, 且定义Z0=0,Zn=∑i=1nYiZ_0=0,Z_n = \sum_{i=1}^nY_iZ0=0,Zn=∑i=1nYi 的随机过程{Zn,n≥0}\{Z_n,n\geq0\}{Zn,n≥0}.
求这个过程从状态0到状态1的期望首达时间μ01\mu_{01}μ01
μ01=E{T01∣Z0=0}=∑i=1∞nf01(n)\mu_{01} = E\{T_{01}|Z_0 = 0\} = \sum_{i=1}^\infty nf_{01}^{(n)}
μ01=E{T01∣Z0=0}=i=1∑∞nf01(n)
其中
Tij=min{n∣Z0=i,Zn=j,n≥1}T_{ij} = ...
Conda&Pip
下载安装
windows
Latest Miniconda installer links | Miniconda
miniconda清华源下载地址
安装完成后执行conda --version, 如果没有输出, 添加环境变量
123D:\...\Miniconda3D:\...\Miniconda3\Library\binD:\...\Miniconda3\Scripts
linux
Quick command line install | Miniconda
12345mkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh# wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.shbash ~/minic ...
实矩阵的共轭复特征值
题目 设矩阵A∈R3×3A \in \mathbb{R}^{3\times3}A∈R3×3 的特征值为a+bi,a−bi,ca+bi,a-bi,ca+bi,a−bi,c, 其中a,b,c∈R,b≠0,ia,b,c\in \mathbb{R},b\ne0,ia,b,c∈R,b=0,i是虚数单位.
证明: 存在实可逆矩阵QQQ使得
Q−1AQ=(c000ab0−ba)Q^{-1}AQ=
\begin{pmatrix}
c & 0 & 0 \\
0 & a & b \\
0 &-b & a
\end{pmatrix}
Q−1AQ=c000a−b0ba
证明:
对于矩阵AAA的一对共轭复根λ=a+bi,λˉ=a−bi\lambda = a+bi,\bar{\lambda} = a-biλ=a+bi,λˉ=a−bi, 存在一对共轭复特征向量满足
Aη=λη,⇔Aηˉ=λˉηˉA\eta = \lambda\eta,\qquad\Leftrightarrow\qquad A\bar{\eta} = \bar{\lambda}\bar ...
LaTeX 基础使用
参考
在 CMD 中输入下面的命令可以打开《一份不太简短的latex介绍》
1texdoc lshort-zh
访问 lshort | github 可以获取这篇文章的 LaTex 源代码。
参考视频: latex中文教程-15集从入门到精通包含各种latex操作
视频由西北农林科技大学信息工程学院耿楠老师于2016年录制
LaTeX环境配置
安装 Texlive
使用 tex --version 命令查看环境变量是否配置成功, 如果没有则在环境变量中添加 D:\texlive\2021\bin\win32
安装 TeXstudio (可选)
Option -> Configure TeXstudio -> Build -> Default Compiler 中设置 TeXstudio 默认编译方式为 Xelatex
安装 VSCode + LaTex Workshop (可选, 推荐)
LaTeX源文件的基本结构
1234567891011121314%导言区\documentclass{article} %选择文本模式 ...
行列式是如何被定义出来的
写在开头
这篇文章并不是在介绍行列式,我希望阅读这篇的朋友并不是第一次接触行列式和空间变换。我写这篇文章是想从空间变换的角度来引入行列式,而并不是像课本上一样直接给出它的定义,并且希望你们可以从这个过程中理解行列式的意义。
空间变换
首先,我们假设在n维空间上有个变换(不一定是线性的),把这个变换设为:
{y1=f1(x1,x2,…,xn)y2=f2(x1,x2,…,xn)…yn=fn(x1,x2,…,xn)\begin{cases}
y_1 = f_1 (x_1, x_2, \dots,x_n)\\
y_2 = f_2 (x_1, x_2, \dots,x_n)\\
\dots\\
y_n = f_n (x_1, x_2, \dots,x_n)\\
\end{cases}
⎩⎨⎧y1=f1(x1,x2,…,xn)y2=f2(x1,x2,…,xn)…yn=fn(x1,x2,…,xn)
可以知道y1,y2,…,yny_1, y_2, \dots,y_ny1,y2,…,yn和x1,x2,…,xnx_1,x_2,\dots,x_nx1,x2,…,x ...