人工智慧、機器學習、演算法、大數據 (1) 概要與蒙地卡羅法

  28272
蒙地卡羅法求圓周率

蒙地卡羅法求圓周率

近年來很流行的一些科技名詞,如:人工智慧(Artificial Intelligence : AI)、機器學習(Machine learning)、演算法(Algorithm)及大數據( Big Data)、黑盒子模式(black box mode)。這些看來很流行,很熱門的概念常被一些一知半解的媒體、或暢銷書寫成一團亂。有鑑於此,作者準備用一系列的文章徹底說明這些名詞的意義、相互關係及實際應用到底是什麼?主要目的是期望大家、及資訊專業人員都能清楚暸解其中的涵意,進而避開媒體或暢銷書的越說越迷糊。

其實這些看似複雜的名詞,我們都可以一言以蔽之就是電腦的行為。為什麼這麼說呢?

  • 人類的腦子叫人腦,電子機器類的東西當然叫電腦。
  • 人類的智慧對應到電腦的智慧稱為人工智慧,因為是人賦予電腦智慧。現階段的情況是人給電腦智慧,以後可能會出現電腦製造下一代的電腦智慧。
  • 人類解決各個問題的器具稱為工具,電腦解決各個問題的方法稱為演算法。
  • 人類的學習對應到電腦稱為機器學習。
  • 人類依據經驗或是直覺的決策行為對應到電腦就稱為黑盒子模式,也就是一種機率及統計式的評估後的行為模式,或是直接執行特例的行為模式。
  • 人類依賴過往經歷稱為經驗,對應到電腦累積的資料稱為大數據。

只要將這些看似混亂的名詞對應到我們所熟悉的事物上,就不會令人感到神奇,見圖1。接著介紹蒙地卡羅法中的求面積方法,讓大家認識各個科技名詞對應到哪些動作上。

圖1

【蒙地卡羅法】

蒙地卡羅法是一種利用現在電腦大量且快速計算的能力產生的方法,概念是由電腦大量且快速計算得到一個機率,並再進一步得到答案,如:封面圖的蒙地卡羅法求圓周率,此方法的優點是可以不利用人類精準計算的方法,僅靠電腦作簡單的動作就能得到答案。接著用求面積的方式,介紹蒙地卡羅法。

  • 蒙地卡羅法求圓面積

一個2公分的正方形,裡面放直徑2公分(半徑1公分)的圓,見圖2。

圖2

我們讓電腦對此圖案射飛標,射在正方方形範圍內的才加以討論。而射出去的飛鏢將導致破洞,見圖3。

圖3

當我們射越多破洞就越多,就越可以覆蓋圓形與方形,見圖4。

圖4

而破洞的面積加總後,就可以得到圓形面積、及正方形面積。

我們知道圓面積與正方形面積存在一個比例關係,「圓面積/正方形面積=比例」

移項後「圓面積=比例×正方形面積」。

而正方形面積為2×2=4,故「圓面積=比例×4」

註:該比例也可以認知為,射飛鏢丟到正方形的圓內機率。

我們不用去思考圓形面積怎麼計算,只要靠電腦丟越多次,就可以得到越接近正確的比例,進而得到圓形面積,見圖5。

圖5

作者利用Excel跑了4萬筆資料,可知比例是0.786,代入可得到圓形面積=4×0.786=3.1435。這邊要注意電腦完全不知道圓面積怎麼計算。

我們思考小學的方法,

利用圓周率計算圓面積:半徑×半徑×圓周率=1×1×3.14159=3.14159。

人類與電腦的計算僅差了0.00191。電腦僅丟四萬次就可以相當的接近正確的面積值,如果丟更多次就可以更為準確,所以蒙地卡羅法求出面積值是可用的。

  • 蒙地卡羅法求曲線下面積​

當我們讓電腦學會蒙地卡羅求面積的方式,我們就可以讓電腦計算難以處理的積分問題(積分就是求面積),也可以稱為利用電腦土法煉鋼法。如:y=x3-6x2+11x-5,求出x在1到3、y在0到2的曲線下面積,見圖6。

圖6

如果是以前我們必須用積分技巧來計算,但是電腦不用,只要用學會的蒙地卡羅求面積法來做就可以。一樣還是丟丟看(射飛鏢)的方式,見圖7。

圖7

作者利用Excel跑了4萬筆資料,可知曲線下比例是0.506,代入可得到曲線下面積=4×0.506=2.024。這邊要注意電腦完全不知道面積怎麼計算。

我們思考大學的積分方法,y=x3-6x2+11x-5的積分式為Y= 0.25x4-2x3+5.5x2-5x+c,

1到3曲線下面積= (0.25x34-2x33+5.5x32-5x3+c)-( 0.25x14-2x13+5.5x12-5x1+c)=2。

人類與電腦的計算僅差了0.024。電腦僅丟四萬次就可以相當的接近正確的面積值,如果丟更多次就可以更為準確,所以蒙地卡羅法求出面積值是可用的。

【了解人工智慧、機器學習、演算法、及大數據各自出現在上述案例的何處】

1. 演算法:整套的計算流程可稱作蒙地卡羅求面積的演算法。

2. 機器學習:可以發現電腦學會用蒙地卡羅求面積,並且不再受限既定的幾何圖形,進步到可以計算任意圖形。

3. 大數據:可以發現當丟丟看的次數過少時,機率會不夠精準,而丟的越多次,機率就會越正確。同時也可發現只有電腦可以執行多次的快速運算,在數量及速度都遠勝於人類。

4. 人工智慧:我們讓電腦學會一個人類做不到的求面積方式,不正代表電腦有其特殊的智慧。

【為什麼早期不用蒙地卡羅法】

理由很簡單,早期沒有運算能力夠強的電腦來執行大量的反覆丟看看的運算,而現在可以,我們讓電腦學會計算任何圖形面積的方式,這就是機器學習,不就代表電腦可以獲得智慧,而且比人類更有效的計算出面積,幫助人類節省時間。

為什麼要特別討論蒙地卡羅法?因為現有的積分技巧都是建立在可以把曲線化為函數,再去進行積分運算,或進行數值分析(切長條)。而蒙地卡羅法的好處就是將要討論的圖案拿來直接做丟丟看的機率計算,就可以得到面積,所以蒙地卡羅法才如此重要。

類似的概念早在阿基米德時期就已經存在,就是排水法,我們不用把完整的物體切片算體積,只要計算水位上升多少就可以知道體積。也就是不用管原本的形態,直接找到接近的答案。換言之這也就是現在的黑盒子模式(Black box),此內容將在之後再進行說明。

【結論】

由此我們就可以初步的認識跟電腦有關的科技名詞:人工智慧(Artificial Intelligence : AI)、機器學習(Machine learning)、演算法(Algorithm) 及大數據( Big Data)。科技名詞的詳細內容、及黑盒子模式(black box mode)將在別篇完整的介紹。