【深度学习】Transformer


1 Transformer结构 Transformer作为编码器-解码器架构的一个实例。正如所见到的,Transformer是由编码器和解码器组成的。与基于Bahdanau注意力实现的序列到序列的模型相比,Transformer的编码器和解码器是基于自注意力的模块叠加而成的,源(输入)序列和目标(输

【深度学习】层归一化和批量归一化


以这个张量为例: [[3, 2, 1], [1, 2, 3]] 其中第一个维度是样本,第二个维度是特征,所以该数据表示的是两个样本,每个样本都有三个特征。 1 层归一化 (Layer Norm) 主要思想是计算对 每一个样本计算所有特征均值、标准差 ,然后对样本数据进行归一化 就以上面的例子为例,

【深度学习】Word2Vec算法以及优化


1 跳元模型(Skip-Gram) 定义模型参数: 对于词典中的每个词,有两个d维的向量表示,分别用于中心词和上下文词。 中心词向量记为\mathbf{v}_i,上下文词向量记为\mathbf{u}_i。 计算条件概率: 给定一个中心词w_c,计算生成任意上下文词w_o的条件概率。 条件概率通过中心

【深度学习】注意力机制


1 注意力机制中的Q、K、V 我们通过一个简化的例子来说明注意力机制中q(查询)、k(键)和v(值)的作用。 假设我们有一个简单的语言模型,它正在处理一个英文句子,并试图预测下一个单词。句子是 "The cat sat on the mat",我们想要预测下一个单词。 步骤 1: 定义嵌入向量 首先

【深度学习】Seq2Seq(带有Bahdanau注意力机制)


Seq2Seq基础结构可以看上一篇文章【深度学习】Seq2Seq 1 总体结构 Bahdanau注意力也成为加性注意力,其实是一种注意力评分函数 2 编码器结构 在编码器部分,和基础的seq2seq结构完全一致 3 解码器结构 注意: 与基础Seq2Seq结构的主要不同主要是对于解码器结构的部分,对

【深度学习】Seq2Seq


1 总体结构 不论是编码器还是解码器,它们都会首先通过嵌入层(Embedding层)处理外部输入,以便转换成相应的词向量。 2 编码器结构 vocab_size:词汇表的大小,用于定义嵌入层。 embed_size:嵌入层输出的维度,即每个词汇的向量表示大小。 num_hiddens:循环神经网络(

【Python】文件、文件夹操作

学习 

文件操作 打开/关闭文件: with open('file.txt', 'r') as f: # 自动关闭文件 content = f.read() 读写文件: f.write('Hello, World!') content = f.read() 文件信息: os.path.gets

【Linux】Screen常用操作

学习 

安装Screen 在Ubuntu系统中,使用以下命令安装Screen: sudo apt-get update sudo apt-get install screen 创建Screen会话 启动一个新的Screen会话,并为其命名: screen -S [会话名称] 退出Screen会话 在会话

【深度学习】RNN、GRU、LSTM的计算单元


1. RNN(Recurrent Neural Network) 相关公式: a^{<t>} = \tanh(W_a \cdot [a^{<t-1>}, x^{<t>} ] + b_a) \hat{y}^{<t>} = \sigma(W_y \cdot a^{<t>} + b_y) 2. GRU(G

【深度学习】卷积层、池化层的正向反向传播


1 卷积层 1.1 前向传播 以此卷积核为例: \begin{bmatrix}1&0&1\\0&1&0\\1&0&1\\\end{bmatrix} 1.2 反向传播 dA += \sum _{h=0} ^{n_H} \sum_{w=0} ^{n_W} W_c \times dZ_{hw} \tag{

【深度学习】梯度下降优化算法-Momentum,RMSprop,Adam


提要 一般的梯度下降公式为 w=w-dw b=b-db 这里提到的是对于一般的梯度下降的优化方案 1 动量梯度下降 (Gradient Descent with Momentum) v_{dw}=\beta v_{dw}+(1-\beta)dW v_{db}=\beta v_{db}+(1-\bet

【深度学习】单隐层网络-公式推导


注意dZ^{[2]}的由来 激活函数为Sigmoid: a^{[2]} = \frac{1}{1 + e^{-z^{[2]}}} 损失函数为: L(a , y) = - y \log{a} - (1-y)\log{(1-a)} 所以:\frac{dL}{da} = -\frac{y}{a} + \f

【学算法】LC 3175. 找到连续赢 K 场比赛的第一位玩家

算法 

3175. 找到连续赢 K 场比赛的第一位玩家 题解 使用了“打擂台”思想 class Solution { public: int findWinningPlayer(vector<int>& skills, int k) { int max_i = 0, win = 0;