Artificial Intelligence – How to build up AI based on Functional

簡介

這篇我們會介紹在眾多的AI應用發展中,會介紹AI的類別Keyword,每個類別將會介紹概略的應用技術、概略的實作方式以及將現再有的AI歸納在此類別中。在先前兩篇算是熱身文,讓大家慢慢的進入此領域,我們在未來將我們可達成的AI應越縮越小,最後達成實作階段。

AI Branches

在網路上有很多AI分枝圖,再說明AI 的細部Functional,我們先看到第一分支。

Machine Learning (ML): 機器學習,這是定義目標並通過培訓(獲得經驗)由機器本身學習達到該目標的步驟的一種方法。舉個例子:識別簡單的對象,例如辨識水果. 我們透過程式編輯,就像教小孩子認圖的方式,挑選1000張圖片,並標示每個物件的標籤,輸入給AI程式來學習。訓練完成後會產出一個辨識Model,之後只需輸入圖片,AI將會輸出他學習並辨識出的文字。

機器學習包含透過樣本訓練機器辨識出運作模式,而不是用特定的規則來編程。這些樣本可以在資料中找到。換句話說,機器學習是一種弱人工智慧(narrow AI),它從資料中得到複雜的函數(或樣本)來學習以創造演算法(或一組規則),並利用它來做預測。

Natural Language Processing (NLP):自然語言的處理, 廣泛定義為AI Functional對自然語言(例如語音和文本)的自動操縱。眾所周知的例子之一就是電子郵件垃圾郵件檢測,因為我們可以看到它在郵件系統中的改進。

Vision:電腦視覺,簡單來說就是電腦的眼睛, 機器視覺使用相機,模數轉換和數字信號處理來捕獲和分析視覺信息。可以將其與人類的視力進行比較,但不會像人類的眼睛會有一些限制,近視、散光等等,而且電腦視覺還可以選擇某些色階來辨識。通常通過機器學習ML來獲得最佳效果,因此可以說這兩個領域是相互聯繫的。

Robotics:機器人的應用, 機器人通常用於執行人類難以執行或難以持續執行的任務,例如深海探勘,危險測試等等。或是代替人力的應用,這樣的例子包括汽車裝配線,醫院中的清潔工,辦公室清潔人員,提供食物以及在旅館,巡邏農​​場地區甚至當警察的過程中準備食物。最近,機器學習已被用於在構建與社交互動的機器人方面取得某些良好的結果,就是我們的一篇提到的Sophia情感機器人。

Autonomous Vehicles:自駕車, AI的這一領域引起了很多關注。車輛清單包括汽車,公共汽車,卡車,火車,輪船,潛艇和自動駕駛飛行無人機等。

經過上方初步了解後,我把他的Functional簡化成上圖的分支。在許多的AI Functional都可以使用ML,機器學習來訓練AI。

ML – 機器學習,DL – 深度學習

用一張圖來用最簡單的解釋方法來說明機器學習的大方向運作模式,如上圖,透過人類餵食資料,制定特徵標籤告訴他什麼是對錯與限制(獎勵機制),反覆訓練,在未來到入一組參數,可預測正確的結果。如文字辨識運用上AI:Google TesseractOCR。

上圖是AI的ML演進過程,在未來大多都是使用深度學習來訓練AI。為什麼要提到這張圖呢?其實就是本篇第一個段落的分支圖演化而來的,AI訓練領域大部分都是像這樣慢慢的訓練越來越精密透過這些技術。

我們來區別一下機器學習與深度學習的差別。
輸入 Input:可能是圖像、語音、文字等等。
處理 Process:機器學習比深度學習多一道工,就是特徵擷取。這方面會耗時相當多的時間,就有如上方所說的電腦視覺辨識,工程師假使使用ML訓練AI,則將要把每一張要餵給AI的圖進行特徵標示。而深度學習則不用。
輸出 Output:輸出的結果的效果在機器學習則會取決你特偵擷取+AI演算法有沒有寫好,而深度學習只取決AI演算法有沒有算好。

深度學習我們通常稱為DNN,在特徵擷取的部分,我們把它交給神經網路去處理,讓它在不斷地反覆運算中逐漸萃取出所需要的特徵,不斷改進模型本身權重,最後產生預測模型。這個步驟需要大量的反覆運算,也就是為什麼深度學習領域到這幾年隨著 GPU 技術的突破才又突飛猛進的進步!

ML 機器學習的程度

我們繼續深入講解,在機器學習中又可以分成上圖的幾個階層,越下面的階層代表越精確,NN越多,所花費的訓練時間越段。

1. 監督學習(Supervised learning)
(有答案的學習叫做監督是學習,因為有答案參數輸入訓練)目前最穩定的訓練方法
監督的學習算法基於一組樣本進行預測。例如,它可以使用歷史售價來估計未來售價。在監督學習裡,輸入變量包含帶標籤的訓練數據和你感興趣的某個輸出變量。通過某種算法分析訓練數據,就是一個學習將輸入映射到輸出的函數的過程。這個推斷函數對訓練數據進行泛化,即可預測未知情況下的結果,將新的未知輸入映射到輸出。

2. 半監督學習(Semi-supervised learning)
有監督學習的挑戰是標註數據的過程可能既昂貴又耗時。如果標籤有限,我們可以使用未標記的樣本來增強有監督學習。因為在這種情況下機器沒有被完全監督,所以我們說是它是半監督的。在半監督學習裡,我們同時使用未標記數據與少量標籤數據,從而提高學習準確性。

3. 無監督學習(Unsupervised learning)
執行無監督學習時,機器得到的是完全未標記的數據。這一算法常用於發現基礎數據的內在模式,如聚類結構,低維流形或稀疏樹/圖。

4. 增強學習(Reinforcement learning)
增強學習基於環境的反饋,達到分析和優化代理 (agent) 行為的目的。機器嘗試不同的場景來發現哪些行為產生最大的回報,而不是被動接受行動指令。試錯和延遲獎勵將強化學習與其他技術區分開來。

5. 模仿學習(Imitation Learning)
模仿學習和增強學習不一樣的很重要的一點是增強學習有Reward,而模仿學習沒有。那麼一種想法就是如果我們可以利用專家數據構造出這個Reward,那麼顯然我們也就可以使用這個Reward來採用DRL算法進行訓練。

6. 課程學習(Curriculum Learning)
Curriculum Learning有點類似人類學習機制,先學簡單的技能,再學困難的。學習有意義的訓練資料順序可以使各種任務受益,即首先選擇更容易學習的例子,然後逐漸增加難度。

小結

其實這篇講到很多很多AI相關的專業詞,但是不用擔心,我們可以把這項波洋蔥方式,其實每個專業名詞都是師出同宗,都有關聯的。最主要是要提到Machine Learning機器學習的不同方式,因為我們之後會帶到Unity3D去實作ML,而在之中有提到增強學習、啟發式學習(模仿或課程學習)、監督學習,所以在這篇我們先大略提到一下。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *