Author name: 楊慶忠

自然語言處理之1~編碼器與解碼器

2-1:編碼器與解碼器 在RNN早期階段,它常被使用在翻譯上,在某個時序輸入一個詞,就可以在同一時序得到相對應的輸出,這跟早期翻譯的模式很接近。 尤其是用英文來翻譯法文或西班牙文,這種一進一出的架構,對語系相近的文字很有利。但如果是翻譯中文和英文,問題就比較多了。 中文句子不像英文,可以利用句子當中的空格,把單字分開為各個詞彙。中文句子每個字都是並排靠攏在一起,例如像「我打遍天下無敵手」,其實包括了「我」、「打遍天下」、「無敵手」這三個詞彙。所以中翻英輸出和輸入長度常常是不一樣的。 類似這種情況,在文章摘要和文字創作都會出現。所以,序列對序列(Sequence to Sequence,Seq2Seq),這種架構就自然而然的被推出來了。這種架構包含一個編碼器和一個解碼器,容許輸入和輸出長度不同,如下圖所示。 圖2-1-1. 編碼器與解碼器構造。 上圖上是在訓練階段,解碼器輸出必須和標記值比對,以回饋修正模型權重值;上圖下則是在預測階段,用「文字接龍」的方式,逐一輸出整個句子或段落。 目前的文字生成,除了摘要和創作,還包括製表、繪圖甚至寫程式,但設法提升傳統翻譯精準度,在自然語言模型發展過程中,實在有很基本的貢獻。 一般人學習英文,常常感覺英文單字背了又忘、忘了又背,原因在於盎格魯、薩克遜是日耳曼人分支,且法國諾曼第威廉公爵,也曾在11世紀跨海統治過英倫,把法文詞彙帶進英文當中,英文字彙因而是德語加上法語的總和,所以英文難學是必然的。但在AI鋪天蓋地席捲而來之際,把英語學好,總是會比別人多佔一些優勢。 圖2-1-2. 威廉公爵的領地諾曼地(Normandy),是二戰盟軍反攻的主戰場。

自然語言處理之1~編碼器與解碼器 Read More »

多益閱讀測驗

作答時間:24分鐘。將得分乘以4.95,就大約是你在多益閱讀部份的分數。 多益精簡版閱讀測驗           多益精簡版閱讀測驗 第一部份:句子填空 1. The new product development meeting will be held either in Room 402 _______ in Room 501.       A. or       B. and       C. not       D. but      A   B   C   D   2. The restaurant will _______ for two days for remodeling.       A. hold       B. build       C. close       D. invite      A   B  

多益閱讀測驗 Read More »

自然語言處理

第二章:自然語言處理 影像分類辨識,可說是深度學習最基本的功夫,它所延伸出來的影像分割及物件偵測等,結合傳統的圖形識別(Pattern Recognition)技術,在電腦視覺領域上大放異采。 用它充當機器人的雙眼時,展現出來的識別功能,讓人刮目相看。如果再引入增強式學習,就是炙手可熱的無人駕駛和無人搬運了。在這個階段,和智慧影像處理相關的科技新知,成了很多鎂光燈的焦點所在。 但值此同時,另一支潛力績優股,卻正在悄然潛行。它日後綻放的光芒,掩蓋了所有其它的人工智慧同儕,它就是「自然語言處理」(NLP,Natural Language Processing)。 自然語言處理,也是採用深度學習神經網路,但屬於RNN(Recurrent Neural Network)架構。RNN我們稱之為循環神經網路,是使用同一組的神經層,在不同時間做一序列的不同輸出,如下圖所示。 圖2-1. RNN循環神經網路構造。 上圖左邊是RNN的基本構造,右邊展開後,可以看到在時間序列上,上一次的輸出,也會是下一次的部份輸入。這種結構具有記憶的功能,所以對文句這種字詞間有前後關聯的資訊,在處理上就比較有利。 這種RNN結構只有短期記憶功能,所以後來逐步將長期記憶也加進去,隨之也考慮文字輸入、輸出長度應該會不同,甚至輸出和輸入字詞間也會有不同程度的關聯………。 最後,乾脆揚棄這種無法平行處理大量數據的時間序列,改採可以建立大型語言模型的變形金剛–Transformer,進而讓自然語言生成的GPT橫空出世。從此,人工智慧真正進入風起雲湧的時代了。 圖2-2. 變形金剛來了!

自然語言處理 Read More »

人工神經網路之6~物件偵測

1-6.物件偵測 前面提到的影像分割,在模型訓練階段,有一個比較麻煩的地方待處理。 我們還記得,在更早前做影像辨識的時候,只需要將輸入圖片的名稱編號再編碼就可以。例如,要辨識5種花朵中的第3種玫瑰,我們是先將它編號為2(從0開始編號),再將其編碼為00100,最後把這個「標記值」連同圖片放進模型訓練。 這個「標記值」的取得,在影像分割這邊可麻煩多了,在這裡稱「標記值」為ground truth,它需描繪標記出圖片裡面的各個物體邊緣輪廓。描繪邊緣輪廓線雖然有軟體可幫忙,但還是要用到不少人工手動作業,並不十分科學。 這時候,物件偵測技術也水到渠成被發展出來了。「物件偵測」(Object detection),同樣可以分類多種物體,還能統計出各類物體的數目,並且它標記的方式比影像分割簡單多了,其中最為人熟知的演算法,叫做YOLO—You Only Look Once。 圖1-6-1. YOLO模型預測圖片中不同物體,及其位置、大小。 上面的圖片是YOLO模型訓練完畢後,用程式來預測未知圖片所顯示的結果。它可以分類框選出不同物體,並大略判斷出這些物體的大小及位置。 但模型還在進行訓練的時候,框選作業是由人為手工來進行的,目的在標記資料集每張已知圖片中的物體種類、位置、大小。看的出來,設定方框是比描繪輪廓線要簡單多了。 有別於早先的技術,YOLO演算法最大的特色,就是它進行CNN運算時,只要做一次就好(You Only Look Once),後續計算的部份都是直接在特徵領域處理了,所以它的速度非常快。 這個特色讓YOLO非常適合做視訊處理,比如交通流量的調查,消費顧客人數的統計,都可得到很好的效果。

人工神經網路之6~物件偵測 Read More »

人工神經網路之5~影像分割

1-5.影像分割 前面提到的影像辨識,僅能從一張圖片當中,判斷其內容是屬於哪一類物體。如果換個角度來看,十幾萬個像素灰階值,經過模型計算輸出後,只能得到一個編號值,這是相當不經濟的。 至少,模型應該可以從圖片中辨識多於一種物體,而且各種物體的位置大小也都可以判讀出來,這樣的神經網路,才能提供足夠多的訊息給使用者。 影像分割的目的,就是要簡化影像的表示形式,使其更容易被理解和分析。這個領域的發展,近年來引進人工智慧的活力後,重點在於將圖片中的不同物體各自所包含的範圍,標記出一致性的灰階值。這種方式叫做語意分割(Semantic segmentation),意即對圖片內容涵意的理解。 圖1-5-1. 語意分割處理前後的圖片。 上面的第一張圖,是包含貓和狗兩種物體的圖片。神經網路取出貓和狗各自輪廓線所包含的範圍,各自標記其範圍內一樣的灰階值。在此狗標記紫色,貓標記褐色,加上背景的黑色,圖中總共只有三種顏色,但這已經足夠讓模型判斷出圖片中有幾種物體,以及各種物體之形狀及位置了。 上示圖片中每一像素都有三個灰階值,代表紅、綠、藍三原色。

人工神經網路之5~影像分割 Read More »

人工神經網路之4~深度學習

1-4.深度學習 前面提到的機器學習,在使用波士頓房價資料集做迴歸分析時,其特徵(變數)有13個,相對應的權重(參數)也有13個。但到了深度學習階段,變數參數達數萬或數百萬以上是很平常的。 比如在訓練影像辨識模型時,輸入的影像上每個像素灰階值,都可被當作是一個特徵值;將它每兩相鄰神經層的節點數相乘再做加總,就決定了其所有參數的數目。 當然這樣的計算是比較傳統,並不完全適用在所有的情況當中,因為影像中任一像素的灰階值,都會與相鄰像素有關。所以在實務上,卷積神經網路(CNN)是最常用的演算法,它的參數是存在於處理卷積運算的遮罩當中。 下面的圖形,是來自於手寫阿拉伯數字資料集,從這數萬張圖片的其中10張,可以一葉知秋,為何自大航海時代以來,辨識潦草的阿拉伯數字,會一直困擾著與數字為伍的行政人員。 圖1-4-1. 10張來自手寫阿拉伯數字資料集的圖片。 下面還有另外一組資料集,是用來辨識5種不同的花朵。圖片中有單一花朵的,也有好幾朵花的,甚至有的還故意加上背景,用以增加分辨難度。 在訓練模型的時候,無論是哪種情況,每張圖片都必須標記其花朵名稱,花朵名稱先編號再編碼,隨後再和圖片一起輸入模型訓練,這種方式叫做監督式學習。這等於是在訓練階段,每張圖片都附有標準答案,等到訓練完成,再讓模型去預測尚未標記的新圖片。 圖1-4-2. 另外一組資料集,用來訓練辨識5種花朵。 早期知名的ImageNet比賽,辨識的物體達1000種,圖片總數約一百萬張,參賽者使用的神經網路層數也越來越多,從早先的十幾層,到最後超過一百層,目前主流的演算法如ResNet等,基本上還是CNN的架構。 ImageNet比賽已在2017年最後一屆功成身退,電腦視覺也從image identification進化到image understanding,甚至到現今的生成式圖像了,人工智慧的進步,真是一日千里。

人工神經網路之4~深度學習 Read More »

人工神經網路之3~機器學習

1-3.機器學習 人工智慧這個園地技術交流非常頻繁,有不少現成的資料集可供模型訓練。用在機器學習這個領域,有數個知名的資料集,例如波士頓房價預測資料集,以及鳶尾花分類資料集等可供下載。 波士頓房價預測資料集,是被應用在多元線性迴歸分析上面。它的變數(特徵)有13個,這些特徵部份反映出美國波士頓市的社會結構。 波士頓有著名的NBA勁旅凱爾特人(Celtics)隊,他們老祖宗在愛爾蘭及蘇格蘭家鄉的社會階層,到了新大陸仍舊可看出一些蛛絲馬跡。 影響波士頓房價幾個重要的特徵,屋齡和房子大小當然是最基本的,但在這個資料集當中,還包括了「中低收入戶比例」和「是否靠近查爾斯河」這些因數。 下面的圖形,是一張3D散佈圖,三個軸代表三個特徵,分別是房子大小(屋子房間數)、中低收入戶比例、一氧化氮濃度(空氣指標)。這種分佈圖在資料分析上十分常用,它可以用數據點的大小表示其數量,還可以用數據點的顏色或形狀來分類或分群。 圖1-3-1. 波士頓房價資料集所繪製的3D圖。 梵谷繪製的「鳶尾花」,是大家耳熟能詳的名作,但一般人比較不瞭解的,是鳶尾花的花萼和花瓣,其長度和寬度,和常人的認知是有所差異的。 常見的花朵,它的花萼多半是綠色(金庸小說”神鵰俠侶”裡面,就有一位「公孫綠萼」),其長度較短且包覆在花瓣外圍底部。但有些鳶尾花的花萼可能會比花瓣長,甚至兩者顏色還不容易直接區分出來,所以早在1936年,Ronald Fisher爵士就將其整理為分類的資料,雖然其樣本數僅150筆,但直到目前為止,還是非常好用的分類範例。 圖1-3-2. 這朵鳶尾花,你可以分辨出來花萼和花瓣各在哪裡嗎? 鳶尾花的花萼(sepal)和花瓣(petal),使用其長度(length)和寬度(width)來分類,可以得到下圖的結果。分別是花瓣(petal)較小的紅點Iris-Setosa,中等尺寸的綠點Iris-Versicolor,和較大尺寸的黃點Iris-Virginica。 圖1-3-3. 鳶尾花的三個分類。

人工神經網路之3~機器學習 Read More »

人工神經網路之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 »

Shopping Cart