衡量分类器效果的一些指标 (4) – Dual Encoder 中的 Precision 和 Recall

Dual Encoder 是一个非常常用的网络模型。它用于将两个不同领域的数据比如query 和 document, 或者 Image 和 entity 映射到同一个 embedding 空间。这样训练出来的模型既可以用来做两个领域数据之间的相互查询,也可以用来对一对来自两个领域的数据进行打分。 通常在训练Dual Encoder模型的时候,我们使用一种叫做batch softmax的办法。假定我们的训练数据是 Image-Entity Pair,而且全部是正例,我们从训练数据文件中读取一批(假定100个)这样的训练数据,然后把它们排成一个矩阵,每个Image一行,每个Entity一列,这样我们一共形成一个100行100列的矩阵,其中第一个 Image-Entity pair的 Image 放在第一行,entity放在第一列,而第二个 Image-Entity pair的 Image 放在第二行,entity放在第二列,以此类推。在这样的矩阵中,我们一共有100*100 = 10000 个 Image-Entity Pairs,其中对角线上的那些 Pair是正例,而我们将所有不在对角线上的 Pairs就直接当做反例来训练。 衡量 Dual Encoder模型也可以使用precsion和recall这两个指标。其中 Precison一般使用 Precision@1,它的意思是说在使用模型对一个矩阵中的10000 Image-Entity Pairs 打分以后,从每一行中挑出得分最高的那个entity,这样每行一个,我们就一共收集100个entity。这些entity中处于对角线上的元素(也就是训练数据中的正例)的个数除以收集的entity总数(100),就是模型的 Precision@1。 我们也可以定义Precision@k (k大于1),也就是每行收集k个元素,然后还是用收集的元素中的对角线元素的个数除以收集的总数(100*k)。但是因为Dual Encoder 模型中假定一个 Image 只有一个 Entity 是正确的,因此 这个时候的 Precision@k 数字会比 Precision@1小很多,而且其实际意义也不明确。 相应的,Recall一般使用 Recall@k …

Buffon’s Needle

假定在地板上有一组平行线,它们之间的距离为。假定一根长度为 的针,随机扔到地板上,那么这根针和某一个平行线相交的概率是多少?这就是著名的Buffon’s Needle 问题。这个问题出现在量子力学简介这本书第一章的习题中。我研究这个问题,已经有一段时间了。直到最近,看了这个YouTube视频,才找到了一个简单的办法来解决。 如图所示,IJ表示needle,其中心点K到平行线的距离为 (a.k.a. 线段KM),needle和平行线的夹角是 。那么明显的的取值范围是:     的取值范围是:     我们假定和 都是自由随机变量,并且相互独立,那我们就有如下三个概率分布函数:             我们注意到所谓Needle和平行线相交, 也就是下面的等式成立:     那么这件事情发生的概率就是     我们注意到在上面的条件概率中, 是自由变量, 受到限制, 所以我们可以使用下面的在概率密度函数上二重积分来计算这个事件发生的概率:     如果 那么上面的公式就简化为:     Youtube 上还有好几个视频, 真的是用这个办法来估计 的值, 相当有趣。

分离变量法求解与时间无关的薛定谔方程

假定在基本的波动方程     中势能与时间无关,也就是:     我们就可以尝试使用分离变量法求解波动方程,即假定     这样我们就有:         注意偏微分都已经变成了常微分。 把上述微分带入到波动方程中,我们有:     两边都除以 , 我们就得到了:     注意到左面是一个关于时间t的方程,右面是一个关于空间x的方程,这两边能够相等,肯定是因为它们都是常数,也就是:         到这里已经很清楚了,的形式和势能V有关,而 的形式是一定的,即:    

三角形三条中线相交于一点

最近在辅导Yetao数学, 顺便温习了一下初等几何中如何证明三角形的三条中线相交于一点。自己以前没有学过这个证明,过程还挺有意思的,列在下边。 三角形ABC,假定D为BC的中点。E为AC的中点,BE和AD相交于点G。现在通过CG做一条直线,与AB相交于F。我们只要证明F是AB的中点,那么就可以证明三角形的三条中线相交于一点。假定我们用符号 S(ABC) 表示三角形 ABC 的面积,那么我们有: 因为BD等于CD S(BDA) = S(CDA) S(BDG) = S(CDG) 因为 S(BDA) = S(BDG) + S(BAG), S(CDA) = S(CDG) + S(CAG) 综合234,所以 S(BAG) = S(CAG) 按照同样的思路,我们可以得到 S(BAG) = S(BCG) 综合五和六,所以 S(BCG) = S(CAG) 下来,我们假定     很明显我们有         因为         考虑到上面的等式7,代入前面各项,我们有:     求解得到:     …

测不准原理的一个简单示例

如果波函数是:     那么我们可以相应的推导出:     也就是说位置的期望是在原点。     也就是说动量的期望是零。 这两个结果本身没有什么值得特别注意的。但是当我们开始计算位置分布的方差和动量分布的方差,有趣的事情就出现了。根据定义我们有:     关于方差有如下一个有趣的小定理:     而     我们就可以得出:     所以     按照同样的思路,对于动量我们有:     所以     显而易见:     这个结果的物理意义是什么呢?如果动量测量的方差和位置测量的方差乘积等于一个常数(普朗克常数), 那么动量测量的越准确 (也就是方差越小), 那么位置测量将会越不准确 (也就是方差越大), 这就是量子力学中的所谓测不准原理。这个结论纯粹是波动方程本身的内禀特性, 实际上动量或者位置这些基本的物理定义对于符合波动方程的微观粒子来说本身就有很多争论。量子力学和经典力学真是完全不同。

error function

昨天做 《Introduction to Quantum Mechanics》上的一道题目,即归一化下面的波函数:     搞了一会儿,才发现自己不会计算 的不定积分:熟悉的积分计算规则全部都用不上!上网查了一会,才发现这就是大名鼎鼎的 Error Function:     它的图像是: 这是一个不能用初等解析函数表示的函数,在统计学和量子力学中有着广泛的应用。对于我上面的问题,根据归一化的基本要求我们有:     如果我们假定:     那么:     按照erf 的形式展开有:     这样就计算出    

动量对于时间的导数等于势能对于距离的导数

自己最近在努力学习量子力学,看到Ehrenfest’s theorem: the expected values in Quantum Mechanics obeys the classical laws. 现在证明动量对于时间的导数等于势能对于距离的导数,即: (1)   First by definition, we have: (2)   (3)   How do we proof the equality? First we notice that the norm of the wave function can be expressed the following: (4)   so (3) can be expanded as:     …

继续持有或者换一种股票,哪一个更划算?

假定我现在有 Google 的股票100万,但是我发现 Amazon 的股票涨势更好,我是不是应该卖掉 Google 股票,换成 Amazon 的股票呢? 这个问题看上去挺简单,实际上却有多种因素的作用在里面,我最近跟一个投资股票市场多年的朋友请教了一下,算是有了一些理解。 最简单的,既然 Amazon 股票涨得更好,那当然应该卖掉 Google 股票,换成 Amazon 的股票。 可是接下来我又想到,把现在的 Google 股票卖掉本身就要交税,只能用剩下的钱去买 Amazon 股票,这样一来虽然 Amazon 的股票涨势更好,但是基数却更小,这样下来一定划算吗? 再进一步,即使基于持有 Google 股票将来总数更高,但是要交税的部分也更高(因为换成 Amazon 股票的时候就已经交过一部分税了),这样下来即使总数更高也不一定划算吧? 朋友帮我列了一个公式计算如下: 假定我现在 Google 股票有 100,其中 50 是原有资本, 50 是 截至目前为止需要交税的 Capital Gain。另外,假定 Capital Gain 部分的税率是 20%,假定未来一年里 Google 股票的涨幅 是 ,Amazon 股票的涨幅 是 ,那么: 如果不卖掉股票,那么未来一年持有的股票总额是:     …