数学菜鸟的AI学习攻略|数学标记轻松入门
大数据文摘作品,转载要求见文末
原作者 | Daniel Jeffries
编译 | Molly 寒小阳
“
自学AI的历程中,我们十分必要了解这些数学标记。它可以让你用一种十分简便的办法来表达一个繁复的想法。
”
你对否跟我一样,自幼恨透数学。
如今,我终于发觉了我对数学绝缘的最主要缘故:我的教师向来不去回复最紧张的成绩:我为什么要学数学?学数学有什么用?
他们只是在黑板上写下一大堆方程,并让我记下去。
如今,假如你对AI这个冲动民意的范畴感兴致,那么它将是回复这个成绩最好的答案!那就是,我想要写一个更好的图像识别步骤,大概一个可以了解天然言语的交互界面!约莫乃至想有一天写出本人的算法?
假如你想从阅读 arXiv(
https://arxiv.org/list/cs.AI/recent) 上的几篇论文开启自学AI之路?那么起首,你必要晓得怎样了解这些故意思的数学小标记。
约莫,学习数学标记最紧张的缘故,就是它可以让你用一种十分简便的办法来表达一个繁复的想法。
没有它,表明每个方程,都必要花上很多页的篇幅。
而这篇文章要报告你的是,学习这些标记不像你想象的那么难。
让很多人对数学丢失信息的第二个缘故是,很多表明写得太可骇了。
内幕上,大局部人并不善于表明东西。人们寻常要界说一个数学术语,会使用更多的数学术语。这就形成了不了解的一个无穷循环。好比界说“大象”这个词,说,“大象就是大象一类的东西。”
这篇文章会将数学标记和实际天下关联起来,并使用你已知的东西来类比。如此你可以兢兢业业地学习。
但是,这篇文章无法掩盖到你读一篇论文必要的一切数学标记。以是你会必要一本超等凝练的数学标记指南,Edward R. Scheinerman的Mathematical Notation: A Guide for Engineers and Scientists 。(它是我数学菜鸟的AI学习攻略 文章的一个后继增补,但它是我使用最经常的一本书。它如今满是高亮和折页。随着数学知识的不休扩展,我一遍又一各处转头翻阅这本书。)
让我们开头吧。
起首,什么是算法?
它真的只是处理一个特定的成绩的一系列步调。无论你对否熟悉到,你都在使用算法。假如你必要给孩子们打包午饭,送他们上学,取走干洗的衣服,然后去去公司,你以前无熟悉地布局了一系列步调,从厨房到办公室。这就是一个算法。
假如你的老板同时给你安插了六项事情,你必要找到在一天内完成它们的最好的办法。你必要选择哪些事前做,哪些事后做,哪些事一同做等等。这就是一个算法。
这个看法为什么很紧张呢?由于一个方程也不外是处理成绩的一系列步调罢了。
我们从一些简便的标记开头,写一些方程。数学就是对事物的翻译。我们有一个输入和一个输入。我们将一些东西代入到我们方程的变量中,遍历一切的步调,然后取得输入。盘算机也是相反的真理。
现在,神经网络眼前的大局部黑邪术来自于数学的三个分支:
-
线性代数
-
集论
-
微积分
聚集是什么?它就是一堆东西。寻常使用花括号{ }或方括号括起来。(搞数学的家伙对一切东西都很难在最佳标记表达上告竣一律。)
一个聚集
还记得我们在第4局部看到的张量?那就是一个聚集。
一个聚集通常由大写字母表现,比如A、B、V或W。只需你前后一律,字母本身是什么并不紧张。
但是,一些特定的大写字母和标记被保存下去,用来表现紧张的、常用的数字集,比如:
? = 空集(聚集里什么都没有)。这个标记是一个希腊字母,“phi”。数学里常常会用到希腊字母。此处可以查阅轻重写希腊字母的写法(
https://en.wikipedia.org/wiki/Greek_letters_used_in_mathematics,_science,_and_engineering)。
R =一切实数。(几乎一切存在的数都是实数,包含整数、分数、跨越数如Pi (π)(3.14159265…)。但是不包含虚数,一种为了求无解方程的解而布局的数,也不包含无量)
Z =一切整数。(除了分数之外的数字,好比-1,-2, 0, 1, 2, 3)
大局部保存字母表可以在兴趣数学(
http://www.mathsisfun.com/sets/number-types.html)里查到。
一切这些都是聚集,此中一局部是子集,也就是他们被更大的一个聚集完全包含,就像如此:
去查查察Q和N是什么意思吧!
在这个例子中,我们可以说,Z(整数集)是R(实数集)的子集。
我们可以这么写:
A是B的子集(A包含于B):相反的,B是A的超集(B包含A)
;
我为什么要在乎一个聚集B是不是包含了A的全部内容呢?好成绩。
假定有一个聚集,包含了一切生存在美国的人,有他们的年事、地点等等信息。如今假定有另一个聚集,包含了心脏病发病率更高的人。那么这两个聚集重合的场合,可以报告我们哪个地区的人更约莫患上心脏病。
每个聚集里都有元素。元素是什么?就是大聚集的一局部。我们再看一下我们的张量。
我们将聚集中的元素记作小写斜体字母,比如x.我们用一个看起来很奇异的E一样的标记(但是不是E),来表现一个元素是聚集的一局部。我们可以这么写:
这表现x是聚集A中的一个元素。
我们也可以说x不是聚集A中的一个元素:
你越能了解这些标记,你就越能在头脑中经过这些字符串来相反。当你看到外表这个,你可以说,“x不是聚集A中的元素。”你越能明白地讲出标记的涵义,你就越能了解它们。
固然,写出一个聚集的一切元素是不实际的,我们可以使用一种特别的办法来写出一个元素的序列。假定我们有一个数字序列,以1为步长递增。我们可以如此写:
x = {1,2,3,4…n}
这些点表现这个序列到n完毕,n代表“序列的末了”。以是假如n = 10,这个聚集包含从1到10的数字范围。假如n = 100,这个聚集包含从1到100的数字范围。
猖獗的方程
当我们将聚集转化为线性代数的时分,它们就十分故意思了。你以前熟悉了一些代数标记好比加号+,减号-。如今我们看两个新的标记和一个方程。起首是标记:
Σ = 一系列数字的和
Π = 一系列数字的积
和是什么?是序列中一切数字做加法。好比我们有一个向量集A(记取向量是一行或一列数字)包含: {1,2,3,4,5}.
序列的和为:
1 + 2 + 3 + 4 + 5 = 15
积是一切数字做乘法。以是关于相反的聚集A我们有:
1 x 2 x 3 x 4 x 5 =120
我们可以将序列的和精简地写作:
那么我们怎样了解它呢?简便,看这个。
我们从底部的j开头,j是一个变量。然后将j代入到右方的表达式中。最初,我们将序列的完毕数字写在顶部。看一个例子:
假如你是一个步骤员,你会立刻认出这是一个循环!
我们给这个方程写一个Python函数:
def sum_x_range(x):
j = 1
output = # 创建一个空list
for k in range(0,5): # 开头循环
z = x**j # 盘算x的j次方
j = j + 1 # j增长1,晓得抵达n,也就是5
output.append[z] # 将z添加到list中 return sum(output) # 前往list中一切数字的和
print (sum_x_range(2)) # 令x=2,调用方程
包涵我糟糕的Python作风,但是我渴望代码明晰,而不是简便。
**标记表现x的j次幂。方程输入参数x,我令它为2。从0到5循环,取x的1,2,3,4, 5次幂,然后将这些数字添加到一个列表中。它得出列表数字之和为:62。
走进矩阵
记取,2D张量也被称为矩阵。它基本上是一个表格,有行和列。起首,你必要晓得怎样引用矩阵的不同局部。 这张图讲得很清晰:
起首我们有矩阵A。用大写字母表现。
矩阵有m行和n列,以是我们叫它m X n 矩阵,用小写斜体字母表现。
行是水平的,也就是从左到右。 (不要被图中箭头疑惑,箭头指向的i和j不是行的朝向,行是水平的!)
列是垂直的,也就是从上到下。
在这个例子中我们有一个4 x 5 矩阵,(也就是2D张量),由于我们有4行5列。
每个方格是矩阵中的一个元素。元素的地点使用小写斜体a和行序号i和列序号j来表现。
以是第1行第2列的4,用a1,2表现。第2行第1列的3,用a2,1表现。
我们不会解说一切的矩阵数学运算,我们选择此中一种来小试牛刀。
点乘在神经网络中是一种十分常用的运算,以是一同看看它。
点,点,点
点乘是我们用一个矩阵乘以另一个矩阵的办法。
点乘的标记表现,你应该猜到了,是一个点。
a . b
这是两个标量(也就是单独的数)的点乘。标量也是我们的矩阵里的独立的元素。
我们将相反轻重和外形的矩阵对应的元素相乘,再把一切的乘积作和。
那么一个向量和另一个向量乘积的公式是什么样的呢?
深吸一口吻。你告捷了!
我们如今熟悉了一切的标记。
这是两个等长向量的乘积公式。记取在数学菜鸟的AI学习攻略第四局部-张量表现(有猫) 中讲到,一个向量就是一行大概一列数字。我们的矩阵的每一行大概每一列都是一个向量。
起首我们用矩阵A的第一个元素乘以矩阵B的第一个元素。然后我们用元素A2 乘以元素B2.我们关于每一个元素做相反的利用,直抵到达末了,“n”。然后对它们作和。
让我们看一下这个利用的图示。
如今我们可以把这些数字代入我们的公式。
这里是输入矩阵下一个数字的例子
这是我们处理完一切运算取得的终极后果:
这些例子来自于神奇的兴趣数学网站(Math is Fun website)。这个网站里有多量超赞的例子,完全无法跨越。
我增长了一些公式,以助于你的了解。由于他们寻常都市跳过这些,由于寻常这些步调并不会令人感受怀疑。但是你如今再也不会怀疑了。
胜在学习战略
我想用一些可以帮你快速学习的战略来完毕这篇文章。
我是一个自学者,也就是我寻常本人给本人解说。当我可以放缓脚步,可以本人探究时,我可以学得更好。我会犯一些错误。我上一篇文章就是一个很好的例子,我不得不修正一局部。但是错误也是一件功德!
错误是历程中的一局部。你没有办法制止错误,只能拥抱它。你出错了,你会提高。没有出错,就没有提高。就是这么简便。
工程界有一个老段子。
假如你想晓得准确答案,不必请人帮助。只需将错误答案发射来,你就可以看看几多工程师跳出来指正你!
工程师绝不允许错误答案存在!
这是一个老段子,但是常常很管用。
另一件紧张的事变是,假如你没有读我在数学菜鸟的AI攻略的一局部保举的文章的话,大概你没有微积分、代数和几多背景的话,你约莫读不了数学标记书(Mathematical Notation book) 。你必要明白一个术语的背景知识。但是我发起你买一本,它可以在你读其他书的时分,作为一个参考指南。
别的,发起放缓脚步。这又不是比赛!中途而废即是没有分。假如你跳过了一些你不懂的术语,你将来照旧不得不转头来看。
以是停下去,花一点时间搞明白一切你不懂的标记。这很缓慢,乃至令人懊丧。但是当你创建越来越多的知识体系,你会越来越快。你会发觉你以前了解了一些术语,而此前你从未想象本人可以了解它。
别的,你约莫必要从多个场合来查询。必要面临的内幕是,大局部人都不是好教师。他们约莫了解了一篇质料,但是并未料味着他们可以给其他人讲清晰。教学是一门艺术。这就是为什么兴趣数学网站比维基百科好。维基百科的确很“准确”,但是也很单调,偶尔分还令人隐晦。等你学到更多的时分,约莫你可以将维基百科改得更好。
将这些告诫记在内心,你的AI学习之旅就不会误入错道!






