一) AI到底要不要「被人類指導」?
電腦下了一步「沒有人類會下在這裡」的棋步,它跟你說「這是我從3000萬筆對奕中得出來的結論」,你無法理解,不過也沒關係,他還是贏了。
但當電腦建議政府「加稅13.256%」,或是建議你「買進黃豆期貨」時,你完全無法理解為什麼,這就很麻煩了……
因為你知道電腦也不是全知全能的,它的建議很可能漏想了某些因素、但也可能是正確的建議;這個時候你就會很需要電腦「解釋一下,你是怎麼得到這個結論的」
這就是底下這篇文章提到的「可解釋的 機器學習」。
===
有趣的是,這與孩童的學習其實很像。
強調「可解釋性」很重要的人,多半是認為工程師、使用者,在機器展開學習後,還有可能會想要調整它。
但…… 人為的調整,真的是應該的嗎? 假定我們都不要教一個孩子道德、禮貌、算計;
如果這個孩子夠聰明、而且給他足夠的時間和機會一次次地體驗進、退、應、對的結果,
最後他「直接從社會上學到的」判斷方法、行為準則,會不會反而比你「用言詞教他的規條」還要更實用?
機器學習也是一樣,一派的人認為,就是因為人類自己能同時處理的資料量、思維模式、抽象化程度很有限,所以才會發展出「機器學習」、「大數據」等方法;
那這個時候,又要讓人類「插手機器的學習」,就像對一個飽經事故的孩子說「你不懂,做人就是不能說謊」…… 這樣,真的對嗎?
.
但是,從另外一個角度來說,大人們明知道人生有說謊的必要、也知道「說謊」不能被定義綁死;但還是選擇教小孩「不該說謊」,這是否代表了「強調誠實的重要」本身具有價值。
那如 AI 不夠厲害到「能體會人類社會中,既會說謊、又要強調誠實的意義」,那它作出來的建議,可能就的確需要被人類調整 — 就像孩童還是需要大人的教誨一樣。
到底哪一邊才對呢?
我的看法啦,畢竟「機器學習」和人類孩童還是不同的,至少,我們是明擺著利用AI輔助決策,而不會在乎它的「童年陰影」之類的。
所以,我認為啦,站在「最後還是要被人類使用」的這點來看,似乎是有必要讓AI「能解釋自己的結論」。
===
尤其以程式語言發展的歷史來看,雖然現在的 alpha go、siri「自己就超厲害」;
但在未來,懂得寫這類程式的人會更多、電腦運算也會更快;就會出現「六七個類似 alpha go 的小組,合作一個更大型的計劃」的需求。
這個時候,工程師之間的溝通會變多、工程師也會有必要向「不懂程式」的使用者說明「AI 計算結論 (建議) 的意義」
— 政府官員不會接受「如果多加一筆資料,AI 的建議就可能會從 “加稅” 變為 “減稅”」這種事。
而如果是長期運作的計劃,參數的修改、系統的維護也會有需要;
大量檔在複製的時候都可能會有一點點出錯,「30兆筆資料中,一筆複製時錯了,結果就變了」是有可能的;
所以未來也會需要「能反過來檢查,是哪個資料導致結論改變」的方法。
也就是說「可解釋性」不一定是以文字、圖片去呈現;而是
產生「有限(人類能處理、較低端電腦能檢視) 的運算紀錄」;
就好像把你一生的經歷濃縮成幾十個「轉捩點」這樣。
以上,是我的理解和介紹啦;如果好奇針對「可解釋性」的正反雙方專家們都作了哪些論辯主張,
可以點進連結去看看文章 ^^
AlphaZero遭受質疑;史上第一場正式辯論與LeCun激情抗辯;元學習&強化學習亮點覆盤
.
.
二) 3D 「遊戲引擎」究竟是什麼?
愛玩遊戲的人一定都聽過「遊戲引擎」、「物理引擎」這幾個詞吧?
好像「越新的引擎畫面越逼真」…… ?
第一個會想到,屬於3D引擎的功能是「陰影」,
底下分享的影片中,提到在「魔法門-十字軍(一代)」之前的角色陰影都只是「一個圓點」,從魔法門開始才出現「隨著 光 — 人物 的相對位置不同而有不同的陰影」。
這代表什麼意思呢? 這代表電腦要記住光源的位置,每一微秒都去計算人物這個時候該出現的影子造形
— 這也是為什麼遊戲選項中如果關掉「陰影」可以讓原本會lag的情況變得較流暢,就是讓電腦少算一點。
而這個,要用到「向量」(高中) 的數學工具。
就連最基本的「走近會變大」也需要「相似形」(國中)的計算。
如果是想要讓物件看起來「立體 — 轉不同方向也能看」 就要用到「矩陣平移、旋轉」(高三)
如果你的怪物只是一張平面的圖,那你跟電腦說「妖怪上移、下移」那是很簡單、但很假;
或是你的怪物死的時候,就只能用四張圖「開始死、正在死、倒地、已死完」快速放完、讓它看起來像動畫。
但如果你的怪物想要「死得自然點、會被絆到、會翻滾」,那你得把妖怪化為好幾個多邊形,再讓電腦利用上面提到的「矩陣旋轉」去運算出這些多邊形動起來會怎樣 (包括哪一面會被擋住)
.
===
我上面講到「遊戲引擎」,現在的許多遊戲,尤其是手遊、國產遊戲,用的都是人家開發好的、買授權;
也就是說,上述「該怎麼模擬」都已經有人想好了,使用者只要知道上述的數學基礎,會代入參數就好;
但,
一是 那引擎的研發者本人,又要怎麼想出來呢?
二是 「有人開發好」但還不夠好,所以才會一直出新的一代,那究竟製作、改良遊戲引擎的人要考量些什麼呢?
底下的這部影片,介紹的許多都是早期的電玩,這些電玩設計者,在沒人幫忙想的年代裡,要自己想出方法來、教電腦去運算出「該呈現什麼,比較有立體感」;
你可以從影片的介紹,體會到他們一點一點地技術究破
— 簡單來說,不只是數學,物理也要很好。
例如影片提到的「韋爾萊積分法」這是數學,但它最常是用在計算「點的運動狀態」
又有的時候,要瞭解生理學、材料學,例如不同材質對光的反射不同、水的波紋、風的流動、有色光造成的影像等,當然還有最基本的碰撞運動學。
光是碰撞就十分複雜了,你要避免你的多邊形們「打架」,不能讓「手插進身體裡」、「人穿牆」;但也不能「一碰就飛上天」、「被空氣卡住」
而且不要忘了,電腦並不知道怪物真正的、立體的樣貌,它知道的就是你輸入給他的許多參數。
底下附的第三個連結,就是真實被遊戲開發商使用的 unreal 引擎的使用教學指南,大家可以看看,光是碰撞這個環節要討論的就有多少 — 這些都是物理和數學啊……
.
===
如果全交給電腦用簡單的物理原理去模擬,雖然每次都可以不一樣,但如果物理引擎的參數太少,就會發現四肢像竹竿一樣不太真實。
和上述「物理計算」相對應的,是「動態捕捉」,就是讓人穿上點點衣、上演「中鎗」的動作,記住身體各「點」在中鎗過程中的位置變化 — 每個點,可能就是上述是多邊形的中心。
動態捕捉比較適合「電腦動畫」,或是較簡單的3D繪圖 — 也就是總共有幾種「死法」,讓電腦記起來,在適當的時候使用,但這樣玩一玩就會發現重複。
有的時候,電玩設計者要考量玩家的電腦效能,例如敵人在遠處跑時時可能是「幾張貼圖在交換」,跑到靠近了才變成3D的計算。
或是設計「迷霧」,隨玩家的電腦性能調整,電腦好的就一次讓他看到遠一點、看得到遠方的怪物;電腦爛的就看得近一點、遠方就是一片霧這樣。
另外附的第二個連結,就說明了電玩有時候會「將就」使用非即時的、較粗糙的渲染手法 — 反正玩家不起疑就好。
.
===
最後,總而言之,螢幕程現的是二維的,所有三維的效果都是透過對物理的瞭解,用數學寫出程式,讓電腦計算出二維該程現的內容。
如果沒有人寫程式,電腦不會知道這個是妖怪、也不會知道那是牆。
我之前常說「數學不是在日常生活用不到,反而是生活中用到的數學都太難了,學校還沒辦法教」
如果不會這些數學,就只能拿錢給別人,讓會這些數學的人幫你寫好程式、讓你用、賺你的錢……
分享這幾個連結給大家:
十款改變遊戲畫面的里程碑遊戲
https://www.youtube.com/watch?v=Kn8vXmkPnic
3D繪圖 vs 遊戲引擎
https://www.zhihu.com/question/21531721
unreal 碰撞参考指南
https://docs.unrealengine.com/latest/CHN/Engine/Physics/Collision/index.html
RealFlow布料算法
http://qqww2334.blog.163.com/blog/static/12036582201301021813977/
彩現 (渲染 — 如何讓電腦程現 立體、真實 的視覺)
韋爾萊積分法
.
.
三) 密碼不用再打怪符號
簡單來說,如果讓你猜一題單選題(五個選項,答案D),你猜中的機率是1/5
如果讓你猜一題多選題(五個選項,答案還是D),你猜中的機率是 1/31
一開始學生不習慣多選,拿到題目會亂猜一個答案;所以出題者可能會被建議「答案不要只有對一個,才不容易被猜中」
但後來學生習慣多選了,老師們就會發現,答案就算只有D,學生猜中的機率還是一樣,不想要被學生「亂猜也能拿滿分」的話,最好的方式是多出幾題。
「最好的密碼規則」其實是對應到破解的運算速度、特殊技巧。
因為早期寫密碼的人都用小寫、習慣用單詞 (太長了難記);也因為以前的電腦效能沒那麼高,強行破解密碼要花不少時間,
所以破解者要加快解密,就學會了在破解軟體中,優先去猜慣用的英文單詞。
後來才會都建議要不規則地插入數字、大寫。
但其實
1. 現在的電腦運算速度提升,而且大家的密碼都有數字、大寫; 所以破者的軟體都習慣直接連大寫、數字一起試 (不需要為了省時間,刻意先猜小寫單詞);
2. 如果是「對你有意義」的長句,一樣很難破解。
不只是因為字數多,也因為長句的第二、第三個單字出現的位置不固定,對電腦來說不會特別好猜。
例如:Applebangisaacnewton
你看得出來我寫的是「蘋果撞到艾薩克牛頓」嗎?
Apple bang isaac newton
Apple 應該很容易看出來,但後面幾個字就越來越難猜。因為你不知道我的第二個字何時結束、也就不清楚第三個字的開頭是什麼字母。
那麼,其實我也有可能用 Applehitisaacnewton
Apple hit isaac newton
第二組密碼中,isaac newton 往前移了一位,因為不確定位置,就算知道newton是一個常用詞,對破解的幫助也不大。
所以新的密碼規則,建議取「對你個人有意義、別人不容易想到」的「句子」
===
以上,其實密碼學是個很有趣、也很有開創性的學門,以前的解密者會去分析「字母頻率」和「字串頻率」
例如:
英文裡出 e 的頻率是0.12 ,而 z 只有0.01
其中e前面最常接 h (h出現的機率0.06)、後面最常接r(出現的機率0.06) ,
而且 ea很常出現,但ae很少出現 (a出現的機率0.09)
透過這樣的分析,就算你把字母全部換掉,只要它們仍然有「一對一」的對映關係,那破解密碼的人還是可以把 e 這個字母給找出來。
不過說是很簡單,大家可以要學生自行破解一篇你加密過、印出來的英文新聞看看 — 用人力去分析頻率其實是很難的。
電影「模仿遊戲」中,在電腦科技還不發達的年代,主角圖林發明了一台大型計算機,去進行頻率分析
— 但這樣還是不行,因為對手(德軍) 每一天都會重設字母的對照表;他們的電腦一天之內來不及分析出有用的結果,明天就要重頭再來。
最後是靠大家發現,所有德軍的電報最末一句都會含有 「希特勒萬歲 Heil Hitler 」 才加快了破解的流程。
以上,分享幾篇網路文章給大家
現代密碼要求數字與字母混合、大小寫,發明者很後悔http://www.ithome.com.tw/news/116127
傳統密碼之旅
http://web.math.sinica.edu.tw/math_media/d301/30108.pdf
維基 — 圖林 ( 計算機科學與人工智慧之父)
.
.
四) 真的能把低解析度的影像「變清晰」嗎?
電視劇裡面,主角點開一張解析度很低的照片、對科學家說「可以把它變清晰嗎?」… … 真的能嗎?
本來像素就少的圖片,硬是放大,不會變成一格一格的嗎?
嗯,照片的話,的確不可能變得清晰,但影像的話,真的有可能喲~~
我想大部份的人應都知道,解析度低的照片就算「放大」,也只會看到一格一格的像素 — 原本圖形的細節,因為感光元件的限制,或為了節省儲存空間,會被電腦(儀器) 的內建軟體簡化、壓縮。
所以低解析度的照片是無法再「還原」的;頂多是把邊界變平滑、讓光影更符合物理原理,而讓人看起來不會覺得粗糙。
但如果是影片,卻有機會「還原」 — 透過「瞎子摸象」的方式。
如果有四位瞎子,一個跟你說他摸到「很粗的蛇」,一個說「是四根粗糙的柱子」,一個說是「會動的長繩子」,一個說是兩根彎彎的掛勾;然後都說有聽到叫聲和呼吸聲 — 你覺得他們摸到什麼呢?
因為影像裡的物體會移動、轉動;它只要稍微偏一點,軟體在依規則壓縮時,就會產生不同的圖形;
這個時候,只要分析十幾張針對同一個物品的不同壓縮圖形,就有可能回推「原本到底是什麼,才會出現這十張不同的圖。」
這就是文章裡介紹的「透過多幀 (很多張) 影像,進行超分辨 (超過原本圖片的解析度) 重構。」
有興趣的可以點進去看看。
===
附帶一提,
物體在環境中,透過反射光線而有色彩,不論是化學分子釋出光能,或是分子結構導致光線折射,都是以分子大小為單位的 — 也就是自然界中的景象都是「超超超高清」的。
但人的眼睛受限於感光元件 — 錐狀細胞 的功能和數量影響,一般的說法是,因為人眼有約500萬個錐狀細胞,所以大約可說是500萬像素的 (每個錐狀細胞回傳一個光點訊號)。
只有500萬像素,對比現在的手機好像很低階;但眼睛不是用來「拍照」的,而是「錄像」的;
視網膜回傳訊號的速度很快,你在看營幕、玩遊戲時,同一瞬間你的眼睛其實只有在判讀大約一枚硬幣大小的畫面,但它會快速轉動、描掃畫面中其他部份,讓大腦去建構一個高解析的整體圖像。
所以也有人說眼睛是幾十億像素的。
透過多幀影像,超分辨重構。
https://www.zhihu.com/question/25401250/answer/33417898
.
.
五) google 為了翻譯,發明了自己的語言?
先簡述這個影片:「google 認為,現在的 google翻譯器, 比如說「日翻中」實際上是「日翻英,英翻中」,這樣增加了翻譯和文法的錯誤。
他們企圖開發一套電腦專用的「 內部語言 interlingua」,來取代英文。」
這有什麼好處呢? 少數工程師真的有辦法自己發明一套語言嗎?
===
其實這應該是利用巨量資料,讓電腦自己學會 「日/韓/中文」與「interlingua」的對應。
比如說,在 「interlingua」中,「編號 111 」在大量資料的比對、調整後,有以下特性:
1. 常常接在「美式」、「吃」、「雙層」後面,
2. 又常和「麥當勞」、「薯條」、「套餐」放在同一句話的,
那麼,中文的「漢+堡」、日文的「ハンバーガー」 就會被電腦認定為「都是 編號111」
而且可能連「漢保」、「バーガー」 這種錯別字、俗稱、流行語都會成功比對出來
— 因為還有前後字詞可以比對。
只要讓電腦用來「學習」的文字資料夠多,要成功的建立翻譯的鍊結 (包括文法正確) 並非不可能。
我相信 google 是有可能辦到的;事實上,他們已經有類似的能力了,你在 google 蒐尋欄打錯別字,都會被詢問:「你是不是要輸入xxxx ?」
甚至你「忘了切換 注音」直接打,他都會猜到 — 不是他們的工程師很貼心,
而是很多人這麼打錯、後來又再重新輸入正確的,久了電腦就學起來了。
就好像媽媽聽得懂,小孩的童言童語一樣。
===
所以實際上程序工程師並不需要真的「創造一套語言」再輸入給電腦,他們只要讓電腦學會怎麼「比對」、「確認 / 調整」就好。
也就是說,這個「新語言」本身可能連他們的工程師都不知道該怎麼解讀 — 但電腦卻知道該怎麼對應。
而電腦也只是知道「怎麼對應最好」而已,實際上並不一定知道這些詞有什麼意義
— 這就是神妙的地方,明明不知道是什麼意義,卻又能把它翻過來。
如果google真的能做到這點,那將來或許真的能讓電腦「創作一篇作文」 — 明明不知道是什麼意思,卻寫得出一篇文句通順的文章。
又,google 也同時積極在建立「圖片辨視」的功能;
那麼當電腦既知道 「在吃、雙層、美式 之後的,應該是 “漢堡” 」
又能分辨出漢堡的照片…… 那它到底算不算「知道漢堡這個字」?
Google AI 正在開發自己的語言系統
https://www.facebook.com/worldeconomicforum/videos/10153992947091479/?hc_ref=NEWSFEED
中文房間
.
.
六) AI是怎麼學的?
你在ipad上面用手寫字,ipad要怎麼知道你現想寫的是 兀、几、儿、元還是英語草寫的r ?
你丟一張照片到google上,google要怎麼知道你想蒐尋的是兩側紅磚屋的石板大道,還是一個連身灰裙的女子站在紅色廣場上?
所謂的「機器學習」就是讓電腦學會「判斷得更精準」,包括麥克風收到的聲音,哪些可能是嗓音、哪些是雜訊;包括入口網站預測你會想看的新聞。
要讓機器學習,就像這篇網頁裡提到的,要先幫電腦「分類」、「建立維度」。
但其實光是「怎麼分類」、「要有哪些維度最適當」也可以讓機器去學習。
而所有要讓機器去學的,都必需先有人設計好「這樣可以學到什麼」 — 這些也是數學,包括「如何分類、分析」也是數學。
只是我們在國小到高中的數學課,都很難深入去提升「找到最佳分類維度」的能力。
頂多就是像「硬幣找零」或「邊長整數、週長四十的三角形有幾種」這樣,去進行一些特定的分析練習,都還談不上「教學」。
並不是老師不教,而是目前還沒看到有效的教學方法。
也許這是未來數學教育改革可以著墨的一塊。
分享這篇文章給大家 ^^
圖解機器學習
.
.
七) 把秘密,甚至病毒藏在圖片檔裡
現在的影視作品很喜歡「藏彩蛋」給觀眾找;事實上,不論電影、遊戲都有一些彩蛋是「創作者、製作人員」背著開發商偷偷藏進去的「簽名」
— 不是遊戲裡鍵入特定的按鍵順序,可以看到程式人員的簽名;就連紅白機主機板裡內建的程式,也有當時工程師的留言。
之所以要「偷偷藏起來」,除了因為商人不希望他的商品被簽上技術人員的名字 (但技術人員偏偏想讓後人知道他的貢獻) ;也因為盜版者如果看到了簽名,就會移除掉它。
而所謂的「影像密碼」,其實就像藏頭詩一樣,可以把訊息藏在圖片裡卻看不出來。
早期是利用影像學,例如
「紅______紅_______紅」看起來是三個紅點
「___藍___藍___藍____」看起來是三個綠點,但合起來
「紅_藍___紫___藍__紅」當紅點和綠點靠得夠近,人眼(腦)就把它辨認為紫色。
這個時候你可能會發現「紫色的部份連成了一些字」 — 這就是想隱藏的密碼了。
現在大部份的圖片都是數位檔了,要在圖片裡隱藏訊號,其實也就是要在一堆數據裡藏資料 — 「數位浮水印」便是用這種用途,讓作者進行簽名、或加註版本。
它不是真的圖片上有浮水印;而是先針對圖片播放器「解讀圖片檔」的規則作了研究,把要隱藏的訊息設計成「只會影響到幾個散落的點」 — 而被你的雙眼、大腦忽略掉。
平常你看不到,但等到上法庭,要爭論數位版權的時候,作者可以輕易地用特定方法解開這種隱藏的巧門、把證據簽名秀出來。
那麼,既然上面說了「要藏,是因為有人會抹去它」,當然就不能太輕易地被發現 (例如反白就看見了……那就太low了)
一個好的數位浮水印,要能「防搜索」 — 把圖片變形、變色,都不會被破壞、也不會被發現。
它甚至可以作為一種「加密資料」的傳輸方式 (因為能抵抗破解密碼的攻擊)、甚至可以作為病毒的載體。
而實務上呢,要讓數位浮水印變得更強大、更多功能,都是要用數學的演算法來完成的喲!
數位影像密碼學
http://scimonth.blogspot.tw/2015/05/blog-post_39.html
.
.
八) 電影動畫 不用一張一張畫,那要怎流做?
底下這個影片,介紹了皮克斯動畫的繪製技巧之一:「細分」 — 人物是有曲線的,這些曲線會被以「弦中點」來定位。
其實看完影片,大家不妨想想:「為什麼要用 “細分” 這項技術來畫複雜的曲線 — 為什麼不直接由點、或小色塊來組成就好?」
並不是為了「光滑」哦! 相反的,那些光滑感,反而讓角色假假的 — 而設計師的專業,就是要讓它「雖然有點假假的,但不影響大家喜歡他們,畢竟仍然是動「畫」嘛……」
其實呢,如果你有留意的話,講者有很快地提到了一個關鍵;之所以皮克斯選擇用 “細分” 來建構曲面,是為了
「在做動作的時候,只需要移動 幾個定位點,剩下的電腦透過計算中點,就可以幫你一併移過去」
— 要不然的話,一個曲面如果有八十個點,那你每一格些微的移動,都必需重設八十個點的位置。
所以其實這跟另一個數學知識有關:函數
等於圖形上的各點,都變成是由四個定位點座標,所推導出來的函數。
這樣的設計,也有點像是程式語言發展出函式、物件導向的概念。
皮克斯 — 動畫裡的數學
.
.
九) 用高中數學,決定搜尋引擎的顯示排序
這篇文章好炫,一個高二下「轉移矩陣」的簡單應用。
就像我常說的,生活中不是沒有數學,而是幾乎到處都有數學;
只是因為數學發展得很早,國、高中數學都是兩三百年前開發出來的,現在的科技應用到的數學都已經很深很深了。
實務上, google 當然不會只用這麼簡單的矩陣演算去決定蒐尋排序
— 這文章裡的例題只涉及3個網頁,而且3個網頁全都互相連結 (沒有連到外部)
google 的蒐尋演算一定得考量更多、必需更快速找到答案。
不過,能夠發現課內數學在日常生活的有趣應用,還是讓人很開心啦 ^^
轉移矩陣的穩定狀態與Google搜尋引擎http://highscope.ch.ntu.edu.tw/wordpress/?p=51134
.
.
十) 駭客都是怎麼癱瘓一個網站的?
底下分享的這篇文章非常的潛顯易懂。 「駭客 / 防駭」 或是「網路封鎖 / 爬牆」的鬥法是非常好的創意邏輯辯訓練。
簡單來說,你可以花重金打造一個「小偷花兩個小時打不開」的門鎖; 但小偷不一定要去解鎖,他可以偷走你的鑰匙再去開就好了。
駭客不一定要「破解你的密碼」,它只要讓你的電腦「忙不過來」你的網站就GG嘍~~
文章裡以「店鋪」為例,要癱瘓你的店鋪,只要派一堆人裝成顧客上門「呃…我想點…… 算了還是不要了 (走掉)」;
或是派一個奧客:「小姐你們的白醬是用什麼做的? 蛤蜊會有殼嗎? 麵可以點七分熟嗎? 牛肉是澳洲牛嗎? 紅醬是素的嗎? 套餐的薯條可以換地瓜嗎? ……」
所謂「鬥法」就是這樣,攻擊者永遠會 找你沒想到的漏洞 — 這也是為什麼有的網站還會請駭客來嚐試攻擊 (類似「壓力測試」)、確認自己的網站還有沒有漏洞。
至於店家要怎麼因應、怎樣的機制可以防範常見的攻擊,大家可以點進去看看 ^^
駭客技術太深奧,直接用漫畫讓你秒懂什麼是 DDoS 攻擊? http://buzzorange.com/techorange/2015/09/16/dos-comic/
.
.
11) 用硬碟空間換取運算時間
前陣子跟學生聊到這個。
我記得我剛念大學時,CS 正流行起來;那時候傳聞美國有程式超強的大學生,寫了一個仿 CS 的遊戲,卻只要 2 MB的空間。
但據說那隻遊戲軟體,需要工業級的電腦才跑得起來。
其實說穿了,就是把「圖檔」存在你的電腦裡的話,那運算起來輕鬆,但占的空間就大;
如果把「圖形」寫成「演算法」,等於是用幾個字元的空間來存放、傳送,再讓你的電腦自己去算、去畫。
那當然就比較省空間、但也就需要更強大的運算能力。
也差不多我高中、大學的時期,那時候幾款經典、熱賣的遊戲,都動不動飆上 4 GB、甚至要四片光碟接力才能灌完。
這原因無他,就是把高品質的音樂、圖片全都存起來罷了。
也很難說怎樣的設計比較高明,其實是要看當前主流電腦、手機等載具的規格,
如果是 CPU、GPU 的性能比較好、但硬碟不大的話,那就用畫的;反之,就先把檔案存起來。 當然,現在的話還要再考量到網路的速度 與 流量。
不過呢,在看這篇之前,我倒是都不知道,原來 google 的原商標,設計得這麼多眉角啊……
為什麼新的 Google 商標只有 305 Bytes,而舊的卻有14,000 Bytes?
.
.
====== 程式教育 ======
一) 程式教育 vs 數學教育 的 異與同
學校教育,教的是兩千多年來數學家發現的「速解方法」,所以你會發現每一章都有公式 — 因為以前沒電腦,每提出一個速解公式,便可使人類文明向前一大步。
但它的副作用是:從國中、到高中,學的數學越多,遇到新題目時學生反而越被動 — 總覺得,這題應該也會有速解,我等老師教就好了。
這兩年多來,我寫了很多篇關於「排列組合」、「機率」如何「想清楚」的文章;
也一再地跟網友強調,讓學生「想像題目的情境、發現其中的數學特色」比在回憶裡找尋這題的速解法重要。
到了現在,我還是這麼想的,也還是希望數學教育能善用程式編寫的兩大特性:
「電腦很笨,所以寫程式的人一定得想清楚,才能讓電腦知道該做什麼」
和
「就算是一步一步算、原本很慢,但只要想清楚了,電腦就能很快算完」
這兩大特性,讓學生可以去訓練「學會速解」以外的「數學力」 — 去模擬、去觀察發現、去推論的能力。
.
這週本來要發佈的「閒聊文整理」就是關於程式、人工智能的知識;然後想起了之前寫的這篇。
重看了一遍,還是覺得當時寫得很有道理 (呵呵,自己誇)。
因為也是兩年多前的文章了,把它重新分享一次,讓還沒看過的網友看看。
我在文章裡建議了兩個「程式 x 數學」的大方向:
一、沒有速解、必需一步一步推論的問題。
二、有速解的,讓學生「寫出程式,去解 「使用者出的應用問題」」
如果對「程式 x 數學」這件事感興趣的人,不妨參考一下 ^^
電腦×數學 ≠ 丟給電腦算https://www.facebook.com/notes/%E6%9C%89%E7%86%8A%E8%80%81%E5%B8%AB-%E9%99%AA%E4%BD%A0%E6%95%99%E6%95%B8%E5%AD%B8/%E9%9B%BB%E8%85%A6%E6%95%B8%E5%AD%B8-%E4%B8%9F%E7%B5%A6%E9%9B%BB%E8%85%A6%E7%AE%97/941996859241456/
二) 一邊遊戲,一邊學程式
與其說是學程式,不如說是學邏輯。 我覺得這是很有意思的幼兒教材 — 也許說教材太生硬了,應該說是很值得擁有的玩具吧……
台灣國中小的電腦課,目前都還太重應用 (OS操作、文書軟體、蒐尋快捷指令)了。
學生對「寫程式」有興趣,卻又啃不動語法教科書。 看來程式教學這個領域,還有很大的改良空間。
一直玩一直玩就會寫程式了!CodeMonkey 用遊戲教小孩 Coding
Codemonkey 繁中版
三) 將資訊課與社會科、生物科結合
哦哦,這樣的資訊課的確是很棒!
可以讓學生體驗「研究」的過程,從一開始的「觀察需求、確認主題」,然後「蒐集資料」、然後「使用工具分析」、「判讀分析結果」並「討論改善方法」
即便拿掉其中有關 big data 分析的部份,都是很有價值的一堂課。
只是像這樣的「討論」、「活動」課程,如果在三十人的班級裡,要如何盡量讓每個學生都能參與到,這就要看教學現場的能力了。
翻轉的資訊課:Big Data(其實是small data), Machine Learning, 資料分析, 社區改造運動與資訊教學:雪特分析
小黑老師來說說 (資訊課,與 數位教學運用)
.