python 实现大语言模型中的概率论:两人轮流出手对决时取胜概率的推导

假设你跟朋友通过打赌投篮来打赌一万块。你们找到一个篮球框,然后约定轮流投篮,谁先投进谁赢。假设你投进的概率是 p,也就是投不进的概率是 1-p,你对手投进的概率是 q,投不进的概率是 1-q,如果由你先投,那么你取胜的概率是多少。

在上面问题中我们把事情进行了理想化假设。也就是你和对手的准度不会变,不管你们投了 10 次还是 100 次,你们状态都保持一致,投入的概率永远不变。这个问题涉及到概率论中一个大类问题,那就是成功率为 p 的情况下,我们需要执行多少次试验才能获得第一次成功。要解决这个问题,我们首先需要了解几何不等式:

假设 |r| < 1,那么有:
请添加图片描述
假设你在第 n 次投篮时,你投进获得了胜利,我们看基于 n 如何推导出取胜的规律来。如果 n=1,这意味着你第一次投就成功,对应的概率就是 p,如果 n=2,那意味着你投第一次不中概率为 1-p,然后对手投第一次同样不中,概率为 1-q,然后你投第二次结果中了,概率为 p,此时对应的概率就是(1-p)(1-q)p,如果我们这里用字符 r 替代(1-p)(1-q),那么对应概率就简化为 rp,如果 n=3,那说明你前两次不中,概率就是(1-p) ^ 2,对方前两次也不中,概率为(1-q) ^ 2,然后你第三次中了,于是概率就是(1-p) ^ 2 * (1-q) ^ 2 * p ,由于我们使用 r 代替(1-p)(1-q),因此(1-p) ^ 2 * (1-q) ^ 2 就可以简化为 r ^ 2,于是概率就是 r ^2 * p,由此我们就能推而广之,那就是当你在第 n 次投篮时成功对应的概率就是 r ^( n-1) * p。

由此我们就能推断,你在竞争中获胜的概率,那就是头一次就赢的概率加上投两次就赢的概率…,加上投 n 次就赢的概率,于是有:

请添加图片描述
注意这里的 r 是替代(1-p)(1-1)。于是我们用前面提供的公式就可以把上面式子简化为:

∑ n = 0 ∞ r n p = p ∑ n = 0 ∞ r n = p 1 − r \sum_{n=0}^{\infin}r^{n}p=p\sum_{n=0}^{\infin}r^{n} =\frac{p}{1-r} n=0rnp=pn=0rn=1rp请添加图片描述
事实上我们可以推导出上面的结论而不需要前面的几何级数公式。是想你第一次投篮就赢的概率是 p,如果你第一次不进,那么你要赢得比赛就需要对手第一次也不能进,此时你赢得概率没有变,就如同第一轮比赛没有发生过一样。如果使用 x 表示你赢的概率,那么 x 就等于你第一次投进的概率,加上你第一次不进,对方也第一次不进,然后乘以你赢的概率,也就是 x = p+(1-p)*(1-q)*x,如果我们把 x 解出来,那么就要 x = p / (1-r),可以看到我们第二种推导逻辑要比第一种简单和巧妙的多。

下面我们来点高级货,搞点微积分玩玩,这里的推导在后面的章节中会有大用处。有过高数学习经验的同学或许都了解过一个概念叫分部积分,要计算一个复杂的积分,我们需要把积分内的变量做各种代换才能计算出结果,我们看个例子,假设要计算如下积分,也就是公式(1):
请添加图片描述
我们需要做如下替换:
请添加图片描述
然后使用微分计算就有:请添加图片描述
根据分部积分规则:
请添加图片描述
把上面步骤结合起来就有也就是公式(2):

请添加图片描述
由于:

请添加图片描述
由此公式(2)就转换为下面的公式(3):

请添加图片描述
同理我们再次实现分部积分处理公式(3)右边部分的积分,先做如下替换:
请添加图片描述
于是根据微分计算规则就有:

请添加图片描述
由此公式(3)就转换为下面的公式(4):
请添加图片描述
由于:

请添加图片描述
把上面推导代入公式(4),我们得到下面的公式(5):

请添加图片描述
这里注意到根据公式 1:

在这里插入图片描述

公式(5)就可以化简为下面的公式(6):

请添加图片描述

我们把变量 I 从公式(6)中解出来就有:
请添加图片描述
这样我们就解开了公式(1),于是就有如下公式(7):

请添加图片描述
至此我们解决了一个复杂微积分的计算问题,在这里我们也能体会到为何很少有人能在数学上有所积累,其实不在于它有多复杂而在于其过程的繁琐,在上面一系列步骤的引出中,只要有一步你没搞懂,那么后面推导就搞不懂,另外按下葫芦浮起瓢,你看到步骤 5,6 就会忘了步骤 3,4,因此需要我们反复琢磨才能把所有逻辑搞懂。当然付出肯定会有回报,有好的数学基础才能掌握复杂的大语言模型算法,或许爬山金字塔顶端并非路程有多难走,而是我们没有那个耐心持续走下去。

更多精彩内容请在 B 站搜索 coding 迪斯尼。

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值