博客 / Others/ 数学菜鸟的AI学习攻略-AI学习常用数学符号

数学菜鸟的AI学习攻略-AI学习常用数学符号

数学菜鸟的AI学习攻略-AI学习常用数学符号

导读

自学AI的过程中,理解数学符号至关重要。它能让你用一种非常简洁的方式来表达复杂的想法。

如果你对AI这个激动人心的领域感兴趣,那么数学就是实现目标的关键工具。无论是想写出更好的图像识别程序,还是理解自然语言的交互界面,甚至有一天创造自己的算法,数学都是基础。

如果你想通过阅读arXiv等平台上的论文来自学AI,那么首先需要学会理解这些数学符号。学习数学符号最重要的原因,就是它能让你用一种非常简洁的方式来表达一个复杂的想法。没有它,解释每个方程都可能需要花费大量篇幅。

这篇文章旨在告诉你,学习这些符号并不像想象中那么难。我们将数学符号与现实世界关联起来,并使用已知的概念进行类比,帮助你脚踏实地地学习。

当然,一篇文章无法覆盖阅读论文所需的全部数学符号。因此,你可能需要一本更全面的指南作为补充,例如Edward R. Scheinerman的《Mathematical Notation: A Guide for Engineers and Scientists》。这本书可以作为你学习路上的常用参考书。

让我们开始吧:什么是算法?

算法其实就是解决特定问题的一系列步骤。无论你是否意识到,你每天都在使用算法。例如,你需要给孩子们打包午饭、送他们上学、取干洗衣物然后去上班,这一系列从厨房到办公室的步骤就构成了一个算法。

如果你的老板同时给你安排了六项工作,你需要规划在一天内完成它们的最佳顺序和方式,这同样是在设计一个算法。

这个概念为什么重要?因为一个方程也不过是解决问题的一系列步骤而已。数学就是对事物的翻译。我们有一个输入和一个输出。将一些值代入方程中的变量,遍历所有步骤,然后得到输出。计算机的工作原理也与此类似。

目前,神经网络背后的核心数学主要来自三个分支:

  • 线性代数
  • 集合论
  • 微积分

集合与元素

集合就是一堆事物的总体,通常用花括号{ }表示。(数学界对于最佳符号表达有时也难以完全统一。)

还记得张量吗?它本质上也是一种集合(多维数组)。

集合通常用大写字母表示,例如A、B、V或W。只要你前后一致,具体使用哪个字母并不重要。

但是,一些特定的大写字母和符号被保留下来,用于表示重要且常用的数字集合:

  • ∅ = 空集(集合里什么都没有)。这个符号是一个希腊字母“phi”。数学中经常使用希腊字母。
  • R = 所有实数的集合。(几乎所有常见的数都是实数,包括整数、分数、超越数如π。但不包括虚数。)
  • Z = 所有整数的集合。(例如 -2, -1, 0, 1, 2)

这些集合之间存在包含关系,即子集。例如,整数集Z就是实数集R的一个子集。我们可以这样表示:

  • A是B的子集(A包含于B):A ⊆ B
  • 相反的,B是A的超集(B包含A):B ⊇ A

为什么要在乎集合间的包含关系?这在实际应用中很有用。例如,有一个集合包含了所有美国居民的信息,另一个集合包含了心脏病高发人群的信息。这两个集合的交集,就能帮助我们分析哪些地区的人群患心脏病的风险更高。

集合中的个体称为元素。我们通常用小写斜体字母表示元素,例如x。用符号∈表示“属于”,用∉表示“不属于”。

  • x ∈ A 表示“x是集合A中的一个元素”。
  • x ∉ A 表示“x不是集合A中的一个元素”。

你越能理解这些符号,就越能顺畅地进行思维交流。当你看到“x ∉ A”时,能立刻说出“x不属于集合A”,就说明你已经掌握了它。

当然,列出集合的所有元素通常不现实,我们可以用特殊方式表示一个序列。例如,一个从1开始以1为步长递增的数字序列可以写成:

x = {1, 2, 3, 4, …, n}

这里的“…”表示序列持续到n结束。如果n=10,这个集合就包含从1到10的所有整数。

求和与求积符号

当我们将集合的概念引入线性代数时,事情就变得更有趣了。你已经熟悉加号(+)和减号(-)。现在介绍两个新符号:

  • Σ (Sigma):表示一系列数字的(Summation)。
  • Π (Pi):表示一系列数字的(Product)。

例如,有一个向量(一组数字)A = {1, 2, 3, 4, 5}。

  • 和:1 + 2 + 3 + 4 + 5 = 15
  • 积:1 × 2 × 3 × 4 × 5 = 120

我们来看一个求和符号的精简例子:

∑_{j=1}^{n} x^j

如何理解它?很简单:

  1. 从底部的 j=1 开始。
  2. 将 j 代入右边的表达式 x^j(即x的j次方)。
  3. 对 j=1, 2, 3, …, n 分别计算 x^j,然后将所有这些结果加起来。
  4. 顶部的 n 是序列的结束值。

例如,当 n=5,x=2 时:

∑_{j=1}^{5} 2^j = 2^1 + 2^2 + 2^3 + 2^4 + 2^5 = 2 + 4 + 8 + 16 + 32 = 62

如果你是一名程序员,会立刻认出这就像一个循环!我们可以用Python函数来实现它:

def sum_x_range(x, n=5):
    total = 0
    for j in range(1, n+1):  # 从1循环到n
        total += x ** j      # 计算x的j次方并累加
    return total

print(sum_x_range(2))  # 输出:62

走进矩阵

记住,2D张量也被称为矩阵。它基本上是一个有行和列的表格。首先,需要知道如何引用矩阵的不同部分。

首先,矩阵用大写字母表示,例如A。

矩阵有m行和n列,所以我们称之为 m × n 矩阵。行是水平的(从左到右),列是垂直的(从上到下)。

矩阵中的每个位置称为一个元素。元素的位置用小写斜体字母a加上行下标i和列下标j来表示,即 a_{i,j}。

例如,在一个矩阵中,第1行第2列的元素4可以表示为 a_{1,2};第2行第1列的元素3可以表示为 a_{2,1}。

点乘运算

点乘(Dot Product)是神经网络中非常常用的一种运算。它的符号是一个点:a · b

对于两个向量(可以看作矩阵的一行或一列),点乘的公式如下:

a · b = ∑_{i=1}^{n} a_i * b_i

这意味着:将两个向量中对应位置的元素相乘,然后将所有乘积相加。要求两个向量长度相同(均为n)。

操作步骤如下:

  1. 用向量A的第一个元素乘以向量B的第一个元素。
  2. 用向量A的第二个元素乘以向量B的第二个元素。
  3. 以此类推,直到第n个元素。
  4. 将所有乘积相加,得到最终结果(一个标量)。

例如,向量A = [1, 3, -5],向量B = [4, -2, -1]:

A · B = (1*4) + (3*(-2)) + ((-5)*(-1)) = 4 + (-6) + 5 = 3

胜在学习策略

最后,我想分享一些能帮助你快速学习的策略。

作为一个自学者,我发现自己探索、放慢脚步时学得更好。犯错是过程的一部分,无法避免,只能拥抱。犯错意味着你在进步。没有犯错,往往也就没有真正的进步。

工程界有一个老段子:如果你想知道正确答案,不必直接求助。只要把错误答案发出来,看看有多少工程师跳出来指正你就行了!这虽然是个玩笑,但有时确实很管用。

另外几件重要的事情:

  • 打好基础:如果你没有微积分、代数和几何的基本背景,直接阅读专业的数学符号指南可能会很吃力。建议先补充必要的基础知识。
  • 放慢脚步:学习不是比赛!半途而废等于没有收获。如果遇到不懂的术语,不要跳过,花时间把它搞明白。这个过程可能缓慢甚至令人沮丧,但当你建立的知识体系越来越完善,学习速度就会越来越快。
  • 多方查询:面对一个难以理解的概念,不要只依赖一个来源。大部分人并非天生的好老师。教学是一门艺术。有时,像“趣味数学”(Math is Fun)这样的网站比维基百科更易于入门,因为它更注重讲解的清晰性和趣味性。

将这些忠告记在心里,你的AI学习之旅将会更加顺畅!

发表评论

您的邮箱不会公开。必填项已用 * 标注。