AI人工智慧

 AI人工智慧

大綱

我用Python寫的一小段AI小助理AI-Asistant

1.什麼是人工智慧、機器學習



人工智慧( Artificial Intelligence = AI)簡單的說,就是藉由電腦來執行人類智慧的過程。機器在經過程式設計之後,能表現出與人類類似的智慧。

人工智慧的三要素:「算力」「演算法」和「數據」。

機器學習( Machine Learning = ML)是透過演算法將收集到的資料進行分類或預測模型訓練,在未來中,當得到新的資料時,可以透過訓練出的模型進行預測,如果這些效能評估可以透過利用過往資料來提升的話,就叫機器學習。

ML應用非常的廣泛,例如: 機器狗、天氣預測、人臉辨識、指紋辨識、車牌辨識、醫學診斷輔助、測謊、語音處理…等。

2.機器學習( Machine Learning = ML)

機器學習的種類

  • 監督式學習(supervised learning)
  • 非監督式學習(unsupervised learning)
  • 增強式學習(reinforcement learning)

2.1監督式學習與案例:

關鍵在「標籤」與「分類」。

在訓練的過程中告訴機器答案、也就是「有標籤」的資料,比如給機器各看了 1000 張蘋果和橘子的照片後、詢問機器新的一張照片中是蘋果還是橘子,這就是「分類」

範例1.小時候辨識貓咪。

一般父母帶小孩看貓、或貓咪的圖片,然後詳細的描述特徵:「尖耳朵、四肢腳、有鬍子、體型、毛色、一條長尾巴…」,從短毛貓、摺耳貓、短毛貓、暹羅貓... 等貓咪的外型特徵告訴孩子,並且將老虎、花豹等類似貓但不是貓的照片教孩子分辨它們特徵上的不同並排除出來。以後,在生活上只要看到就告訴孩子這是貓,當小孩把老虎看成貓時進行糾正,久而久之,我們就自然地「學」會辨識一隻貓了。往後,雖然看到了不是原本看過的貓咪,我們仍然知道這是一隻貓。

範例2.判別有毒的菇種、在野外成功存活下來呢?

到深山裡遊玩卻不小心落難、肚子飢餓難耐時總會忍不住想要採路邊的野菇吃。然而有一些菇類看似樸素卻可能有毒、有些菇類色彩豔麗卻能食用;如何讓電腦幫助我們判別有毒的菇種、在野外成功存活下來呢?

為了訓練機器,我們先蒐集了有毒菌菇和無毒菌菇的資料樣本、作為訓練資料(Training Data)。從訓練資料中擷取出資料的特徵(Features)幫助我們判讀出目標。

比如菌傘形狀、顏色,菌炳形狀、顏色,菌環數量,分布地帶,氣味… 再告訴電腦每一個菌菇所對應到的答案──把有毒菌菇的資料標籤(Label)為 1、無毒的菌菇標籤為 0,由此讓電腦知道哪些菇有毒、哪些菇沒毒。

隨著訓練的資料量夠大時,當一筆新資料輸入電腦中,比如特徵具備白色鐘形菌傘、分布在腐木上、杏仁味的香菇,電腦即會判斷這朵香菇有沒有毒、有毒或沒毒的機率有多高了。

範例3.依天氣特徵、預測是否會下雨。


我們也可從過去的經驗與天氣資料中、找出有下雨的天氣特徵,並在進來一個新的天氣情境資料時能計算下雨的機率,以進行氣象預測。人們感知與觀察天氣的方法大致有四種:
  • 一、根據農村諺語作預報;
  • 二、理論預報;
  • 三、測量濕度作預報;
  • 四、觀察天象、氣象、土石和動物情狀作預報。

2.2非監督式學習與案例

關鍵是"距離" 與"集群"

訓練資料沒有標準答案、不需要事先以人力輸入標籤,故機器在學習時並不知道其分類結果是否正確。訓練時僅須對機器提供輸入範例,它會自動從這些範例中找出潛在的規則。


集群演算法 (Clustering): 

給機器一個 1000 名的顧客資料表(含性別、生日、職業、教育…),機器會自動爬梳出隱含的資料規律將這 1000 人分群。其主要目的在於找出比較相似的資料聚集在一起,形成集群(Cluster);而相似性的依據是採用「距離」,相對距離愈近、相似程度越高,被歸類至同一群組。

為了要定義資料之間的距離,一般採用歐式距離(Euclidean Distance)計算空間中兩點的距離。

非監督式學習在資料探勘初期時,可被用來探索龐大的客戶群中存在哪些自然群體。

關聯規則探索(Association Rule Discovery)

除了集群外,常見的非監督式學習尚包括關聯規則探索(Association Rule Discovery)、或稱共生分群(co-occurrence grouping),找出資料發生的關聯性。

例如: 購物紀錄時,我們可能會發現「買月餅的人也會買烤肉架」

2.3增強式學習與案例

透過觀察環境而行動,並會隨時根據新進來的資料逐步修正、以獲得最大利益。若環境的變化是離目標更接近、我們就會給予一個正向反饋(Positive Reward)。

例如 : 當機器投籃時越來越接近籃框;若離目標更遠、則給予負向反饋(Negative Reward)。例如賽車時機器越開越偏離跑道。

我們透過自駕車的"能源控制系統","速度控制系統" 模型,大略可以了解所謂的"依照環境因素反饋" 的含意。


增強式學習的一個經典理論「馬可夫決策過程」(Markov Decision Process)有一個中心思想,叫「明天的世界只和今天有關、和昨天無關了。」(The future is independent of the past given the present.)

在馬可夫決策過程中,機器會進行一系列的動作;而每做一個動作、環境都會跟著發生變化。

雖然我們並沒有給予機器標籤資料,告訴它所採取的哪一步是正確、哪一步是錯誤的,但根據反饋的好壞,機器會自行逐步修正、最終得到正確的結果。

原則上無需考慮以前的狀態,當前狀態便已傳達出、所有能讓機器算出下一步最佳行動的資訊;簡單來說就是每一個事件只受到前一個事件的影響。打敗世界棋王的 Google AlphaGo 便是馬可夫假設一個成功的應用。

增強學習的機器學習方法當然還不僅止於此,多拉桿吃角子老虎機(Multi-armed Bandit)亦是增強學習的知名理論。Bandit 是一個簡化過的增強學習方法,最重要的目標只有探索(Explore)和採集(Exploit)的平衡。這是什麼意思呢?

假設一個國家中有十家餐廳,每家餐廳提供的餐點份量相當不均(有些可能會偷工減料)。某天該國突然湧入很多難民、因為餐券補助有限的關係,總共只能吃一百次餐廳,希望最後能餵飽最多的人。

顯然如果要吃到最多的東西,我們必須盡快找到「提供最大份量」的餐廳然後一直吃它就好了(其他黑心餐廳就不吃了)。如果把每家都吃一遍才確定份量最大的餐廳,會浪費掉太多餐券;然而若只吃了兩三家、就直接選比較高的一家一直吃,我們可能會漏掉真正提供最大份量的那一家餐廳。

解決 Bandit 問題的目標在於──有限的精力中,一部分精力會分配去探索未知的可能(explore)、一部分則利用已知最好的策略不斷採集(exploit),演算法會透過不斷新增的環境數據進行調整,在兩者間尋求平衡、將利益最大化。

應用範例:

當一個網站能展示的資訊量有限、卻又不知道使用者喜歡的東西是什麼、該優先顯示哪些內容,才能有最高的點擊率時,我們可以透過增強學習隨時進行優化、最快達到客製化。

無論是 Google 廣告、Facebook 將你可能會最感興趣的好友 PO 文排序在上方、Amazon 呈現你最有興趣的商品,或是網站上線後的 A/B Test,都可以看到增強學習的蹤影。

詳細說明請參閱►機器學習-機器人之研究

3.機器人之研究 - Boston Dynamic SPOT

SPOT機器狗的智慧原理

它是透過三個作業系統來完成自主管理的智慧思考:

  • Odometry(視覺里程計  ) System: 估計位置隨時間的變化。
  • GraphNav+Fiducial: 增強式機器學習,依環境因素回饋系統。
  • Mission Nodes: 任務節點最短最佳決策

Odometry System

  • 距離與速度,估計位置隨時間的變化

GraphNav+Fiducial: 

  • 環境因素回饋系統 : 過程、環境變化、避障


任務Mission與動作Actions





詳細說明請參閱►Robot機器人之研究

4.機器學習之演算法

了解圖像、語音識別、醫學診斷、預測、分類、學習關聯、統計套利、提取、回歸....等等相關的演算法。

5.機器學習之算力

算力►了解 GPU、TPU硬體、韌體平行運算能力的運用。詳細說明請參閱►淺談AI算力優化技術(外連結)

6.機器學習之數據

數據 ► 是機器學習的原料,也就是資料科學、資料探勘、網路爬蟲的技術


參考資料

特色、摘要,Feature、Summary:

  • 使用Linux,Ubuntu,做機器學習、機器人控制、實作大數據、演算法、機器學習、機器人控制,AIoT(人工智慧物聯網)

關鍵字、標籤,Keyword、Tag:

  • 人工智慧( Artificial Intelligence = AI),機器學習( Machine Learning = ML),

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

iptables的觀念與使用

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

網路相關之指令