Korean, Edit

安装和理解 AlphaGeometry

推荐帖子:【算法】【算法与机器学习索引】(https://jb243.github.io/pages/1278)


1. 概述

2. 安装过程

3. 语法


a. IMO 几何问题求解

b. 【jgex_ag_231问题重构及解决】(https://jb243.github.io/pages/2291)

c. 自然语言处理和大型语言模型



1.概述

⑴ 简介

AlphaGeometry:提交给 Nature 出版物的语言模型,实现符号演绎,能够解决国际数学奥林匹克(IMO)级别的几何问题。

② 由 Google DeepMind 开发,它似乎是假设生成模型 FunSearch 的进步。 ([参考](https://jb243.github.io/pages/2379))

⑵ 原理

①符号的含义:将每个命题向量化并放置在嵌入空间上的过程。

② 几何中的符号演绎:与《欧几里得几何原理》类似,从直线、构造、同心圆等公理出发,引出新命题。

③当给定问题的条件时,它在搜索空间内不断搜索新的真命题来证明给定的命题。

④ 这个过程就像一个人思考一道数学题很长时间才最终找到答案。

⑤ 更具体地说,1)它将给定的几何问题表示为点、线、面,2)创建图数据结构,然后3)通过将图数据结构与定理集连接起来进行运算。

○ 那么,是否可以将医疗数据表示为图数据结构,并将其与临床信息联系起来,并实现逻辑推理模型? (受保护_6

⑶ 工艺流程

① AlphaGeometry 主要通过角度追踪来解决问题。

○ 许多几何问题都可以通过角度追踪来解决。例如,四点在圆上的命题(循环命题)等价于两个同底三角形的周角相等的条件。

步骤1. DD+AR:在几何中重复使用循环四边形和相似三角形,更类似于经典算法而不是AI(ref)。

步骤2. AlphaGeometry 模式:随机添加新点,然后执行DD+AR,使用基于LLM 的方法。

○ 添加新点是人类的启发式过程,现在随着基于变压器的法学硕士的出现而创造性地成为可能。

⑷ 局限性

限制 1. 虽然几何问题基于确定的命题得出逻辑结论,但现实世界的问题通常依赖于不确定的命题进行决策。

限制2. 几何问题大多涉及等式问题,而现实世界的决策经常涉及不等式问题。

○ 等价问题示例:在同一个圆上,M 是 A 和 B 的中点等。

○ 比较问题示例:使用吉西他滨治疗乳腺癌患者会提高生存率吗?» ○ 鉴于三角形的内在局限性,解决等式问题的 AlphaGeometry 能否解决比较问题?

○ 后来,6月25日,推出了解决不平等问题的人工智能。 (IneqMath)

局限性 3. 几何问题处理双向命题关系(其中两个命题互为充要条件),但在现实决策中,存在许多单向命题关系。

○ 换句话说,如果 A → B 成立,则在几何问题中 B → A 也成立。然而,在现实决策中,经常出现 B ⇏ A 的情况。

○ 同样,如果 A → B 成立,则在几何问题中 ~A → ~B 也成立。然而,在现实世界的决策中,经常出现〜A⇏〜B的情况。

⑸ 意义

意义1. 第一个逻辑推理模型。 (受保护_7

意义2. 大规模逻辑推理的可能性:如果解决一个IMO问题需要连接几十个命题,那么人类能否通过AI连接上千个命题得出新的结论?这或许可以通过人工智能实现,标志着认知领域的突破。 (受保护_8

意义3. 即使有错误的命题,也不影响最终的逻辑推理。



2.安装过程

⑴ 由于按照官方文档安装会出现错误,所以我按照以下步骤操作。

步骤1: 在Ubuntu服务器上运行以下命令。

① 就我而言,我使用了 Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-105-generic x86_64)


受保护_0


步骤2: 安装以下软件包。


受保护_1


步骤3: 将对应目录下的run.sh替换为【以下文件】(https://blog.kakaocdn.net/dn/uKsVB/btsIQ0w0cZh/CwBJfosgcIk0cQQKe4Q110/run.sh?attach=1&knm=tfile.sh) ([参考](https://github.com/google-deepmind/alphageometry/pull/54/commits/3debb824a1c199c789fb8d4f562dc1319ac9c6c8))。

注意: 原论文使用了 BATCH_SIZE=32BEAM_SIZE=512DEPTH=16,因此这些值都得到了反映。

第4步: 适当注释掉numericas.py中的matplotlib.use('TkAgg')draw函数。

原因: 由于脚本运行在没有 GUI 的无头服务器上,执行与 matplotlib 相关的绘图函数会导致以下错误:


受保护_2


步骤5: 运行以下命令:


受保护_3


⑺ 在 ddar 模式下运行 AlphaGeometry:将 run.sh 文件中的示例替换为以下代码并重新安装。


受保护_4


⑻ 在 alphageometry 模式下运行 AlphaGeometry:将 run.sh 文件中的示例替换为以下代码并重新安装。


受保护_5



3. 语法

⑴ 点、线、面的定义

d = free

y = free y

a b = segment a b:AB是线段

b c = segment:BC 是线段

a b c = triangle:ABC是三角形

d = eq_triangle d a b:DAB是等边三角形

s c p = iso_triangle s c p:SCP是等腰三角形,SC和SP长度相等

c a b = r_triangle c a b:CAB 是直角三角形,∠C 是直角

c a b = risos c a b:给定一个直角三角形ABC,其中AB等于AC且AB垂直于AC

a b c d = quadrangle a b c d:ABCD是四边形

d e = square a c d e:DE是正方形ACDE的两个点

a b c d = rectangle a b c d:ABCD是一个矩形

a b c d = trapezoid a b c d:ABCD是AB和CD互相平行的梯形。> ⑫ a b c d = eq_trapezoid a b c d:ABCD 是等腰梯形,AB 和 CD 平行,AD 等于 BC。

a b c d = isquare a b c d

c = nsquare c b a

d = psquare d a b

a b c d e = pentagon a b c d e:ABCDE 是五边形

⑵ 特殊点定义

o = midpoint o b c:O是线段BC的中点

o = circle o a b c:O是三角形ABC的外心

o1 = circle a d c:O1是三角形ADC的外心

o = circumcenter o b i c: O 是三角形 BIC 的外心

i = incenter i a b c:I是三角形ABC的心

t1 t2 t3 i = incenter2 t1 t2 t3 i a b c:三角形ABC的内切圆I分别在T1、T2、T3处与BC、CA、AB相切

h = orthocenter h a b c:H为三角形ABC的重心

t = mirror t r s:S 是 RT 的中点

x1 = reflect x1 h1 t1 t2: X1 是 H1 在线段 T1T2 上的反射

w@6.9090049230038776_-1.3884003936987552: W 是 (6.9090049230038776, -1.3884003936987552) 处的点

m l k j = excenter2 m l k j a b c:J 为三角形 ABC 的外心,M、L、K 分别为 J 到 BC、AC 和 AB 的垂线的脚

⑶ 点在特定的直线或圆上

a = on_line a b q:A、B、Q 共线(B 不一定位于 A 和 Q 之间)

a1 = on_line b c:A1 在线段 BC 上

m = on_circle m g1 a:M 在经过 A 的圆 G1 上

z = on_aline z a p a b x: ∠ZAP = ∠ABX

e = on_aline d a d c b: ∠EDA = ∠DCB

o = on_bline o r s:O 在 RS 的垂直平分线上

x = on_bline b c:X 位于 BC 的垂直平分线上

c = on_pline c m a b:线段CM与AB平行

q = on_pline p a b:线段 PQ 与 AB 平行

q = on_tline q m w m:线段 QM 和 WM 垂直或 Q 在 M 点与 WM 相切的圆上

○ ` h = on_tline b a c`:线段HB垂直于AC,或者H是与线段AC相切的圆经过B点的点。

h1 = foot h1 a b c:H1 是 A 到 BC 垂线的底点

q = on_dia q a h:AQ 垂直于 HQ

d = eqdistance d a b c: AD = BC

e = eqdistance d b c:ED = BC

x = parallelogram e a m x:X是平行四边形EAMX的剩余顶点

q t p s = cc_tangent q t p s i1 f1 i2 f2:当存在以I1为圆心穿过F1、以I2为圆心穿过F2的圆时,两个圆的公切线为QT和PS

q = intersection_cc q a o p

f = intersection_lc f e d b

f = intersection_ll f b d c e

f = intersection_lp f a c e c b

d = intersection_pp d a b c c a b

d = intersection_lt d c e a a o

e = intersection_tt e b b o c c o

f = shift f c a e

r = lc_tangent r p a

d x = trisegment d x c b

d e = trisect d e b a c

d e f = 3peq d e f c a b

f g h i = 2l1c f g h i a b e d

e g = e5128 e g a b c d

⑷ 点处于特定角度

f = angle_bisector f b a z:F 在 ∠BAZ 的角平分线上

d = angle_bisector b a c:D 在 ∠BAC 的角平分线上

e = angle_mirror e c a d: ∠EAD = ∠CAD

a = eqangle2 b t e: ∠ABT = ∠AET

p1 = eqangle3 p c a b c: ∠BAC = ∠P1PC

c = s_angle b a c 60

⑸ 问题定义

? cong o p o q:表明OP = OQ

? coll x o a:显示X在OA段上

? perp k t o1 t:表明线段KT垂直于线段O1T

? para d e f g:表明线段DE与FG平行

? eqangle e c e j e j e f:证明∠CEJ = ∠JEF,即EJ平分∠CEF

? eqangle e c c d d f f c:证明 ∠ECD = ∠DFC

? eqangle f g f b c f c b:证明 ∠GFB = ∠FCB

? cyclic p q r m: 证明 P、Q、R 和 M 位于同一个圆上(循环四边形证明)

? eqratio k k1 l l1 r q r p:证明KK1 / LL1 = RQ / RP(其中AB表示线段AB的长度)

? midp g a d : 证明G是AD的中点

? simtri e f g e c b : 表明 ΔEFG 与 ΔECB 相似

? contri e a b a b e



输入:2024.05.05 22:23

results matching ""

    No results matching ""