Blog5

人工神經網路之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. 這朵鳶尾花,可以看出花萼和花瓣在哪裡嗎?

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