自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)學(xué)菜鳥的AI學(xué)習(xí)攻略:數(shù)學(xué)符號輕松入門

開發(fā) 開發(fā)工具
這篇文章會將數(shù)學(xué)符號和現(xiàn)實(shí)世界關(guān)聯(lián)起來,并使用你已知的東西來類比。

 

[[187565]]

作者 | Daniel Jeffries

編譯 | Molly 寒小陽

自學(xué)AI的過程中,我們非常需要理解這些數(shù)學(xué)符號。它可以讓你用一種非常簡潔的方式來表達(dá)一個復(fù)雜的想法。

你是否跟我一樣,自幼恨透數(shù)學(xué)。

現(xiàn)在,我終于發(fā)現(xiàn)了我對數(shù)學(xué)絕緣的最主要原因:我的老師從來不去回答最重要的問題:我為什么要學(xué)數(shù)學(xué)?學(xué)數(shù)學(xué)有什么用?

他們只是在黑板上寫下一大堆方程,并讓我記下來。

現(xiàn)在,如果你對AI這個激動人心的領(lǐng)域感興趣,那么它將是回答這個問題***的答案!那就是,我想要寫一個更好的圖像識別程序,或者一個可以理解自然語言的交互界面!也許甚至想有一天寫出自己的算法?

如果你想從閱讀 arXiv(https://arxiv.org/list/cs.AI/recent) 上的幾篇論文開啟自學(xué)AI之路?那么首先,你需要知道怎樣理解這些有意思的數(shù)學(xué)小符號。

也許,學(xué)習(xí)數(shù)學(xué)符號最重要的原因,就是它可以讓你用一種非常簡潔的方式來表達(dá)一個復(fù)雜的想法。

沒有它,解釋每個方程,都需要花上很多頁的篇幅。

而這篇文章要告訴你的是,學(xué)習(xí)這些符號不像你想象的那么難。

讓很多人對數(shù)學(xué)失去信息的第二個原因是,很多解釋寫得太可怕了。

事實(shí)上,大部分人并不擅長解釋東西。人們一般要定義一個數(shù)學(xué)術(shù)語,會使用更多的數(shù)學(xué)術(shù)語。這就造成了不理解的一個***循環(huán)。好比定義“大象”這個詞,說,“大象就是大象一類的東西。”

這篇文章會將數(shù)學(xué)符號和現(xiàn)實(shí)世界關(guān)聯(lián)起來,并使用你已知的東西來類比。這樣你可以腳踏實(shí)地地學(xué)習(xí)。

Mathematical Notation

但是,這篇文章無法覆蓋到你讀一篇論文需要的所有數(shù)學(xué)符號。所以你會需要一本超級凝練的數(shù)學(xué)符號指南,Edward R. Scheinerman的Mathematical Notation: A Guide for Engineers and Scientists 。(它是我數(shù)學(xué)菜鳥的AI學(xué)習(xí)攻略 文章的一個后繼補(bǔ)充,但它是我使用最頻繁的一本書。它現(xiàn)在滿是高亮和折頁。隨著數(shù)學(xué)知識的不斷擴(kuò)充,我一遍又一遍地回頭翻閱這本書。)

讓我們開始吧。

首先,什么是算法?

它真的只是解決一個特定的問題的一系列步驟。無論你是否意識到,你都在使用算法。如果你需要給孩子們打包午飯,送他們上學(xué),取走干洗的衣服,然后去上班,你已經(jīng)無意識地構(gòu)造了一系列步驟,從廚房到辦公室。這就是一個算法。

如果你的老板同時給你安排了六項工作,你需要找到在一天內(nèi)完成它們的***的方式。你需要選擇哪些事先做,哪些事后做,哪些事一起做等等。這就是一個算法。

這個概念為什么很重要呢?因為一個方程也不過是解決問題的一系列步驟而已。

我們從一些簡單的符號開始,寫一些方程。數(shù)學(xué)就是對事物的翻譯。我們有一個輸入和一個輸出。我們將一些東西代入到我們方程的變量中,遍歷所有的步驟,然后得到輸出。計算機(jī)也是同樣的道理。

目前,神經(jīng)網(wǎng)絡(luò)背后的大部分黑魔法來自于數(shù)學(xué)的三個分支:

  • 線性代數(shù)
  • 集論
  • 微積分

集合是什么?它就是一堆東西。一般使用花括號{ }或方括號括起來。(搞數(shù)學(xué)的家伙對所有東西都很難在***符號表達(dá)上達(dá)成一致。)

集合是什么?

一個集合

還記得我們在第4部分看到的張量?那就是一個集合。

一個集合

一個集合通常由大寫字母表示,例如A、B、V或W。只要你前后一致,字母本身是什么并不重要。

但是,一些特定的大寫字母和符號被保留下來,用來表示重要的、常用的數(shù)字集,例如:

  • ∅ = 空集(集合里什么都沒有)。這個符號是一個希臘字母,“phi”。數(shù)學(xué)里常常會用到希臘字母。此處可以查閱大小寫希臘字母的寫法(https://en.wikipedia.org/wiki/Greek_letters_used_in_mathematics,_science,_and_engineering)。
  • R =所有實(shí)數(shù)。(幾乎所有存在的數(shù)都是實(shí)數(shù),包括整數(shù)、分?jǐn)?shù)、超越數(shù)如Pi (π)(3.14159265…)。但是不包括虛數(shù),一種為了求無解方程的解而構(gòu)造的數(shù),也不包括無窮)
  • Z =所有整數(shù)。(除了分?jǐn)?shù)之外的數(shù)字,比如-1,-2, 0, 1, 2, 3)

大部分保留字母表可以在趣味數(shù)學(xué)(http://www.mathsisfun.com/sets/number-types.html)里查到。

所有這些都是集合,其中一部分是子集,也就是他們被更大的一個集合完全包含,就像這樣:

去查查看Q和N是什么意思吧!

在這個例子中,我們可以說,Z(整數(shù)集)是R(實(shí)數(shù)集)的子集。

我們可以這么寫:

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

A是B的子集(A包含于B)

我為什么要在乎一個集合B是不是包含了A的全部內(nèi)容呢?好問題。

假如有一個集合,包括了所有生活在美國的人,有他們的年齡、地址等等信息?,F(xiàn)在假設(shè)有另一個集合,包括了心臟病發(fā)病率更高的人。那么這兩個集合重合的地方,可以告訴我們哪個地區(qū)的人更可能患有心臟病。

每個集合里都有元素。元素是什么?就是大集合的一部分。我們再看一下我們的張量。

張量

我們將集合中的元素記作小寫斜體字母,例如x.我們用一個看起來很奇怪的E一樣的符號(其實(shí)不是E),來表示一個元素是集合的一部分。我們可以這么寫:

將集合中的元素記作小寫斜體字母,例如x

這表示x是集合A中的一個元素。

我們也可以說x不是集合A中的一個元素:

x不是集合A中的一個元素

你越能理解這些符號,你就越能在頭腦中通過這些字符串來溝通。當(dāng)你看到上面這個,你可以說,“x不是集合A中的元素。”你越能明確地講出符號的含義,你就越能理解它們。

當(dāng)然,寫出一個集合的所有元素是不現(xiàn)實(shí)的,我們可以使用一種特殊的方式來寫出一個元素的序列。假如我們有一個數(shù)字序列,以1為步長遞增。我們可以這樣寫:

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

這些點(diǎn)表示這個序列到n結(jié)束,n代表“序列的末尾”。所以如果n = 10,這個集合包括從1到10的數(shù)字范圍。如果n = 100,這個集合包括從1到100的數(shù)字范圍。

瘋狂的方程

當(dāng)我們將集合轉(zhuǎn)化為線性代數(shù)的時候,它們就十分有意思了。你已經(jīng)認(rèn)識了一些代數(shù)符號比如加號+,減號-。現(xiàn)在我們看兩個新的符號和一個方程。首先是符號:

  • Σ = 一系列數(shù)字的和
  • Π = 一系列數(shù)字的積

和是什么?是序列中所有數(shù)字做加法。比如我們有一個向量集A(記住向量是一行或一列數(shù)字)包括: {1,2,3,4,5}.

序列的和為:

  1. 1 + 2 + 3 + 4 + 5 = 15 

積是所有數(shù)字做乘法。所以對于同樣的集合A我們有:

  1. 1 x 2 x 3 x 4 x 5 =120 

我們可以將序列的和精簡地寫作:

將序列的和精簡

那么我們怎樣理解它呢?簡單,看這個。

我們從底部的j開始,j是一個變量。然后將j代入到右邊的表達(dá)式中。***,我們將序列的結(jié)束數(shù)字寫在頂部。看一個例子:

如果你是一個程序員,你會立刻認(rèn)出這是一個循環(huán)!

我們給這個方程寫一個Python函數(shù):

  1. def sum_x_range(x): 
  2.     j = 1 
  3.     output = []   # 創(chuàng)建一個空list 
  4.     for k in range(0,5):  # 開始循環(huán) 
  5.          z = x**j      # 計算x的j次方 
  6.          jj = j + 1     # j增加1,知道到達(dá)n,也就是5 
  7.  
  8.          output.append[z]   # 將z添加到list中 
  9.     return sum(output)  # 返回list中所有數(shù)字的和 
  10.  
  11. print (sum_x_range(2))   # 令x=2,調(diào)用方程 

原諒我糟糕的Python風(fēng)格,但是我希望代碼清晰,而不是簡潔。

**符號表示x的j次冪。方程輸入?yún)?shù)x,我令它為2。從0到5循環(huán),取x的1,2,3,4, 5次冪,然后將這些數(shù)字添加到一個列表中。它得出列表數(shù)字之和為:62。

走進(jìn)矩陣

記住,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表示。

我們不會講解所有的矩陣數(shù)學(xué)運(yùn)算,我們選擇其中一種來小試牛刀。

點(diǎn)乘在神經(jīng)網(wǎng)絡(luò)中是一種非常常用的運(yùn)算,所以一起看看它。

點(diǎn),點(diǎn),點(diǎn)

點(diǎn)乘是我們用一個矩陣乘以另一個矩陣的方法。

點(diǎn)乘的符號表示,你應(yīng)該猜到了,是一個點(diǎn)。

  1. a . b 

這是兩個標(biāo)量(也就是單獨(dú)的數(shù))的點(diǎn)乘。標(biāo)量也是我們的矩陣?yán)锏莫?dú)立的元素。

我們將同樣大小和形狀的矩陣對應(yīng)的元素相乘,再把所有的乘積作和。

那么一個向量和另一個向量乘積的公式是什么樣的呢?

一個向量和另一個向量乘積的公式

深吸一口氣。你成功了!

我們現(xiàn)在認(rèn)識了所有的符號。

這是兩個等長向量的乘積公式。記住在數(shù)學(xué)菜鳥的AI學(xué)習(xí)攻略第四部分-張量表示(有貓) 中講到,一個向量就是一行或者一列數(shù)字。我們的矩陣的每一行或者每一列都是一個向量。

首先我們用矩陣A的***個元素乘以矩陣B的***個元素。然后我們用元素A2 乘以元素B2.我們對于每一個元素做相同的操作,直到達(dá)到末尾,“n”。然后對它們作和。

讓我們看一下這個操作的圖示。

現(xiàn)在我們可以把這些數(shù)字代入我們的公式。

這里是輸出矩陣下一個數(shù)字的例子

這是我們處理完所有運(yùn)算得到的最終結(jié)果:

這些例子來自于神奇的趣味數(shù)學(xué)網(wǎng)站(Math is Fun website)。這個網(wǎng)站里有大量超贊的例子,完全無法超越。

我增加了一些公式,以助于你的理解。因為他們一般都會跳過這些,因為一般這些步驟并不會令人感到困惑。但是你現(xiàn)在再也不會困惑了。

勝在學(xué)習(xí)策略

我想用一些可以幫你快速學(xué)習(xí)的策略來結(jié)束這篇文章。

我是一個自學(xué)者,也就是我一般自己給自己講解。當(dāng)我可以放慢腳步,可以自己探索時,我可以學(xué)得更好。我會犯一些錯誤。我上一篇文章就是一個很好的例子,我不得不修正一部分。但是錯誤也是一件好事!

錯誤是過程中的一部分。你沒有辦法避免錯誤,只能擁抱它。你犯錯了,你會進(jìn)步。沒有犯錯,就沒有進(jìn)步。就是這么簡單。

工程界有一個老段子。

如果你想知道正確答案,不用請人幫忙。只要將錯誤答案發(fā)出來,你就可以看看多少工程師跳出來指正你!

工程師絕不允許錯誤答案存在!

這是一個老段子,但是常常很管用。

另一件重要的事情是,如果你沒有讀我在數(shù)學(xué)菜鳥的AI攻略的一部分推薦的文章的話,或者你沒有微積分、代數(shù)和幾何背景的話,你可能讀不了數(shù)學(xué)符號書(Mathematical Notation book) 。你需要懂得一個術(shù)語的背景知識。但是我建議你買一本,它可以在你讀其他書的時候,作為一個參考指南。

另外,建議放慢腳步。這又不是比賽!半途而廢等于沒有分。如果你跳過了一些你不懂的術(shù)語,你將來還是不得不回頭來看。

所以停下來,花一點(diǎn)時間搞明白所有你不懂的符號。這很緩慢,甚至令人沮喪。但是當(dāng)你建立越來越多的知識體系,你會越來越快。你會發(fā)現(xiàn)你已經(jīng)理解了一些術(shù)語,而此前你從未想象自己可以理解它。

另外,你可能需要從多個地方來查詢。需要面對的事實(shí)是,大部分人都不是好老師。他們可能理解了一篇材料,但是并不意味著他們可以給其他人講清楚。教學(xué)是一門藝術(shù)。這就是為什么趣味數(shù)學(xué)網(wǎng)站比維基百科好。維基百科確實(shí)很“正確”,但是也很枯燥,有時候還令人費(fèi)解。等你學(xué)到更多的時候,也許你可以將維基百科改得更好。

將這些忠告記在心里,你的AI學(xué)習(xí)之旅就不會誤入歧途!

來源:

https://hackernoon.com/learning-ai-if-you-suck-at-math-p6-math-notation-made-easy-1277d76a1fe5#.1doldcnhr

【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

 

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2023-12-06 13:44:00

模型訓(xùn)練

2020-10-13 14:38:50

機(jī)器學(xué)習(xí)數(shù)據(jù)

2020-09-16 10:09:58

深度學(xué)習(xí)DNN計算

2017-02-27 14:24:12

機(jī)器學(xué)習(xí)深度學(xué)習(xí)數(shù)學(xué)

2010-10-25 17:33:35

Oracle數(shù)學(xué)函數(shù)

2014-07-01 09:30:54

機(jī)器學(xué)習(xí)

2017-04-11 12:05:07

機(jī)器學(xué)習(xí)python矩陣運(yùn)算

2020-07-14 14:03:53

AI 數(shù)據(jù)人工智能

2018-08-05 06:48:34

2020-04-01 15:04:54

代碼數(shù)學(xué)符號程序

2010-09-07 17:40:19

入門android

2019-08-18 23:10:14

數(shù)據(jù)科學(xué)算法數(shù)學(xué)

2021-02-06 23:00:39

機(jī)器學(xué)習(xí)工程人工智能

2011-08-23 16:37:05

Lua數(shù)學(xué)庫

2012-02-13 15:48:42

Java

2021-12-06 20:23:40

機(jī)器學(xué)習(xí)數(shù)學(xué)

2015-08-05 10:15:12

數(shù)學(xué)編程

2010-08-16 09:48:38

無線局域網(wǎng)

2023-03-13 08:47:06

CSS數(shù)學(xué)函數(shù)

2009-10-16 13:38:43

VB.NET Spli
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號