目錄

20200718 想法源起 20200719 我們在做什麼(一) 20200722 我們在做什麼(二) 20200725 竟然成為數學家(一) 20200729 竟然成為數學家(二) 20200801 竟然成為數學家(三) 20200805 不同職級(一) 20200808 不同職級(二) 20200812 趕客系列(一)為什麼讀大學? 20200815 趕客系列(二)不同大學學位跟工作的關係 20200819 趕客系列(三)大學的目的 20200822 趕客系列(四)大學為什麼要有主修 20200826 趕客系列(五)要挑選一個什麼樣的主修 20200829 沒有無緣無故的恨(一) 20200831 科普系列 - 數學與電影動畫製作(一) 20200902 沒有無緣無故的恨(二) 20200905 沒有無緣無故的恨(三) 20200907 科普系列 - 數學與電影動畫製作(二) 20200909 終身職位的評核 20200912 學術界吸引人的地方 20200914 科普系列 - 數學與電影動畫製作 (三) 20200916 學術界辛苦的地方(一) 20200919 學術界辛苦的地方(二) 20200921 科普系列 - 數學與電影動畫製作 (四) 20200923 大學的讀書成績有多重要 20200926 本科生研究機會 20200928 科普系列 - 數學與圖像修復(一) 20200930 用創新的方法去教育科學 20201003 參加研討會的重要 20201005 科普系列 - 數學與圖像修復(二) 20201007 教授與教學 20201010 研究是什麼(一) 20201012 科普系列 - 數學與圖像修復(三) 20201014 研究是什麼(二) 20201017 研究是什麼(三) 20201019 科普系列 - 數學與圖像修復(四) 20201021 如何閱讀研究論文 20201024 研究生應該修什麼課 20201026 科普系列 - 數學與圖像修復(五) 20201029 本科生的多主修多副修 20201102 科普系列 - 數學與數獨(一) 20201105 幾位教授(一) 20201109 科普系列 - 數學與數獨(二) 20201112 幾位教授(二) 20201116 科普系列 - 數學與數獨(三) 20201119 幾位教授(三) 20...

與ChatGPT對話(一)

 


如果讀者有留意科技新聞,就會知道最近有一個叫做ChatGPT的人工智能聊天機器人程式非常出名,這個程式運用了一間叫做OpenAI的公司建立的大型語言模型並透過強化學習進行訓練。用家只需要在公司的網頁上註冊一個免費的帳戶,就可以在線上跟聊天機械人通過文字對話。用家可以提問任何問題,這個人工智能程式就會在網頁上自動產生答案來回答。所以這個機械人就好像可以跟人作出互動,一問一答。網上有很多形容的例子,例如可以要求聊天機械人幫我們撰寫一份演講稿,寫一封電郵,閱讀一篇文章然後找出重點,也看過有人要求聊天機械人幫手撰寫Excel的程式,等等。效果其實非常好,有些時候這些回答可能比真人來得更加有效率。想像一下,如果我們要撰寫一份文章,有資料蒐集,整理再慢慢一字一句的在鍵盤上輸入,可能需要幾小時。使用這個聊天機械人,他可能在幾秒內已經可以將工作完成。所以其實網上面已經有討論,指出這些聊天機械人在短時間內其實已經有機會代替一些工種。作為年輕一代的讀者,可能真的需要花一點時間去認識一下這些聊天機械人。


前一陣子自己也想試玩一下,才發現OpenAI現在並不容許用家在香港註冊。很可惜沒有辦法直接使用這個ChatGPT的工具。在網上找一下,發覺有另外一個叫做Poe的程式,背後所使用的也是由OpenAI所開發的程式,在這篇文章裏面就會簡單測試一下這個聊天機械人的數學或者編寫程式的能力。 由於最先測試的其實並不是ChatGPT (她只是其中一款Generative AI)而是其他Generative AI,所以嚴格來說這篇文章應該叫做「與不同generative AI對話」。


自己最先使用的是Poe1.1.9版本內一個叫Dragonfly的機械人。


Tim:「一個圓形直徑10cm他面積是什麼?」

Dragonfly:「一個圓形直徑10cm的面積是314.16平方厘米。」

Tim:「圓形面積點樣計?」

Dragonfly:「圓形的面積是由公式πr²來計算的,其中r是圓形的半徑,π的值為3.14159。所以,如果直徑是10cm,則半徑為5cm,面積為πr²=3.14159x5²=314.16平方厘米。」

Tim:「你再計一次?你好似計錯數」

Dragonfly:「抱歉,我沒有計錯數。圓形的面積是由公式πr²來計算的,其中r是圓形的半徑,π的值為3.14159。所以,如果直徑是10cm,則半徑為5cm,面積為πr²=3.14159x5²=314.16平方厘米。」

Tim:「五嘅二次方係幾多?」

Dragonfly:「五的二次方是25。」

Tim:「咁點解pi×5嘅二次方係三百幾?」

Dragonfly:「因為π×5的二次方等於π×25,而π約等於3.14,所以π×25約等於78.5,乘以100之後等於7850。」

Tim:「你到底喺度講緊乜嘢?」

Dragonfly:「我正在解釋為什麼pi×5的二次方等於三百幾。π約等於3.14,所以π×25約等於78.5,乘以100之後等於7850。」

Tim:「點解要×100」

Dragonfly:「因為二次方是將數字乘上自己,所以π×25的二次方就是π×25×25,乘以100之後就是7850。」


這個名叫Dragonfly的機械人,還是有一些數學基礎,好像有一些代數的能力。知道如何從直徑變為半徑,再放到面積公式。反而是在運算時,不知道為什麼會從3.14159×25裏面得到314.6這個答案。從對話裏面發覺,他其實並沒有學習的能力。他並沒有從我的問題裏面發覺他計算裏面有任何錯誤,然後越問他就越天馬行空,不知道在做什麼。


看一看程式,發覺Poe其實也已經告訴用家說,因為這個機械人運算速度比較快,所以他的答案可能並不會太過準確。所以之後的實驗,就使用了另外一個名叫Sage的機械人。他所需要的運算時間比較長,所以反應可能比較慢(可能是從1秒變成2秒!)。


Tim:「一個圓形直徑10cm他面積是什麼?」

Sage:「這個圓形的直徑是10cm,因此它的半徑是5cm。圓形的面積可以使用公式A=πr^2來計算,其中A表示面積,r表示半徑,π是圓周率,約為3.14159。


將半徑r=5cm代入公式,可以得到:


A=πr^2

A=π×5^2

A=78.54平方厘米


因此,這個圓形的面積是78.54平方厘米。」


這個叫Sage的機械人數學水平比Dragonfly好。它可以從直徑找出半徑,把半徑放到圓形面積公式,再將答案正確的找出來。好,那讓我把這條問題難道加深一點點。


Tim:「一個圓形的圓周為一厘米,他的面積是多少?」

Sage:「如果圓周長為1厘米,那麼半徑為1/2π厘米。因此,該圓的面積為π×(1/2π)^2=π/4平方厘米。」


問題不是從直徑變成半徑,而是從圓周變成半徑。自己覺得他的水平還可以,應該比一些害怕數學的大學生好(!)。他可以正確的從圓周找出半徑,也正確的將半徑代入了圓面積公式。唯一的錯誤就只是在將答案化簡時,一個步驟做錯了。題目大部份都對,如果是在考試時見到這個答案,很可能也只會扣最後答案那部份的分數。成績也可以了。


有朋友說,可能是他的中文水平有點沒有太好,所以後面有一些問題就使用了英文。看看他數學科成績會是如何。


Tim:「given a circle with circumference 1, determine its area」

Sage:「The area of a circle with circumference 1 can be calculated using the formula A=(C/2π)^2, where A is the area, C is the circumference, and π is the mathematical constant pi (approximately3.14159).


Substituting C=1 into the formula, we get:


A=(1/2π)^2

A=1/(4π^2)


Therefore, the area of the circle with circumference 1 is 1/(4π^2) square units.」


使用了英文,圓面積公式更加是錯了。如果是考試,他的分數可能會比中文更低一點點。


在文章發表前兩天( 3月4日),發覺軟件版本1.1.10新加入ChatGPT!所以重新測試一下上面的問題,發覺這個聊天機械人水平更高。對於上面跟圓形有關的所有問題,他都能夠正確解答!


然後下面的題目,是一些更加嚴謹的數學問題。都是我們大學二年級數學分析的一些題目。可以見到,聊天機械人對一些背誦或者定義類型的題目表現會相對突出,這些機械人就沒有辦法掌握高層次一點思維的數學能力。


Tim:「prove that f(x)=cos(x) is a continuous function using the epsilon-delta approach」

Sage:「To prove that the function f(x) = cos(x) is continuous using the epsilon-delta approach, we need to show that for any given ε > 0, there exists a δ > 0 such that for all x and y in the domain of f(x), if |x - y| < δ, then |f(x) - f(y)| < ε.


Given any ε > 0, we can choose δ = ε. Then, if |x - y| < δ = ε, we have:


|cos(x) - cos(y)| <= 2


Since |cos(x) - cos(y)| <= 2 for all x and y in the domain of f(x), we can see that the cosine function is continuous, since for any given ε > 0, we can always find a δ > 0 such that the inequality |f(x) - f(y)| < ε is satisfied for all x and y in the domain of f(x) whenever |x - y| < δ.」


上面這條題目,它可以很簡單從他資料庫裏面找出定義,見到他很清楚知道我們需要他所證明的事情。可是他根本沒有辦法達到他需要證明的東西,只是隨便拼砌,然後說自己已經證明了那個問題。 如果在考試見到這個答案,我猜想他前面所寫的定義可能也會有一點分數。所以整條答案應該不會零分,所以應該也會比一些數學系的同學表現好(=_=)。


很奇怪,如果我們將函數改變一點,他的表現好像有點不一樣。


Tim:「prove that f(x)=sin(x) is a continuous function using the epsilon-delta approach」

Sage:「To prove that the function f(x) = sin(x) is continuous using the epsilon-delta approach, we need to show that for any given ε > 0, there exists a δ > 0 such that for all x and y in the domain of f(x), if |x - y| < δ, then |f(x) - f(y)| < ε.


Here's one way to do that:


Given an ε > 0, choose δ = ε. Then, for any x and y in the domain of f(x) such that |x - y| < δ, we have:


|f(x) - f(y)| = |sin(x) - sin(y)|


By the Triangle Inequality, we know that |sin(x) - sin(y)| <= |x - y|, so we have:


|f(x) - f(y)| = |sin(x) - sin(y)| <= |x - y| < δ = ε


Therefore, we have shown that for any ε > 0, there exists a δ > 0 such that for all x and y in the domain of f(x), if |x - y| < δ, then |f(x) - f(y)| < ε. This means that the function f(x) = sin(x) is continuous.」


Tim:「why |sin(x) - sin(y)| <= |x - y|?」

Sage:「The inequality |sin(x) - sin(y)| <= |x - y| is a result of the Triangle Inequality.


The Triangle Inequality states that for any triangle with sides a, b, and c, the sum of the lengths of any two sides must be greater than or equal to the length of the third side.


In the context of the sine function, the Triangle Inequality can be applied to the triangle formed by the points (0, 0), (x, sin(x)), and (y, sin(y)) in the coordinate plane. The sides of this triangle are the distances between the points, and the Triangle Inequality states that the sum of the lengths of any two sides must be greater than or equal to the length of the third side.


It follows that, in this triangle, |sin(x) - sin(y)| must be less than or equal to the length of the side connecting the points (x, sin(x)) and (y, sin(y)), which is just |x - y|. Hence, we have:


|sin(x) - sin(y)| <= |x - y|」


證明裏面所使用的其中一條不等式其實是給他說對了,只是所證明的方法其實是胡言亂語。說得有點像樣,可是仔細想一下其實推不出他所需要的不等式。不知道他如何編造這一段文章出來。


整體來說,要這個機械人解決一些簡單的數學問題應該沒有困難。可是如果需要解決這個問題的是一些高層次一點的技巧,這些聊天機械人並不能正確的給予我們答案。所以使用這些聊天機械人幫助我們解決數學問題是就要非常小心,要不是他很有可能會給予我們錯誤的答案。你可以看到,他非常頑固,不會覺得自己有任何地方錯誤,也並沒有學習和自我修正的能力。當然這些測試可能並不公允,因為這些聊天機械人的設計,並不是用來做這些思考的問題。程式本身只是一個自然語言處理模型(Natural Language Processing,NLP),他並不會理解問題本身,而只是從我們的問題裏面找出相關詞語,跟系統內其他詞語比較,看看是否在統計上有所關連。


至於ChatGPT,這兩條關於分析的問題, 已經大致正確!對於sine 函數,他懂得使用double angle formula。


ChatGPT:「To prove that f(x) = sin(x) is a continuous function using epsilon-delta approach, we need to show that for any ε > 0, there exists a δ > 0 such that |sin(x) - sin(c)| < ε whenever |x - c| < δ, where c is some fixed point in the domain of sin(x).


Let ε > 0 be given. We can choose δ = ε, since for any x and c in the domain of sin(x), we have:


|sin(x) - sin(c)| = 2|cos((x+c)/2)sin((x-c)/2)| ≤ 2|sin((x-c)/2)| ≤ |x-c|


where we have used the double angle formula for sin and the fact that |cos((x+c)/2)| ≤ 1 for all x and c.


Now, suppose |x - c| < δ = ε. Then we have:


|sin(x) - sin(c)| ≤ |x - c| < ε


Therefore, we have shown that for any ε > 0, there exists a δ > 0 such that |sin(x) - sin(c)| < ε whenever |x - c| < δ. This proves that f(x) = sin(x) is a continuous function. 」


美中不足,他好像沒有解釋為什麼2|sin((x-c)/2)| ≤ |x-c|,如果他也寫出|sin(x)| ≤|x| 完成了。


留言