DL small knowledge
BLEU: Bilingual Evaluation Understudy 机器翻译与文本生成中最常用的自动评价指标之一,用来衡量模型生成的句子与参考答案(人类写的正确句子)之间的相似度。
optimizer
这篇blog是阅读prince Chapter6 之后的一些感想与困惑的解答 从梯度下降到 AdamW:常见优化算法全解(GD / SGD / Momentum / NAG / Adam / AdamW)在机器学习与深度学习中,优化算法(Optimizer)决定了模型如何根据损失函数不断更新参数。一个好的优化器不仅可以让模型收敛更快,还可以提高最终性能与稳定性。 本文将系统介绍以下六种经典优化方法,并给出直观解释与数学公式: Gradient Descent(GD) Stochastic Gradient Descent(SGD) SGD with Momentum Nesterov Accelerated Gradient(NAG) Adam AdamW 1. Gradient Descent(GD, 梯度下降)基本思想GD 在每一次参数更新时使用全部训练数据来计算梯度。 更新公式设损失函数为 L(θ)L(\theta)L(θ),学习率为 η\etaη: θt+1=θt−η∇θL(θt) \theta_{t+1} = \t...
Neural network
这篇blog是阅读prince Chapter3&4 之后的一些感想与困惑的解答 Terminologyshallow neural networks: hidden layer层数为1的神经网络 deep neural networks: hidden layer层数大于1的神经网络 shallow nn和deep nn 都属于MLP(multiple linear perceptron). feed forward network: 信息只向前流动,没有循环. 从input->output是单向的。没有 RNN/LSTM 那种 feedback,没有自循环。e.g. CNN,ResNet, MLP都是FFN fully connected network: 相邻两层的每个神经元都相连的nn universal approximation theorem定理内容:一个含有足够多hidden units的single hidden layer neural network可以近似任意连续函数 single hidden layer nn 的输入输出可以写...
Pytorch
记录一些乱七八糟的pytorch知识 1nn.Linear(in_features, out_features, bias=True) 创建一个线性变换层(y=Wx+b),输入维度是in_features,输出维度是out_features,bias表示是否使用偏置项,默认为True。 e.g. 1linear = nn.Linear(10, 5) 创建一个输入维度为10,输出维度为5的线性层。 123torch.matmul(A,B) #matrix multiplicationtorch.matmul(a,b) #vector dot producttorch.matmul(A,scalar) #matrix multiply scalar 矩阵乘法,自动选择维度,可以进行向量点积,矩阵乘法,矩阵乘标量。 1K.transpose(-1, -2) #transpose last two dimensions 转置K的最后两个维度,-1代表最后一个维度,-2代表倒数第二个维度。为什么只转置张量K的最后两个维度? K是一个四...
Transformer
TransformerWord Embedding每一个单词都可以表示成n维向量的形式,这样我们就可以用计算机来处理文本了。因此通俗来说,word embedding就是一个把输入文本转化成词向量矩阵的一个操作。 假设我们有一个句子:”I love machine learning”,经过tokenizer处理后,得到4个token,分别是”I”、”love”、”machine”、”learning”。然后我们就可以利用word embedding把四个token转化成四个词向量拼接而成的矩阵。假设每个token的词向量维度是512,那么经过word embedding后,我们会得到一个512x4的矩阵X 在预处理的时候,我们会通过学习得到一个vocabulary embedding的矩阵作为词表,然后利用 X=ΩeT X = \Omega_e T X=ΩeT 得到最终的word embedding矩阵X. 这个矩阵操作就相当于在vocabulary embedding里面寻找input token的位置,然后提取出来再拼接成矩阵X.(在上面的例子中,就是找I,love,mac...
2024年终总结
没想到居然会在2025年快结束之际在大洋彼岸的凌晨2点写下这篇2024年度总结,感慨万千。 2024是神奇的一年,很多事情在这一年发生了改变。在2024的前一年,2023年,我完成了束缚自己18余年的高考,踏入了大学的校门,迎来了身份的转变。如果说2023年是我的过渡之年的话,2024年则是真正重塑我人格的一年。 我们来看看这一年开头发生了什么。 是的,大学的第一个期末考来了,幸运的是,我的发挥不错,在线代和高数分别获得了A和A+(虽然我觉得我高数考的非常烂)。再加上中通和信导的A,我的第一学期绩点达到了3.9,专业第二。 现在回想起来,第一学期的我是真的能让现在的自己自惭形秽。对比如今混乱的生活作息,当时的我还是保持着12-1点睡8-10点起的正常作息。课上听的也十分认真,笔记每节课都记,虽然相对高中时期摆烂不少,但在大部分刚上大学放飞自我的同学中已是出类拔萃。 我还自己用pygame写了一个类似元气骑士的小游戏,后来在这个模板上改了改搞成鹁鸽包围的半成品游戏。 过年的时候,和jack一起王者冲分,结果双排连跪死活上不去王者,最后jack先上了王者后退游,我输输赢赢n把后怒而退...
Intialization and parameterization
神经网络权重初始化简介在训练神经网络时,权重的初始化非常关键。如果初始化不合理,可能出现: 梯度消失(vanishing gradient):深层网络梯度太小,无法更新权重, 一般因数据方差太小导致 梯度爆炸(exploding gradient):梯度太大,训练不稳定,一般因数据方差太大导致 因此需要一些特殊的初始化来解决这些问题. Xavier 初始化(Xavier Initialization)Xavier 的目标是: 保持每一层输出的方差 ≈ 输入的方差 假设: 全连接层权重矩阵 W 的维度为 nout×ninn_\text{out} \times n_\text{in} nout×nin 输入 x,输出 y = Wx Xavier 希望: Var(y)≈Var(x) \text{Var}(y) \approx \text{Var}(x) Var(y)≈Var(x) Xavier 初始化公式3.1 均匀分布Wi,j∼U[−6nin+nout,6nin+nout] W_{i,j} \sim \mathcal{U}\Big[-\sqrt{\...
Hexo basic commands
This is my first blog. The blogsite is deployed by Hexo, you can check documentation for more info. In this blog, I will constantly update the common commands and configuarations. Quick StartCreate a new post1$ hexo new "My New Post" Run server1$ hexo server or 1$ hexo s Generate static files1$ hexo generate or 1$ hexo g Deploy to remote sites1$ hexo deploy or 1$ hexo d three-in-one commanduse it to deploy all the updates on your blog to github pages. 1hexo clean &&...