Author name: 楊慶忠

人工神經網路之2~機器學習與深度學習

1-2.機器學習與深度學習 一般人提到人工智慧,有時會將它和「機器學習」當做是同一件事,認為既然某種機器懂得如何去學習,那麼它就如同具備有人工智慧了,並據此認為前面所提到的「深度學習」,也應該是屬於機器學習的一種。 這樣的認知並無不可,但更多的時候,機器學習和深度學習,是可以分開討論的。深度學習有不少觀念是源自於機器學習,但也有很多技術是獨立發展出來的,這兩者之間,還是可以做出一些區別。 機器學習,當初被發展的目的之一,是在擴充傳統統計技術之不足。早期在做統計迴歸的時候,權重的決定,必須先考慮到變數(特徵)的重要性,但到了機器學習的時代,權重是由大量數據分批次(batch)、分週期(epoch)、反覆修正(iteration)而得,所以一開始的權重,是可以用隨機的方式來設定它。 至於深度學習,如果先懂得機器學習再來理解它固然有幫助,沒有也無妨。它同樣是在取得最佳的權重值,但其權重是存在神經層和神經層之間,權重(參數)數目少則數十萬,多則可達數百億個,處理的技巧已經是既多元又繁複了。 機器學習,目前多使用在資料處理的範圍,例如迴歸、分類、分群。常用的技術像K-means、K-Nearest Neighbors、決策樹等。 深度學習,是目前在影像辨識、語音辨識、自然語言處理的主流技術。常用的技巧像CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DQN(Deep Q Network)等。 圖1-2. 深度學習可以被認為是屬於機器學習,但也可以把這兩者看成是人工智慧的兩個主要項目。

人工神經網路之2~機器學習與深度學習 Read More »

人工神經網路之1~達特茅斯會議

1-1.達特茅斯會議 西元1950年,英國科學家圖靈提出了著名的「圖靈測試」,認為同一個問題,如果機器的答案和人類的答案無從區分其差異的話,那就彷彿機器也有智能一樣。 1956年,在美國長春藤盟校之一,達特茅斯學院的研討會上,時任該校助理教授的麥卡錫(John McCarthy),在場確定了「人工智慧」(Artificial Intelligence,AI)這一個名詞。當時學者對其願景十分樂觀。 在經歷了經費充沛、優秀人才競相投入的60年代後,1974年迎來了AI第一次寒冬,過度誇大的前景預測一一泡沫化,經費大幅被削減。一直到專家系統(expert system)出現,才萌生一些轉機。 很不幸地,專家系統的熱潮,並沒有維持很久,從1987年苦撐到1993年,然後掉進第二次谷底。 圖1-1-1. 達特茅斯會議四位發起人之一,克勞德夏農(Claude Shannon),是在數位領域相當著名的學者。 1993年之後,情況開始改觀了。積體電路的快速發展,電腦功能的革命性躍昇,加上「感知器」(Perceptron)的重生,AI再度復活。這次,不單單是在學術領域而已,它涵蓋的範圍,已經和每個人的日常生活息息相關了。 在學理應用上,辛頓(Hinton)的深度學習(Deep Learning),改名自惡名昭彰的深度神經網路(Deep Neural Network,DNN),他善用反向傳播(Backpropogation)的技巧,來修正取得各節點的權重,是一個重大突破。 圖1-1-2. 反向傳播(back propagation),有用到微積分的連鎖法則(chain rule)。 若輔以矩陣運算能力特強的圖形處理器(GPU),彼時熱門的智慧影像識別的判斷誤差,已可得到顯著的改善。 人工智慧目前的商業應用,包括電腦視覺、語音辨識、自然語言處理等,是各先進國家大力推動的科技重點。 在AI基礎教育上,除了做跨領域整合,結合社會科學、人文藝術外,最根本的學能培養,還是在程式設計上面。目前各大學院校程式語言的課程,越來越多選用Python,這個語言也是人工智慧的最佳選擇。 然而比較高階的使用,在實務上還需再學習TensorFlow(學術界很多人喜歡用Pytorch),然後再搭配GPU在Python編輯環境上作業。C/C++語言則適合應用在視訊等需要快速運算的領域。 圖1-1-3. 為什麼要學Python?讓Rossum告訴你。

人工神經網路之1~達特茅斯會議 Read More »

人工神經網路

第一章:人工神經網路 人工智慧的深度學習(deep learning),也叫做深度神經網路,是從人工神經網路(Artificial Neural Network)發展而來的。它是一種模仿動物大腦結構與功能的數學模型或計算模式,我們先看一下大腦神經元是如何傳遞訊息的。 下圖上的神經元細胞接受到左方訊號後,會將訊號處理後再傳遞給右方的神經元細胞。接受訊號是使用較靠近細胞核(nucleus)的樹突(dendrite);傳遞訊號則是使用軸突末端(axon terminals),它和另外神經元的樹突,會形成所謂突觸(synapse)的接觸點,來進行電子或化學反應。不論接受或傳遞訊號,都可來自或經由一個以上的神經元。 我們可以用上圖下再把概念精簡類比一下。一個神經元細胞可當作一個節點,當來自其他神經元的訊號,進入節點經過處理後,可以把訊息再傳遞給其他節點。一個節點的訊號可來自多個節點,並把訊號傳遞給其他多個節點,這個概念可擴充成神經網路的初步雛形如下圖: 上圖上是一個簡易的神經網路結構,每個圓圈當作一個節點,縱向垂直排列的多個節點形成一個神經層,在此只有三個神經層,由左至右分別是輸入層、隱藏層、輸出層。 在這裡可以和幼兒的腦細胞發育做一個比較。嬰兒從出生到兩歲,神經元數量基本沒有變化,大腦在胎兒剛出生時,就配備了基本所有神經元,只是後來建立了很多突觸以連接其他神經元。這兩年當中,大腦每秒就產生700個突觸連接如下圖所示: 上面這種比較完整的神經元結構圖,就可以用下面的深度神經網路來模擬。其輸入層和輸出層當中的隱藏層數目,以及任一個神經層的節點數,都可做增減,來改變相鄰神經層中間權重矩陣的大小。 兩兩相鄰神經層中間交叉重疊的線條,就代表這些權重矩陣。一般而言,權重矩陣的元素越多,預測的準度也會越高,但同時也必須輸入更多的資料來訓練模型。

人工神經網路 Read More »

計算機到美國-5

2-5.女性程式員開始露臉 先前提過的哈柏(Hopper)女士,她是以海軍上尉的身分,協助當時的海軍少校艾肯,在哈佛大學編寫馬克一號使用手冊。 她也是馬克一號主要的程式設計人員,雖然那時候還是使用打孔紙帶輸入程式碼,但馬克一號在哈柏的努力下,可說是當時最適合輸入電腦程式的計算機。 https://mobile-learning-testing.com/wp-content/uploads/2024/06/ComtoAmeri5.mp4 在此之外,有六個默默付出的娘子軍,在摩爾學院被選入ENIAC團隊,這六人變成男性工程師的程式設計夥伴,她們後來也逐漸理解,程式設計的重要性,可能不亞於電子電路的設計。  從愛達到哈柏女士到ENIAC這六人組,明白顯示出,天性細膩堅忍且恪守工作倫理的女生,其實很適合從事程式設計的相關工作。 圖2-5-1. ENIAC兩位女性程式設計員,Jennings(左)、Bilas(右)。

計算機到美國-5 Read More »

計算機到美國-4

2-4.馮諾伊曼和艾柯特 ENIAC使用了1萬8千隻真空管,難度極高,幸賴艾柯特的年輕工程師團隊克服萬難,終於在1945年11月大功告成。它可在一秒鐘完成五千次加減運算,比馬克一號快了一百多倍。 但它有幾個問題。它是十進位而非二進位,儲存容量太小、使用太多真空管、改變程式太耗時間…………….。 圖2-4-1.馮諾伊曼在普林斯頓高等研究院所建立的計算機實驗室。 普林斯頓教授馮諾伊曼,在這緊要關頭適時登上舞台,他把下一代開發的機型命名為「EDVAC」。EDVAC有幾個特色,第一,它是使用二進位;第二,它把指令和資料共同儲存在內部記憶體上。 第二點相當重要,如果記憶體可同時儲存程式的指令和計算的數值,那就不用每次都要機械式地從外部輸入卡片,這將大大地提升處理速度和儲存空間。 這個原始想法應該是來自摩爾學院,但馮諾伊曼大力強調這項特色,似乎變成他才是主要貢獻者。二戰後馮諾伊曼回學校去了,當時的普林斯頓大師雲集,愛因斯坦和楊振寧都是校內成員。 https://mobile-learning-testing.com/wp-content/uploads/2024/06/ComtoAmeri04a.mp4

計算機到美國-4 Read More »

計算機到美國-3

2-3.莫渠利和高士譚 為了因應二戰電子技術人力需求,摩爾學院在1941年暑假開辦電子學課程,其中一位約翰霍普金斯大學物理學博士班畢業,在爾賽納斯學院擔任講師的莫渠利,是結業生中表現最傑出的,獲得留在摩爾學院擔任助理教授的機會。 莫渠利曾造訪愛荷華州立大學「被遺忘的電腦之父」–阿塔那索夫,學到一些概念。他一直對製作真空管式計算機很感到興趣,本身也具深厚的計算理論基礎。 在摩爾學院內,莫渠利結識了優秀的電子工程師艾柯特,他是碩士班畢業生,兩人對電子式計算機的願景,都有強烈的熱忱。 莫渠利在1942年8月,提出一份備忘錄,標題為《高速真空管在計算上的應用》,但並沒有受到賓州大學的重視。 但這份備忘錄卻引起了一位軍官的注意,他是芝加哥大學數學博士班畢業的高士譚中尉,在二戰期間,負責聯絡摩爾學院有關女性計算員的各項事宜。 莫渠利和高士譚的理論背景,以及目睹女性計算員被數值大海淹沒的窘境,都讓他們瞭解新型計算機的建造是勢在必行。 所以在高士譚的協助下,莫渠利將計畫名稱修訂為「電子數值積分器與計算機」(ENIAC),在1943年4月9日正式拍板定案。

計算機到美國-3 Read More »

計算機到美國-2

2-2.賓州大學摩爾學院 馬克一號做一次乘法計算,就需要花費6秒鐘的時間,即便是在1943年,都不是讓人滿意的速度,接下來要開發新型計算機,一定要想辦法提升運算效率。 馬克一號使用到電磁鐵式的繼電器,被歸類為機械式的計算機,要想加快運算速度,一定要改用電子電路,也就是應該使用真空管來取代繼電器。真空管是當時極重要的電子元件,具有放大和整流的功能,類似現在的電晶體。 https://mobile-learning-testing.com/wp-content/uploads/2024/06/ComtoAmeri02a.mp4 計算機電子化的重責大任,是落在賓州大學身上。它的電機學院是由Alfred Fitler Moore所捐贈,所以也稱之為摩爾學院。賓州大學是著名學府,其華頓商學院目前在全美排行數一數二。 賓州大學位於費城,離東北方普林斯頓大學約一個小時路程,離西南方美國陸軍的「彈道研究實驗室」,鐵路相連不到一小時車程。 圖2-2.賓州大學早期校園

計算機到美國-2 Read More »

計算機到美國-1

2-1.哈佛大學艾肯教授 艾肯於1937年,在哈佛大學物理系唸博士班時,必須求解真空管的非線性微分方程式,他不得不向系上尋求支援,請求幫忙建造一台數位計算機。 系上對這個提議不置可否且無力支持,但艾肯鍥而不捨,他轉而將計畫向各方兜售,最終獲得IBM公司的青睞,在IBM頂尖工程師的協助下,建造出真正可以運作計算的電腦。 圖2-1-1.哈佛馬克一號 這部電腦取名為「馬克一號」(Mark Ⅰ)。它的運算速度並不快,每秒鐘只能做三次加法或減法,並不是採取二進位,而且體積龐大,稱不上是很先進的成果。但馬克一號的意義在於,它是電腦時代的圖騰,是第一台可以實際操作的全自動計算機。 當時負責打孔卡片程式輸入的是哈柏女士,哈柏有一次執行程式時發生問題,但詳細檢查之後,確認程式碼本身並無邏輯錯誤,後來維修工程師從一部繼電器的縫隙中,抓出一隻卡在裡面的肇禍飛蛾,從此,修改程式碼的錯誤就俗稱為「debug」(抓蟲)。  https://mobile-learning-testing.com/wp-content/uploads/2024/06/CominAmeri01.mp4

計算機到美國-1 Read More »

計算機到美國

第二章:計算機到美國 在巴貝奇和愛達那段期間,法國人柯爾瑪,也在1820年發明了加減計算機–Arithmometer。這部機器傳入美國並經改良後,在兩次大戰期間,竟然銷售了幾百萬台。 美國人自來就勇於嘗試各類新開發的辦公室裝置,例如像打字機、收銀機、加算機等。 因此在1890年的人口普查招標中,評審委員會一致同意,引用卡片打孔技術的霍勒里思電動列表系統,贏得該次人口普查的標案。 霍勒里思後來成立列表機器公司,提供資料統計分析服務。該公司之後被CTR收購,最終變成IBM國際商務機器公司。

計算機到美國 Read More »

計算機在歐洲-5

1-5.艾達女士的演算法 艾達女士(1815~1852)有一個赫赫有名的父親,就是家喻戶曉的英國詩人拜倫男爵。 她母親安娜貝拉有不錯的數學天份,在和拜倫離婚後,為了不讓艾達沿襲她父親浪漫不羈的天性,聘請了家庭教師來加強她數學和科學的訓練。 但艾達同時遺傳了父母兩方的基因,以至於特別鍾情於所謂「詩意的科學」(poetical science),就是像計算機這種需要結合演算法,合乎邏輯、結構優美的科學。 巴貝奇的分析機從未真正運作過,但他所提的概念,例如數值儲存和算術運算分開,使用不同卡片輸入來執行不同運算等,讓分析機在概念上類似現代的電腦。 艾達是在社交場合認識巴貝奇,她能理解分析機的潛力,也協助翻譯義大利人描述分析機的論文,還加進了篇幅更長的「譯者評注」。 在1843年所寫的「譯者評注」中,艾達為後世留下兩個主要貢獻,也讓她因此名垂青史。 圖1-5-1.艾達女士圖像 其一,艾達認為,分析機不僅能做數值運算,還能做邏輯運算(例如比較判斷等),甚至,還可以處理音樂、影像等可供算術或邏輯運算的內容。 其二,她提出了現代電腦中「演算法」的概念,並以白努利數列舉例說明。 白努利數列是很複雜的無限數列,不好理解。我們可以用比較簡單的例子來認識何謂「演算法」。 例如我們知道直角三角形一邊為3, 一邊為4, 欲求其斜邊大小。 這個題目我們可引用畢氏定理「斜邊平方為兩直角邊之平方和」。所以先求3平方以及4平方之和後,再開根號得5。 在這個例子中,「先各求兩直角邊平方,將其相加後,再開根號」,即為本題之「演算法」。因為它是可以寫成程式,以計算出任何直角三角形的斜邊值。 另一個例子是從1加到10,1+2+3+4+5+6+7+8+9+10= ?。 我們用手算這題目,當然可以告訴自己,應該要一個一個慢慢加。但電腦並不懂什麼叫做「一個一個慢慢加」,你必須要教它如何進行「一個一個慢慢加」的程序。 你必須告訴它,「從1開始,每次加上一個比現有數字多1的數字,一直累加到10為止。」 上述過程,可以寫成迴圈(loop)程式碼,所以也是一種演算法。 簡單地講,「演算法」就是解答問題的步驟程序,並且可轉換成程式碼。「演算法」不一定要求出正確解,也可以只求出近似解︒ 愛達當年已經提出「次常式」的概念,也會使用遞迴的技巧,後世為表彰她的貢獻,美國國防部開發的程式語言Ada,就是以她來命名。 圖1-5-2.艾達的白努利數演算法

計算機在歐洲-5 Read More »

Shopping Cart