自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 自动微分autograd实践要点

第一步首先要定义Valuedata(Value 的数值),grad(Value 的梯度),_backward(反向传播函数,初始化为 None),_prev(需要依赖于它的Value)"return outreturn outreturn outtopo = []每个算子的_backward函数需要依次按算子进行手动定义一个Value的backward函数,是从当前Value开始,先将依赖于这个Value的所有Value按依赖顺序串起来,然后再从当前Value。

2024-08-21 21:11:45 894

原创 训练 Transfomer 模型的内存消耗计算

经典图打底:LY∂W∂L​​Y−Y2XTW−2Y−Y∂W∂Y​−2Y−XTWX​这里面X就需要保存下来供反向传播时使用下面具体的分析中需要用到每一层的具体运算张量,具体可以参考。

2024-08-13 16:13:03 483

原创 【强化学习的数学原理】课程笔记--6(Actor-Critic方法)

目录Actor-Critic 方法QAC 算法Advantage Actor-Critic 算法Baseline invarianceOff-policy Actor-Critic重要性采样Deterministic Policy Gradient (DPG)系列笔记:【强化学习的数学原理】课程笔记–1(基本概念,贝尔曼公式)【强化学习的数学原理】课程笔记–2(贝尔曼最优公式,值迭代与策略迭代)【强化学习的数学原理】课程笔记–3(蒙特卡洛方法)【强化学习的数学原理】课程笔记–4(随机近似与随机梯度

2024-08-07 22:52:59 737

原创 【强化学习的数学原理】课程笔记--5(值函数近似,策略梯度方法)

目录值函数近似一个例子TD 算法的值函数近似形式Sarsa, Q-learning 的值函数近似形式Deep Q-learningexperience replay策略梯度方法(Policy Gradient)Policy Gradient 的目标函数目标函数 1目标函数 2两种目标函数的同一性Policy Gradient 目标函数的梯度Policy Gradient 目标函数梯度的统一形式discounted case 情形下的目标函数梯度undiscounted case 情形下的目标函数梯度蒙特卡洛

2024-07-28 22:51:45 293

原创 【强化学习的数学原理】课程笔记--4(随机近似与随机梯度下降,时序差分方法)

目录随机近似与随机梯度下降Mean estimationRobbins-Monro 算法用 Robbins-Monro 算法解释 Mean estimation用 Robbins-Monro 算法解释 Batch Gradient descent用 SGD 解释 Mean estimationSGD 的一个有趣的性质时序差分方法Sarsa 算法一个例子Expected Sarsa 算法n-step Sarsa 算法Q-learning 算法off-policy 和 on-policy总结随机近似与随机梯度

2024-07-20 17:55:57 917

原创 【强化学习的数学原理】课程笔记--3(蒙特卡洛方法)

ϵ。

2024-07-03 17:03:13 429

原创 【强化学习的数学原理】课程笔记--2(贝尔曼最优公式,值迭代与策略迭代)

目录贝尔曼最优公式最优 Policy求解贝尔曼最优公式求解最大 State Value v∗v^*v∗根据 v∗v^*v∗ 求解贪婪形式的最佳 Policy π∗\pi^*π∗一些证明过程一些影响 π∗\pi^*π∗ 的因素如何让 π∗\pi^*π∗ 不 “绕弯路”γ\gammaγ 的影响reward 的影响值迭代与策略迭代值迭代策略迭代值迭代和策略迭代的具体差别一个小例子贝尔曼最优公式作用:用于找到最优的 Policy最优 Policy如果存在一个 Policy π∗\pi^*π∗,st 对于

2024-06-30 18:20:31 446

原创 【强化学习的数学原理】课程笔记--1(基本概念,贝尔曼公式)

当从状态 s 出发时,discounted return的期望值(从一个state出发,可能有多条路径到达terminal/或称多条trajectory,对所有可能的trajectory的discounted return求期望)State Value 是指从一个 state 出发的 average return,而 Action Value 是指从一个 state 出发,,eg:上图中第一个return是2,第二个return是1,所以第一个policy更好(没有进到forbidden block)

2024-06-24 17:37:08 896

原创 ChatGPT原理解读

chagpt 算法介绍

2023-03-02 16:18:21 6240

原创 神经网络与深度学习6---网络优化与正则化

网络优化与正则化参数初始化为什么不能将参数初始化为全零本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第7章:网络优化与正则化 的读书笔记,主要内容是一些本人觉得比较值得记录的内容,中间也会包括一些拓展和思考。参数初始化为什么不能将参数初始化为全零以一个三层网络为例:其中z4=w14∗x1+w24∗x2+w34∗x3+b4z5=w15∗x1+w25∗x2+w35∗x3+b5z6=w16∗x1+w26∗x2+w36∗x3+b6z_4=w_{14}∗x_1+w_{24}∗x_2+w_{34}∗

2022-09-02 17:53:03 516

原创 JAVA 基础

目录类,抽象类,接口抽象类和普通类的区别接口和抽象类的区别static,final关键字static类,抽象类,接口抽象类抽象类:含有抽象方法的类叫作抽象类抽象方法:必须用"abstract"关键字进行修饰。抽象方法是一种特殊的方法,它只有声明,而没有具体的实现。[public] abstract class ClassName { //抽象类 abstract void fun();//抽象方法}因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类就是为了继承

2022-07-11 15:39:37 450

转载 非root用户安装cuda与cudnn

非root用户安装cuda与cudnnubuntu非root用户安装CUDA以及cuDNN

2022-04-13 23:11:38 497

原创 为什么使用softmax作为多分类的概率函数

首先我们知道神经网络输出层的结果一般无法直接作为概率值,因为它既不是全非负值,加和也不为零,这是不满足概率的定义的。因此首先我们需要对其做一个转化使得:向量值全为非负值向量值加和等于1转化是递增函数而上面几个条件就排除了 xi∑ixi\frac{x_i}{\sum_{i} x_i}∑i​xi​xi​​,xi2∑ixi2\frac{x_i^2}{\sum_{i} x_i^2}∑i​xi2​xi2​​,∣xi∣∑i∣xi∣\frac{|x_i|}{\sum_{i} |x_i|}∑i​∣xi​∣∣xi

2022-04-12 15:50:59 2459 1

原创 Word2vec结构详解及原理推导

目录统计语言模型神经概率语言模型Word2vecHierarchical SoftmaxHuffman 树CBOW 和 Skip-gramNegative SamplingCBOW 和 Skip-gram由于 Word2Vec 本质其实是一个语言模型,词向量只是这个语言模型的副产物,因此我们首先简单看一下语言模型:统计语言模型语言模型其实就是计算一个句子出现的概率,例如:我明天早上要去上学明天去上学我要早上我名天枣上要去尚学那么一个好的语言模型应该会让句子1的概率大于句子2和句子3。具体来

2022-04-05 20:52:46 1578

原创 神经网络与深度学习7---注意力机制与seq2seq模型

目录注意力评分函数基于循环神经网络的seq2seq模型本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第8章:注意力机制与外部记忆 的读书笔记,主要内容是一些本人觉得比较值得记录的内容,中间也会包括一些拓展和思考。注意力评分函数以下为注意力机制的流程图,查询 q\boldsymbol qq 通过注意力评分函数 aaa 与键 k\boldsymbol kk 作用,并通过softmax得到对应 k\boldsymbol kk 的概率分布值,最后这些概率分布值与值 v\boldsymbol vv 做加权

2022-03-29 10:59:07 1479

原创 Transfomer矩阵维度分析及MultiHead详解

目录参数量各结构解析训练阶段Encoder Multihead Attention解读Transformer就离不开下面这张图:不同于之前的基于rnn的seq2seq模型,Transfomer完全摒弃了循环神经网络的结构:encoder层: {多头自注意力 + 前馈网络} ×n\times n×ndecoder层: {掩蔽多头自注意力 + encoder-decoder多头自注意力 + 前馈网络} ×n\times n×n下面我们介绍Transformer模型中的参数变化情况:参数量对于

2022-03-21 17:19:42 3229 2

原创 NLP常见评价指标

目录标困惑度(Perplexity)BLEU精确率和召回率困惑度(Perplexity)困惑度 是语言模型的一个衡量标准。因为单纯序列的似然概率是一个难以理解、难以比较的数字。 毕竟,较短的序列比较长的序列更有可能出现, 因此评估模型产生长篇巨著《战争与和平》的可能性会比产生中篇小说《小王子》可能性要小得多。一个好的语言模型应该能让我们准确地预测下一个词元。 所以我们可以通过一个序列中 所有的 n 个词元的交叉熵损失的平均值 来衡量:1n−∑t=1nlog P(xt∣x1,⋯ ,xt−1)

2022-03-05 23:28:10 1946

原创 keras.losses中 reduction=‘none‘的用法

以循环神经网络为例,pred的形状是 (batch_size, num_steps, vocab_size),label的形状是 (batch_size, num_steps)。计算预测值与真实值的损失:tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True, reduction='none')(label, pred)reduction key的可选值‘none’:每个step位置的损失都单独保留。返回值的形状为:(batch_s

2022-02-28 21:49:36 2119

原创 神经网络与深度学习5---循环神经网络

循环神经网络循环神经网络参数量梯度不稳定性(长程依赖)本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第6章:循环神经网络 的读书笔记,主要内容是一些本人觉得比较值得记录的内容,中间也会包括一些拓展和思考。循环神经网络传统的前馈神经网络在处理带有时序的数据(例如文本,语音等)时往往能力有限:1. 由于其全连接的结构使得无法学到数据的时序信息,2. 时序数据的输入长度通常是不定的,而前馈神经网络的输入是定长的。针对以上这些特性,研究员们推出了一类称为 循环神经网络 的深度模型结构。其主要模块结构如下

2022-02-27 21:03:38 635

原创 keras.losses中from_logits的作用

目录tf.keras.lossesfrom_logits=True 的作用tf.keras.lossesfrom_logits=True 的作用以 SparseCategoricalCrossentropy(from_logits=True) 为例,读keras源码,发现 losses.py 中定义的 SparseCategoricalCrossentropy 实际上调用的是 backend.py 中的 sparse_categorical_crossentropy 函数,代码当中有如下一段:eli

2022-02-10 22:36:13 3045

原创 softmax溢出问题

目录上溢及下溢softmax交叉熵损失softmax函数是深度学习常用的输出函数,它的表达式如下:yj^=exj∑i=1nexi\hat{y_j} = \frac{e^{x_j}}{\sum_{i=1}^{n} e^{x_i}}yj​^​=∑i=1n​exi​exj​​上溢及下溢但是如果 xjx_jxj​ 是一个很大的数,那么 exje^{x_j}exj​ 可能会大于数据类型容许的最大数字,造成上溢,这将使分母或分子变为 infinfinf, 最后得到的是0、infinfinf 或 nannanna

2022-01-31 00:47:14 3485

原创 广义线性模型推导 线性回归模型,Logistic模型,多项Logistic模型

目录广义线性模型推导线性回归模型广义线性模型推导Logistic模型广义线性模型推导多项Logistic模型广义线性模型是机器学习中一种的模型框架,我们常见的 线性模型,Logistic模型,softmax模型 都属于广义线性模型。下面我们就从广义线性模型角度推导这三种模型。首先介绍一下广义线性模型的定义,满足以下三个条件的模型属于广义线性模型:\quad因变量 yyy 服从指数族分布: P(y;η)=b(y)exp(ηTT(y)−a(η))P(y;\eta) = b(y) exp(\eta^T

2021-12-28 17:16:29 836

原创 神经网络与深度学习1--机器学习概述

目录机器学习中的损失函数平方损失函数交叉熵损失函数Hinge 损失函数正则化关于L2正则化的两点思考本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第一部分:机器学习基础 的读书笔记,由于该部分比较基础,只记录一些本人觉得比较值得记录的内容,中间也会包括一些拓展和思考。机器学习中的损失函数平方损失函数适用问题:预测的 label y 为实值时,通常是回归问题定义:L(y,f(x;θ))=12(y−f(x;θ))2L(y,f(x;\theta)) = \frac{1}{2} (y - f(x

2021-12-27 22:26:37 375

原创 最大熵原则与最大熵模型

最大熵准则熵最大熵准则首先看熵的定义熵熵是信息论中的概念,首先需要定义一个事件X=xX=xX=x的信息量,要求满足以下两个条件:越不可能发生的事情,信息越大几个独立事件同时发生的信息量=每一个事件的信息量之和个满足以上两个条件的且最为简单的函数就是对数函数了,s.t. I(x)=−logP(x)I(x) = -logP(x)I(x)=−logP(x)Proof: P(x)P(x)P(x)越大,I(x)=−logP(x)I(x) = -logP(x)I(x)=−logP(x)越小I(x1,

2021-12-26 22:27:31 2180

原创 利用conda安装tensorflow2.0 和 pytorch(带镜像)

进入Anaconda Prompt基于 python 3.6 创建虚拟环境:conda create --name tensorflow python=3.6激活创建的环境:activate tensorflow安装 tensorflow 2.0 :pip install tensorflow==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple测试是否安装成功:进入python: python导入tensorflow:import tenso.

2021-12-13 16:34:50 2019

原创 基于双数组trie树的AC自动机(含JAVA代码讲解)

目录基于双数组trie树的AC自动机构建双数组trie树AC自动机构建trie树构建双数组构建fail和output双数组trie树AC自动机的查询基于双数组trie树的AC自动机前面我们已经介绍过 AC自动机 ,但在实际使用当中如果需要构建的词典树特别大,原始版本的AC自动机在做查询时耗时会比较多,而基于双数组trie树的AC自动机恰好能够弥补这一缺陷。下面我们将基于hankcs实现的 AhoCorasickDoubleArrayTrie 代码来讲解双数组trie树的AC自动机的构建以及查询过程。

2021-12-06 23:53:07 1151

原创 双数组trie树详解

目录双数组trie树的构建构建base array构建check array双数组trie树的查询双数组trie树的构建NLP中trie树常用于做快速查询,但普通的trie树由于要保存大量的节点信息,当储存的词量非常大时,不仅所占空间巨大,而且查询的速度也不够快。而双数组trie树就可以比较好的解决这两个问题。之所以叫双数组trie树,是因为它只用base[]和check[]两个数组就将整个trie的信息储存了起来,这两个数组的构建规则是:base[i]+code(x)=jcheck[j]=i\be

2021-12-05 22:47:47 3162 7

原创 多模式匹配--AC自动机及JAVA实现

目录AC自动机介绍trie树三级目录AC自动机介绍AC自动机是一种基于trie树的多模式匹配算法,下面我们首先介绍trie树trie树三级目录

2021-11-01 18:08:57 1217

原创 KMP算法

kmp算法kmp算法简介kmp算法实现getNext()函数实现KMP实现kmp算法简介kmp算法是模式匹配的一种算法,假设我们有两个字符串,主串T和模式串P,我们需要设计一个方法,使得如果P在T中出现,就返回P出现的位置,否则返回-1。一般的想法是:// i是在主串T移动的index,j是在模式串P移动的indexwhile (i < T.length && j < P.length){ if (T[i] == P[j]){// 当两个字符相同,就比较下一个 i

2021-10-25 12:07:37 109

转载 中文分词评价指标——正确率、召回率和F1

中文分词评价指标——正确率、召回率和F1

2021-09-14 11:17:55 941

转载 CNN中的translation equivariant和translation invariant

目录等变性 equivariant不变性 invraiantCNN的 等变、不变等变性 equivariant通俗解释:对于一个函数,如果你对其输入施加的变换也会同样反应在输出上,那么这个函数就对该变换具有等变性。更严谨些:对于一个函数特征fff以及一个变换ggg, 如果我们有:f(g(x))=g(f(x))f(g(x)) = g(f(x))f(g(x))=g(f(x))则称fff对变换ggg有等变性。举一个例子,假设我们的变换ggg是将图像向右平移一段距离,我们的函数fff是检测一个人脸的位置(

2021-09-08 16:07:09 951

原创 Armijo条件,Wolfe条件,Goldstein条件

目录线搜索非精确线搜索(Armijo条件,Wolfe条件,Goldstein条件)强Wolfe条件线搜索算法线搜索对于迭代式xk+1=xk+αpkx_{k+1} = x_k +\alpha p_kxk+1​=xk​+αpk​,其中pkp_kpk​是由梯度法,牛顿法,CG法等方法计算出的下降方向,α\alphaα是下降的步长。寻找最优值α=min⁡αf(xk+αpk)\alpha = {\underset {\alpha}{\operatorname {min} }} f(x_k + \alpha p

2021-09-04 12:47:48 5778 2

原创 多项式插值,分段插值

目录插值法多项式插值二次插值分段插值插值法插值法是离散数学中的重要工具,主要是根据已知的数据点,来预测未知数据点(例如极值点)的方法。例如。已知fff函数经过了n个数据点,可以求一个n-1次的插值函数PPP,使得插值函数P(x)P(x)P(x)尽量接近原函数f(x)f(x)f(x),并由插值函数来预测未知的数据点。(通常是因为fff的极值不好求,用而用于拟合的插值函数一般是比较好求极值的函数,例如多项式。)多项式插值二次插值三点法二次插值要求已知fff在三个点x1<x2<x3x_1&

2021-09-04 12:46:13 1608

原创 牛顿法,拟牛顿法,BFGS,LBFGS

目录牛顿法拟牛顿法BFGS,LBFGS牛顿法首先介绍一下牛顿法。给定一个优化问题minxf(x)min_x f(x)minx​f(x)其中f(x)f(x)f(x)具有连续的二阶偏导。由Taylor展开,当x→xkx\rightarrow x_kx→xk​,f(x∗)=f(xk)+∇f(xk)(x∗−xk)+12(x∗−xk)T∇2f(xk)(x∗−xk)+O(x3)f(x^*) = f(x_k)+\nabla f(x_k)(x^*-x_k)+\frac{1}{2}(x^*-x_k)^T\nabl

2021-09-04 12:44:42 446

原创 统计语言模型,平滑方法,困惑度

目录统计语言模型零概率问题和平滑方法拉普拉斯平滑Add‐One 平滑Add‐K 平滑插值平滑古德-图灵估计Katz平滑统计语言模型统计语言模型的意义是通过计算一个语句出现的概率来判断它合乎语法的可能性,记一个序列S=(w1,w2,⋯ ,wn)S = (w_1,w_2,\cdots, w_n)S=(w1​,w2​,⋯,wn​),那么:P(S)=P(w1,w2,⋯ ,wn)=P(w1)⋅P(w2∣w1)⋅P(w3∣w1,w2)⋯P(wn∣w1,w2,⋯ ,wn−1)\begin{aligned}P(S)

2021-08-30 11:10:27 597

原创 CRF++代码解读

目录代码结构学习过程数据读入生成特征函数计算loss和gradientbuildLatticeforwardbackward优化算法 lbgfs停止条件预测过程之前我们在 理论篇 中详细介绍了CRF的公式推理。接下来我们会在这篇里读crf++代码(java版本),并结合理论篇里的公式,完成对整个CRF理论+实践的理解。代码原始版本可以戳crf4j代码结构代码的结构如下:"CrfLearn"和"CrfTest"分别是学习过程和预测过程的入口。"Encoder"是服务于"CrfLearn"用来执行具

2021-08-27 11:51:55 842

原创 Slurm基础用法

目录节点状态查看追踪任务运行任务使用示例节点状态查看用sinfo可以查看现有的节点,分区:$ sinfoPARTITION AVAIL TIMELIMIT NODES STATE NODELISTcpu* up 30-00:00:0 1 comp cn042cpu* up 30-00:00:0 45 mix cn[001-031,036-041,043-050]gpu up 30-00:00:0

2021-08-18 15:50:57 7838

原创 数学工具--几何

目录几何点到直线的距离几何点到直线的距离求一点x∗x^*x∗到直线wTx+b=0w^Tx+b=0wTx+b=0的距离等价于求:min⁡x 12∣∣x−x∗∣∣22s.t.wTx+b=0\begin{aligned}{\underset {x}{\operatorname {min} }} \,&\frac{1}{2} ||x-x^*||_2^2\\s.t.\quad &w^Tx+b=0\\\end{aligned}xmin​s.t.​21​∣∣x−x∗∣∣22​wTx+b=0​

2021-08-16 10:22:45 68

原创 数学工具--高等代数

目录高等代数矩阵与线性变换特征值分解,SVD分解,Moore-Penrose伪逆高等代数矩阵与线性变换要理解线性变化,首先要给出线性空间的定义:(线性空间)设KKK是一个数域,VVV是一个集合,在VVV上定义了一个加法"+",使得对VVV中任意两个元素α,β\alpha, \betaα,β,总存在VVV中唯一的元素γ\gammaγ满足γ=α+β\gamma = \alpha + \betaγ=α+β。在数域KKK与VVV间定义数乘运算,使得对KKK中任一数k及VVV中任一元素α\alphaα,总存

2021-08-16 10:20:41 174

原创 数学工具--概率统计

目录概率统计Hoeffding不等式,Markov不等式概率统计Hoeffding不等式,Markov不等式Markov不等式(Markov不等式)对于任何非负随机变量X,∀ϵ>0\forall \epsilon > 0∀ϵ>0,有:P(X≥ϵ)≤E(X)ϵP(X \geq \epsilon) \leq \frac{E(X)}{\epsilon}P(X≥ϵ)≤ϵE(X)​Proof: E(X)=∫0∞xf(x)dx≥∫ϵ∞xf(x)dx≥∫ϵ∞ϵf(x)dx=ϵP(X≥ϵ)

2021-08-16 10:19:22 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除