自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

八门金锁的技术博客

后端开发、机器学习和自然语言处理的笔记。你的点赞是我持续创作的动力。

  • 博客(132)
  • 资源 (2)
  • 收藏
  • 关注

原创 机器学习模型身后的数学和统计背景:统计与信息论Probability and Information Theory

术语样本空间(sample space):Ω\OmegaΩ,包含了所有可能出现的结果的集合。比如在掷一次骰子的样本空间可以用{1,2,3,4,5,6}表示。事件集(event space): FFF,a collection of subsets of Ω\OmegaΩ,用来表示出现的结果。事件集未必是样本空间中的单一元素,也可以是复杂元素。比如在掷一次骰子的样本空间中,可以用{1,3,5}表示结果为奇数的事件。概率函数(probability function): PPP,该函数完成了从事件到该事件

2020-12-08 06:29:06 191

原创 Python中的__repr__和__str__方法

Python中类的__repr__和__str__方法还挺容易让人产生困惑的。

2022-11-11 15:08:47 193

原创 cell-var-from-loop

关于python及其他语言中存在的cell-var-from-loop问题给出解答和建议。

2022-11-07 12:11:55 191

原创 G内部工具:Monarch监测系统及其协作工具

公司内部检测工具所需要的模块较多,很多新员工无法分清他们之间的关系,今天来理理头绪。

2022-10-19 12:24:01 33

原创 G内部工具:Fig

公司内部工具。

2022-10-16 13:51:50 143

原创 2021个人北美秋招总结

秋招结束后的一些回顾

2021-12-16 08:10:57 1991

原创 TorchScript的简介以及项目踩坑

TorchScript的简单介绍以及自己的踩坑。

2021-12-13 08:44:06 1704

原创 实用线性代数和凸优化 Convex Optimization

介绍了最优化模型及其应用,范围从机器学习和统计到决策和控制,重点是数值上易处理的问题,如线性或约束最小二乘优化。涵盖两个主题:实用线性代数和凸优化。

2021-12-11 08:26:34 353

原创 2021fall Bloomberg校招

9/28 一面binary tree path sumleft side view of binary tree

2021-11-11 02:52:09 332

原创 2021fall Broadway Tech校招

9/19 一面一个m*n的grid中有不定数量的奖励,要求收集所有的奖励的最短路线,并且每个cell只能走一次。用1表示奖励,-1表示墙,0表示空地。input包含grid和起止点的坐标。9/27 二面项目:大二项目,rmi over http?代码:对我自己写的sample code(AI下棋Teeko)的深挖。...

2021-10-20 14:20:01 36

原创 攻击NLP模型:通用对抗触发器入门

背景和重要性对于非全局触发器(只对特定模型和输入奏效)。为了写公式方便起见,我们假设触发器是在正常输入之前。我们用f表示特定模型,t表示正常输入,tadvt_{adv}tadv​表示触发器,L表示损失函数,D表示输入数据的分布。argmintadvEt∈D[L(ytarget,f(tadv;t))]argmin_{t_{adv}} E_{t \in D} [L(y_{target}, f(t_{adv;t}))]argmintadv​​Et∈D​[L(ytarget​,f(tadv;t​))]为

2021-09-14 13:51:36 199

原创 2022校招:华为笔试

三题120分钟,分值=100+200+300。需要自己处理输入。华为是谁?华为是全球领先的信息与通信技术( ICT)解决方案供应商,专注于 ICT 领域,坚持稳健经营、持续创新、开放合作,在电信运营商、企业、终端和云计算等领域构筑了端到端的解决方案优势,为运营商客户、企业客户和消费者提供有竞争力的 ICT 解决方案、产品和服务,并致力于使能未来信息社会、 构建更美好的全联接世界。目前,华为有 17 万多名员工,业务遍及全球 170 多个国家和地区,服务全世界三分之一以上的人口。我们为世界带来了

2021-09-09 04:14:27 1441

原创 分布式系统设计的概念

指标可扩展性 Scalability关键在于当工作量大幅增加时,尽量减少系统性能的损失。水平扩展 Horizontal Scaling添加更多的机器。垂直扩展 Vertical Scaling提高已有机器的性能(CPU、内存)。可靠性 Reliability尽量减少系统宕机的概率,保证系统的良好运转。这个是分布式系统最核心的概念之一。我个人感觉有一点类似数据库中耐久性设计。可用性 Availability保证系统正常执行功能。可用性和可靠性有一定差别。可靠性保证了可用性,但是反过来不成

2021-07-21 11:10:40 344

原创 Calc3: Vector Fields

Vector FieldsDefinitionA vector field on R3R^3R3 with domain as D is a function F⃗\vec FF that assign to each point within D a vector F⃗(x,y,z)\vec F(x,y,z)F(x,y,z). We often write it as <P(x,y,z),Q(x,y,z),R(x,y,z)><P(x,y,z),Q(x,y,z),R(x,y,z)&gt

2021-04-28 04:42:21 195

原创 Calc3: Multiple Integrals

Double Integrals Over RectanglesGeometryWe have z=f(x,y) defined on [a,b]×[c,d][a,b] \times [c,d][a,b]×[c,d]. We name the domain to be D, and cut it into smaller rectangles. Take an arbitrary point (xij,yij)(x_{ij}, y_{ij})(xij​,yij​) on the rectangle [x

2021-03-30 07:12:41 160

原创 Calc3: Partial Derivative

Functions of Several VariablesFunctions of Two VariablesA function of 2 variables f(x,y)f(x,y)f(x,y) where (x,y)∈D⊂R2(x,y) \in D \sub R^2(x,y)∈D⊂R2. Let z=f(x,y)z =f(x,y)z=f(x,y). We can draw the graph on the 3d coordinate.Contour CurvesThe contour cur

2021-03-09 06:18:17 232

原创 Calc3: Vector Functions

Vector Functions and Space CurvesVector FunctionsIn general, we describe the motion of a particle by a vector functionr⃗(t)=<f(t),g(t),h(t)>\vec r(t) = <f(t), g(t), h(t)>r(t)=<f(t),g(t),h(t)>where f, g, h are scalar-valued functions

2021-02-16 05:36:40 260

原创 Calc3: Geometrics

Equations of Lines and PlanesLinesGiven r=(x,y,z);v⃗=<a,b,c>r = (x,y,z); \vec v =<a,b,c>r=(x,y,z);v=<a,b,c>. We can write a point rrr on a line asr=r0+t⋅v⃗r = r_0 + t \cdot \vec vr=r0​+t⋅vAnother way of writing a line. Assume a,b,c

2021-02-08 01:48:23 140 2

原创 Calc3: Vectors

3D Coordinate SystemsCoordinates3D space: Fix a reference point, call it origin OOO. Three directed lines through the origin, called coordinate axes. Need 3 numbers to describe the location of one point. We use R3R^3R3 to denote 3D space.R3={(x,y,z):x,y

2021-01-27 03:18:14 130

原创 Transformer和自注意力机制Self-Attention详解和时间复杂度计算+Image Transformer简介

Transformer背景注意力机制已经在编码器解码器模型中广泛应用,极大提升了模型性能。我们为什么不能尝试完全抛开RNN、CNN等传统结构,直接尝试使用注意力机制来捕捉输入和输出之间的依赖呢?结构输入序列是(x1,...,xn)(x_1, ..., x_n)(x1​,...,xn​),编码器将其映射到向量表示(z1,...,zn)(z_1, ..., z_n)(z1​,...,zn​),解码器再根据此中间向量产生序列(y1,...,ym)(y_1, ..., y_m)(y1​,...,ym​)。解

2021-01-19 04:44:49 10168 3

原创 用于自然语言处理的卷积网络

引言我们通常使用RNN处理文本。但是RNN也有其缺点,例如对没有前文的短语的处理能力较弱;另外,在形成文本向量时,通常会很好地捕捉最后一个词的表示,但无法很好捕捉之前的词的表示。我们只会在最后一步使用softmax。在上例中,句向量基本跟最后一个词的词向量相同。既然存在这个问题,我们何不对每个固定长度的短语生成一个向量表示?我们不用在意该短语是否具有语法意义。这个任务使用CNN最合适不过。textCNN一维卷积层我们可以将文本当作一维图像,从而可以用一维卷积神经网络来捕捉临近词之间的关联。与二

2021-01-16 01:20:42 396

原创 决策树Decision Tree

决策树既可以应用于分类问题,也可以应用于回归问题。应用优点非线性交叉效应稀疏性缺点不稳定表现力较差精度不足伪代码def TreeGenerate(D, A): 生成节点node if D中样本全属于类别C: 将node标记为C类叶节点 return if A = ∅ or D中样本在A上取值相同: 将node标记为D中样本数最多的类叶节点 return 从A中选择最优

2020-12-18 11:11:16 157

原创 梯度提升决策树GBDT及其优秀改进XGBoost的浅析

梯度提升决策树英文是Gradient Boosting Decision Tree (GBDT)。是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案。值得注意的是,GBDT中的树都是回归树,不是分类树。GBDT主要用于回归问题(包括线性和非线性),但也可以用于分类问题。我们在已经搞清楚决策树(DT)部分的前提下,可以简单看看梯度迭代(GB)。GB核心的思想就是每一棵树都在学习之前所有树结论和的残差。输入训练集数据D={(xi,yi)}i=1ND = \{(x_i,y_i)\}

2020-12-18 11:09:49 917

原创 连续变量的转换:ECDF、Box-Cox、Yeo-Johnson

前言构造连续变量的衍生变量。在机器学习问题中,我们希望数据是服从正态分布的(或者一些常见的简单的分布)。然而,现实数据常常不服从正态分布。我们尝试进行转换,使之服从(至少更接近)正态分布。值得注意的是对于XXX和yyy的转换是不一样的。基于ECDF的转换ECDF的英文是Empirical cumulative distribution function。CDF就是统计中常说的累计分布,即P(X≤x)=F(x)P(X \le x) = F(x)P(X≤x)=F(x)。我们假设这个函数是可逆的。同时,我们

2020-12-17 11:45:51 1413

原创 实体嵌入Entity Embedding及代码实现

实体嵌入英文是Entity Embedding。我们希望深度学习能够处理结构化数据。在处理类别特征时,常用办法包括独热编码、顺序编码等。在NLP任务处理中,词和文章的表示都得益于嵌入。我们同样可以将这个思想在结构化数据领域加以运用。原理假设NNN表示分箱的数量,MMM表示嵌入的维度,BBB表示训练时候的批量尺寸。我们用x∈RB∗1x \in R^{B*1}x∈RB∗1代表输入数据,E∈RN∗ME \in R^{N*M}E∈RN∗M表示嵌入矩阵,c∈RN∗1c \in R^{N*1}c∈RN∗1表示分箱

2020-12-17 10:55:52 1554

原创 调用torchtext报错OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory

环境torch版本1.4.0报错报错信息如题。调用torchtext报错OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory解决方案报错是由于torch版本跟。根据torchtext安装官网https://pypi.org/project/torchtext/的信息,应该安装torchtext的0.5版本。不过,经过博主实验,使用0.6版本完全没有问题。...

2020-12-17 04:29:26 7486 6

原创 优化算法optimization:AdaDelta

AdaDelta算法提出动机除了RMSProp算法以外,AdaDelta算法的提出也是为了解决AdaGrad算法在迭代后期较难找到有用解的问题。算法AdaDelta算法也像RMSProp算法一样,使用了小批量随机梯度gtg_tgt​按元素平方的指数加权移动平均变量sts_tst​,这里的ρ\rhoρ类似RMSProp中的γ\gammaγ。但有意思的是,AdaDelta算法没有学习率这一超参数。另外,AdaDelta算法还维护一个额外的状态变量Δxt\Delta x_tΔxt​,其元素同样在时间步0时

2020-12-15 06:24:37 337

原创 优化算法optimization:AdaGrad

AdaGrad算法提出动机在SGD的每次迭代中,目标函数自变量的每一个元素在相同时间步都使用同一个学习率来进行迭代。我们考虑一个二维输入向量x=[x1,x2]Tx = [x_1,x_2]^Tx=[x1​,x2​]T和目标函数$f(x) $。x1=x1−η∂f∂x1x2=x2−η∂f∂x2x_1 = x_{1} - \eta \frac {\partial f} {\partial x_1} \\\\x_2 = x_{2} - \eta \frac {\partial f} {\partial x_

2020-12-15 06:23:01 343 1

原创 优化算法optimization:RMSProp

RMSProp算法提出动机在AdaGrad的每次迭代中,因为调整学习率时分母上的变量sts_tst​一直在累加按元素平方的小批量随机梯度,所以目标函数自变量每个元素的学习率在迭代过程中一直在降低(或不变)。因此,如果AdaGrad算法没有在前期找到较优解,在迭代后期由于学习率过小更难趋近最优解。RMSProp算法通过融合指数加权移动平均对这一点进行了改良。简单来说,RMSProp融合了动量法和AdaGrad的优点。算法对每次迭代做如下改动st=γst−1+(1−γ)gt∘gtxt=xt−1−ηs

2020-12-15 06:22:03 622

原创 优化算法optimization:Adam

Adam算法提出动机Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均。算法给定超参数0≤β1<10 \le \beta_1 < 10≤β1​<1(算法作者建议设为0.9),和超参数0≤β2<10 \le \beta_2 < 10≤β2​<1(算法作者建议设为0.999)。对每次迭代做如下改动vt=β1vt−1+(1−β1)gtst=β2st−1+(1−β2)gt∘gtv_t = \beta_1 v_{t-1} + (1-\beta

2020-12-15 06:21:07 271 1

原创 优化算法optimization:SGD动量法momentum

动量法提出动机在SGD的每次迭代中,梯度下降根据自变量当前位置,沿着当前位置的梯度更新自变量。然而,如果自变量的迭代方向仅仅取决于自变量当前位置可能会带来一些问题。我们考虑一个二维输入向量x=[x1,x2]Tx = [x_1,x_2]^Tx=[x1​,x2​]T和目标函数f(x)=0.1x12+2x22f(x) =0.1x_1^2+2x_2^2f(x)=0.1x12​+2x22​。import numpy as npimport matplotlib.pyplot as plt# 目标函数d

2020-12-14 12:15:09 1119

原创 机器翻译Machine Translation及其Tensorflow代码实现(含注意力attention)

机器翻译翻译句子xxx从一种语言(源语言)到句子yyy另一种语言(目标语言)。下面这个例子就是从法语转换成为英文。统计机器翻译英文是Statistical Machine Translation (SMT)。核心思想是从数据中学习概率模型。argmaxyP(y∣x)=argmaxyP(x∣y)P(y)argmax_y P(y|x) \\\\= argmax_y P(x|y) P(y)argmaxy​P(y∣x)=argmaxy​P(x∣y)P(y)公式前一部分P(x∣y)P(x|y)P(x

2020-12-12 07:42:22 1613 10

原创 序列到序列网络seq2seq与注意力机制attention浅析

序列到序列网络序列到序列网络(Sequence to Sequence network),也叫做seq2seq网络, 又或者是编码器解码器网络(Encoder Decoder network), 是一个由两个称为编码器解码器的RNN组成的模型。在这里进行介绍的作用是确定变量的名称,为接下来讲注意力机制做铺垫。自编码器也是seq2seq模型中的一种。在自编码器中,解码器的工作是将编码器产生的向量还原成为原序列。经过压缩之后不可避免的会出现信息的损失,我们需要尽量将这种损失降低(方法是设置合理的中间向量大小

2020-12-12 07:39:17 1084

原创 机器学习基础专题:高斯混合模型和最大期望EM算法以及代码实现

高斯混合模型混合模型是潜变量模型的一种,是最常见的形式之一。而高斯混合模型(Gaussian Mixture Models, GMM)是混合模型中最常见的一种。zzz代表该数据点是由某一个高斯分布产生的。π\piπ在这里是指该点属于哪一个高斯分布的先验概率。除次之外,我们还需要找到每一个高斯分布的参数,即均值和协方差矩阵。p(x)=∑k=1Kπkpk(x)(1)p(x)=∑k=1KπkN(x∣μk,Σk)(2)p(x) = \sum_{k=1}^K \pi_k p_k(x) \qquad \qquad

2020-12-09 06:47:03 397

原创 使用卷积神经网络进行文本分类textCNN

使用卷积神经网络进行文本分类textCNN一维卷积层我们可以将文本当作一维图像,从而可以用一维卷积神经网络来捕捉临近词之间的关联。与二维卷积层一样,一维卷积层使用一维的互相关运算。在一维互相关运算中,卷积窗口从输入数组的最左方开始,按从左往右的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。多输入通道的一维互相关运算也与多输入通道的二维互相关运算类似:在每个通道上,将核与相应的输入做一维互相关运算,并将通道之间的结果相

2020-12-01 06:56:24 1156 1

原创 fastText中的子词嵌入和高效文本分类:简单高效性能好

fastText由Facebook主持的研究。该研究分为两个项目:子词嵌入和高效文本分类。有学者认为fastText只包含高效文本分类,主张它才是该研究的重中之重。不过,在Facebook相关研究的官网,是对两个项目各给出一篇论文的链接。本文以官网为准,对两个模块都进行介绍。子词嵌入构词学(morphology)作为语言学的一个重要分支,研究的正是词的内部结构和形成方式。英语单词通常有其内部结构和形成方式。例如,我们可以从“dog”, “dogs” 和 “dogcatcher” 的字面上推测它们的关系

2020-12-01 05:43:10 324

原创 从词向量衡量标准到全局向量的词嵌入模型GloVe再到一词多义的解决方式

衡量标准Evaluation此处的衡量标准主要是针对单词向量而言。内部标准Intrinsic固定任务 (specific subtask)运行时间 (time taken to compute)能否帮助理解系统 (helps to understand the system)外部标准Extrinsic真实任务的评估 (evaluation on a real task)计算正确率的用时 (time taken to compute accuracy)不清楚是该子系统问题还是它与其他子

2020-11-30 11:42:44 436 4

原创 RNN的优秀变种: LSTM & GRU

长短期记忆大名鼎鼎的Long short term memory (LSTM)。LSTM的提出,正是为了解决RNN的痛点,加强了捕捉时间序列中时间步距离较大的依赖关系的能力。需要注意的是LSTM并没有保证梯度爆炸或者梯度消失的问题不会出现,它仅仅是为模型学习长依赖提供了一种更简便的方法(记忆细胞)。我们再次熟悉一下对于各个变量的标记。假设激活函数为ϕ\phiϕ,该层的隐藏单元个数是hhh,样本数为nnn,特征维度是ddd (在此处就是字典大小)。所以数据可以表示成X∈Rn∗dX \in R^{n*d}

2020-11-17 01:37:15 284

原创 时序数据采样、原始循环神经网络RNN、RNN梯度爆炸原因推导

时序数据的采样随机采样每个样本是原始序列上任意截取的一段序列。相邻的两个随机小批量在原始序列上的位置不一定相毗邻。因此,我们无法用一个小批量最终时间步的隐藏状态来初始化下一个小批量的隐藏状态。在训练模型时,每次随机采样前都需要重新初始化隐藏状态。相邻采样相邻的两个随机小批量在原始序列上的位置相毗邻。可以用一个小批量最终时间步的隐藏状态来初始化下一个小批量的隐藏状态,从而使下一个小批量的输出也取决于当前小批量的输入,并如此循环下去。这对实现循环神经网络造成了两方面影响:一方面, 在训练模型时,我们只需

2020-11-17 01:33:35 258

原创 语言建模

语言建模语言建模(language modeling)就是预测句子中下一个出现的单词的任务。更精确的说法是,给定已经出现的所有词,求下一个次出现的概率分布。P(wt+1∣w1,...,wt)P(w_{t+1}|w_1,...,w_t)P(wt+1​∣w1​,...,wt​)语言模型传统模型假设当前词与之前所有的词有关。P(w1,w2, ... ,wT)=∏t=1TP(wt∣w1, ... ,wt−1)P(w_1, w_2, \ ...\ , w_T)

2020-11-15 11:52:36 530

2010-capitalbike-clean.csv

稍作清理之后的Capital Bike公司的公用数据。适合学院的学生进行sql查询练习。原来的数据链接是https://s3.amazonaws.com/capitalbikeshare-data/index.html

2020-10-18

census.csv

包含了大量美国的人口普查的数据。已经进行过数据除敏。对于正在学习数据科学的同学做数据的处理有很大的帮助。

2020-09-22

空空如也

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

TA关注的人

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