Presentation is loading. Please wait.

Presentation is loading. Please wait.

106.5.22 古佳怡 AI 人工智慧.

Similar presentations


Presentation on theme: "106.5.22 古佳怡 AI 人工智慧."— Presentation transcript:

1 古佳怡 AI 人工智慧

2 大綱 2 概論 流程 KNN SVM MINMAX 類神經網路 玩些AI小玩意 跑跑看兩種AI小實驗 使用兩種不同作法 來實作下棋AI

3 大綱 3 概論 流程 KNN SVM MINMAX 類神經網路

4 AI是什麼? 4 訂立好規則或數學模型後,讓電腦能夠根據所輸入的資料(模仿人類)輸出判斷後的結果 AI就像個黑盒子

5 早期AI 5 困境: 總有特例,列出的 條件很難盡善盡美 …貓? 而且和人的思考 好像有所差距…? …不是貓?

6 想想人的思考方式 6 想想遇到新事物的時候,人是怎麼學習的? 是水豚 不是水豚 是水豚

7 現今AI 貓 貓 不是貓 藉由已經標好答案的資料,讓機器自行學習規則(machine learning)
7 藉由已經標好答案的資料,讓機器自行學習規則(machine learning) 不是貓 當有新資料進來的時候,猜測可能的答案

8 以時間軸來說 8 AlphaGo

9 學習方法(黑盒子)一樣,差別在於輸入和輸出什麼
只要訂好要怎麼從資料學習,那麼 9 圖形辨識 語音辨識 一種毛茸茸的生物 自然語言 資料探勘 學習方法(黑盒子)一樣,差別在於輸入和輸出什麼 推薦可能感興趣的電影

10 當然也可以是 10 第一手5之五 第二手天元 也就是一個遊戲AI

11 黑盒子裡到底長什麼樣子? 根據不同的機器學習方法,又可以分為 Machine Learning 近十年主流 最簡單、直覺的ML之一
11 根據不同的機器學習方法,又可以分為 Machine Learning 近十年主流 吳恩達(英語:Andrew Ng,1976年-)是史丹福大學計算機科學系的副教授,同時也是人工智慧實驗室的主任。 2011年,吳恩達在Google創建了Google Brain項目,以開發超大規模的人工神經網絡。2014年5月16日,吳恩達加入百度,負責「百度大腦」計劃,並擔任百度公司首席科學家。2017年3月20日,吳恩達宣布從百度辭職。 最簡單、直覺的ML之一 KNN Google主推(AlphaGo)

12 休息一下,玩些小玩意 自動畫圖 畫圖 遊戲 圖片翻譯 鋼琴合奏
12 自動畫圖 畫圖 遊戲 圖片翻譯 鋼琴合奏 Google的AI實驗室

13 休息一下,玩些小玩意 13 圖片分析 訓練自己的分類器 內容 臉部 情緒

14 休息一下,玩些小玩意 14 文字分析 錯字修正 斷句修正

15 休息一下,玩些小玩意 在過程中,你有沒有發現什麼? 語音合成 聲紋辨識 語音辨識
15 語音合成 聲紋辨識 語音辨識 在過程中,你有沒有發現什麼? 請嘗試回答以下問題,並撰寫為不超過一面A4的報告(.pdf): (1) 請列舉一個成功例子,並分析原因 (2) 請列舉一個失敗例子,並分析原因 (3) 有沒有哪些技術已經應用到日常?

16 大綱 16 概論 流程 KNN SVM MINMAX 類神經網路

17 流程更詳細的說 像個黑盒子 訓練資料 抽取特徵 測試資料 抽取特徵 Model 猜測答案 training data (已經知道答案的)
17 訓練資料 training data (已經知道答案的) 抽取特徵 抽取方式必須相同 測試資料 抽取特徵 Model 猜測答案 testing data (還不知道答案的) 像個黑盒子

18 首先你需要有資料 dataset 18 訓練資料 抽取特徵 測試資料 抽取特徵 Model 猜測答案

19 資料從哪來? 網 路資源 dataset https://archive.ics.uci.edu/ml/datasets.html
19 路資源 UCI--加州大學爾灣分校 Kaggle--知名資料分析競賽平台,現已被google買下

20 資料從哪來? dataset 20 爬蟲 撰寫程式,讓程式主動收集特定領域、網站的資料 使用者不自覺提供

21 誰來標示資料的答案? 人工標示 使用者不自覺標示 ground truth 自己、善良小精靈、付費他人
21 人工標示 自己、善良小精靈、付費他人 使用者不自覺標示

22 補充、政府資料開放平台 22

23 補充、資料分析競賽 23

24 再來,也許你會想要抽取特徵 feature 24 訓練資料 抽取特徵 測試資料 抽取特徵 Model 猜測答案

25 什麼是抽取特徵? feature 25 對於一筆資料,不使用它原始的全部內容, 而只使用它經過處理、具有代表性的某些特徵 作為模型的輸入

26 以文字來說 這 間 小 吃 店 給 我 一 種 歷 史 悠 久 的 感 覺 。 很 居 家 用 餐 環 境 , 沒 有 任 何 壓 力 員
26 解法: 用(預先)建好的字詞字典來斷詞, 字典本身也可能是學習後的結果 字詞 小吃店 …… 對於文章,人習慣以最小的意義單位--「詞」來閱讀 停用詞 …… 有些字詞是常出現又較不具意義的(e.g.,的,標點符號) 解法: 用預先建好的停用詞字典來移除它們

27 最後,文字資料可能長這個樣子 間 小 吃 店 給 種 歷 史 悠 久 感 覺 居 家 用 餐 環 境 沒 有 任 何 壓 力 員 親 切
27 以數字來表示最後抽取出的特徵值 為了之後的計算, 因為所謂建造模型,其實背後藏著許多數學計算 Why? 0.067 …… 字詞 小吃店 1 悠久 2 壓力 …… 表示字典裡編號0的字詞在文章裡的出現頻率 有沒有發現它的儲存結構跟我們之前教的ㄧ個東西長得很像? 沒錯! 就是一維陣列

28 以圖片來說 實際上電腦看到的是一格一格的 像素,每一格會有值去代表顏色 顏色對於許多圖形辨識 不具有太大意義 解法:
利用公式,把RGB值轉成灰階值(灰階化) 辨識時,主要專注於輪廓和外形 解法: 把自己和周圍的像素比較, 當有顯著深淺差異時,就是輪廓

29 最後,圖片資料可能長這個樣子 和前面一樣,最後特徵值要用數字來表示 不對……它本來就是數字了XDD 同樣的,
29 和前面一樣,最後特徵值要用數字來表示 不對……它本來就是數字了XDD 6x6 同樣的, 有發現它的儲存結構跟我們之前教的ㄧ個東西長得有點像嗎? 沒錯! 就是二維陣列 但是習慣上,我們會把它「壓平」來看 1x36 1 1 1 1 也就是存成一維陣列 表示(0,0)那一格經處理後的像素值

30 除了文字和圖片,還有別種資料? 當然有! 像是商品資訊、打卡紀錄、瀏覽行為、病人病歷等等, 實際上還有非常、非常多待發掘的資料
真是太讓人興奮了(´・ω・`) 以電影來說 導演:荻上直子 演員:市川實日子 平均分數:7 票房:50萬台幣 片長:110分鐘 類型:溫馨/家庭 出品國:日本 語言:日文 關鍵字:貓、陪伴、療癒 導演:0 演員:1 平均分數:7 票房:50 片長:110 類型:0 出品國:0 語言:0 關鍵字:0、1、2 和前面一樣,最後特徵值要用數字來表示 解法: 同處理文字,用預先 建好的各種字典來編號 人名 荻上直子 市川實日子 …… 類型 溫馨/家庭 …… 國家 日本 …… 字詞 ……

31 最後,電影資料可能長這個樣子 導演:0 演員:1 平均分數:7 票房:50 片長:110 類型:0 出品國:0 語言:0 關鍵字:0、1、2
31 導演:0 演員:1 平均分數:7 票房:50 片長:110 類型:0 出品國:0 語言:0 關鍵字:0、1、2 一樣用一維陣列來儲存 1 7 50 110 2 表示導演這個特徵的值

32 簡單來說,抽取特徵就是 對於一筆資料,不使用它原始的全部內容, 而只使用它經過處理、具有代表性的某些特徵。 並且為了之後(可怕)的數學計算,
feature 32 對於一筆資料,不使用它原始的全部內容, 而只使用它經過處理、具有代表性的某些特徵。 並且為了之後(可怕)的數學計算, 以數字的一維陣列來儲存與輸入。 表示第一個特徵的值

33 特徵裡,可能還有特徵 間 小 吃 店 給 種 歷 史 悠 久 感 覺 居 家 用 餐 環 境 沒 有 任 何 壓 力 員 親 切
0.067 …… 1.87 15 …… 字詞出現頻率 平均字詞長度、 相異字詞數…… 導演:0 演員:1 平均分數:7 票房:50 片長:110 類型:0 …… 同類型電影的平均分數:8 同關鍵字電影的平均分數:9

34 抽特徵有沒有風險? 抽了沒有意義的特徵 抽了重覆意義的特徵 有時辨識不錯只是湊巧,整體來說會干擾結果 太過看重某些特徵值,干擾結果 導演:0
演員:1 平均分數:7 票房:50 片長:110 類型:0 …… 導演喜歡吃的食物:0 導演討厭吃的食物:1 票房(美金):1.64 票房(日幣):184.27 票房(韓元):

35 影片、什麼是好的特徵(5’40’’)

36 我可不可以不要抽特徵? 不抽特徵 = 全部都是特徵 前面風險仍在;並且太多特徵,可能會造成後續計算過慢
從茫茫特徵中,選出比較好的幾個,又是一門課題 或者使用會自行調整特徵權重的學習方法

37 那如果資料是棋譜呢? 其中一種簡單的想法, 將19x19的二維陣列壓平為一維陣列 其中0代表空,1代表黑子,-1代表白子
李世石(白) vs. AlphaGo(黑) 第四局,白子勝

38 大綱 38 概論 流程 KNN SVM MINMAX 類神經網路

39 終於到了重頭戲,建立Model 39 訓練資料 抽取特徵 測試資料 抽取特徵 Model 猜測答案

40 現在已知資料長這個樣子 貓 狗 如果有一筆未知資料進來,你要怎麼判斷它是貓還是狗? training data 1 … 1 … 1 … 1
40 1 1 1 1 1 1 1 1 如果有一筆未知資料進來,你要怎麼判斷它是貓還是狗? testing data 1

41 一個簡單想法 ? 把資料用空間座標表示,找最像的(最近的)當作答案 x2 第i個特徵值的差的平方 特徵數量 x1 41
Mean Square Error 均方差 x2 第i個特徵值的差的平方 特徵數量 ? x1

42 這樣就足夠了? 42 你覺得待測資料是貓還是狗? x2 ? x1

43 K-Nearest Neighbors(KNN)
43 找K個最近的鄰居 少數服從多數,避免異常資料(outlier)干擾 x2 K = 5 ? x1 隨著資料不同,適合的K值也不同

44 建好Model以後? 44 訓練資料 抽取特徵 ? 狗? 貓? 1 測試資料 抽取特徵 Model 猜測答案

45 KNN小實驗 Iris 鳶尾花資料集 (共150筆資料) 1936年建立 特徵X = [x1,x2,x3,x4] 答案y
資料空間視覺化 45 Iris 鳶尾花資料集 (共150筆資料) 1936年建立 特徵X = [x1,x2,x3,x4] 答案y 維吉尼亞鳶尾(virginica) 山鳶尾(setosa) 變色鳶尾(versicolor)

46 KNN小實驗 46 請觀察不同K值的準確度變化,並嘗試分析原因

47 大綱 47 概論 流程 KNN SVM MINMAX 類神經網路

48 KNN雖然簡單,但 KNN效果不一定較差,實際上它是最知名的方法之一 不過他有一個致命性的缺點……
48 KNN效果不一定較差,實際上它是最知名的方法之一 不過他有一個致命性的缺點…… 對於每筆未知資料,都需要和所有資料計算彼此距離 當資料量龐大時,不免太過耗時

49 Support Vector Machine(SVM)
49 找條線把它劃分開來,當有新資料進來的時候,就可以直接求解 x2 f(x) = 0 f(x) > 0 f(x) < 0 x1

50 Support Vector Machine(SVM)
50 f(x1, …, xn) = w1x1 + … + wnxn + b = 0, 現在問題只剩下找適合的 w1, w2,…和 b, 但是怎樣的 w1, …, wn 和 b 比較好? x2 x1 (1) 儘可能把不同類別分開(準確) (2) 離最近的資料越遠越好(彈性)

51 Support Vector Machine(SVM)
51 以上就是 SVM 背後的精神,但是 W 和 b 當然不是漫無目的的找,接著來嘗試推導 W 和 b (這部份聽不懂也沒關係,只希望大家不要被數學式子嚇跑了……) 對於 WX + b = 0,為了符合離最近的黑點、白點「都」越遠越好的特性,它一定在離它最近的黑點、白點中間 所以可以列出: 離它最近的黑點會在WX + b = d 離它最近的白點會在WX + b = -d 又因為 W 和 b 可以放大縮小,(2W, 2b)、(3W, 3b)等都會是最佳解; 為了只有唯一解,所以縮放 d 到 1

52 Support Vector Machine(SVM)
52 根據平行面距離公式,WX + b - 1 = 0 和 WX + b + 1 = 0兩平面距離會是: 為了讓這個距離越大越好,也就是求: 去根號並不影響 W 結果,所以變成求: 也就是 離最近的資料越遠越好(彈性)

53 Support Vector Machine(SVM)
53 接著,因為最近的黑點落在WX + b = 1;最近的白點落在WX + b = -1 , 所以可以列出,所有黑點都符合WX + b ≧ 1 ;所有白點都符合WX + b ≦ -1 因為點有兩種顏色;所以我們用 y = +1來代表黑點, y = -1來代表白點 (***這邊的y並不是WX+b,而只是點的「顏色」) 所以對於所有點,都符合 y(WX + b) ≧ 1 也就是 儘可能把不同類分開(準確)

54 Support Vector Machine(SVM)
54 最後…… Quadratic Programming 我們想要解的 數學上已經有解的二次規劃形式 從左至右的一些轉換 感謝台大林軒田教授的機器學習課程影片(´・ω・`)

55 Support Vector Machine(SVM)
55 如果無法簡單的用直線來劃分? 將資料藉由特定核函數(kernel)來映射到更高維度, 再用平面(超平面)來劃分 RBF kernel 隨著資料不同,適合的kernel也不同

56 SVM小實驗 Digits 手寫數字資料集 (共1797筆資料) 特徵為64個介於0到16的灰階值 X = [x1,x2,…,x64]
56 Digits 手寫數字資料集 (共1797筆資料) 1998年建立,筆跡來自43人 數字2 數字0 數字3 特徵為64個介於0到16的灰階值 X = [x1,x2,…,x64] 答案 y ∈ {0,1,…,9} 數字1

57 SVM小實驗 57 只要修改這兩行, 就可以套用各種Model 其實幾乎就是複製剛剛KNN的程式碼(´・ω・`)

58 SVM小實驗2 58 請觀察不同測試圖的結果,並嘗試分析原因

59 大綱 59 概論 流程 KNN SVM MINMAX 類神經網路

60 在開始聊AlphaGo以前 聽過Deep Blue嗎? 他是一個專門下西洋棋的AI,1997年由IBM所開發
60 聽過Deep Blue嗎? 他是一個專門下西洋棋的AI,1997年由IBM所開發 並且贏過了當時的世界棋王卡斯巴羅夫 從此, 它背後的MINMAX演算法一直被視為棋類AI主流 (直到AlphaGo出來為止)

61 稍微離題一下 61 老實說,下面的圖片讓我忍不住想到… 87%像不能再更多了 (歷史總是會不斷重演……)

62 在開始聊MINMAX以前 62 如果你是叉叉,你覺得下一步應該要下哪裡?

63 一個簡單想法 63 把彼此所有的 可能情況都列出來 有感覺下一步應該要下哪裡嗎?

64 MINMAX 輪到我方: 儘可能讓我方加分,也就把MAX傳上去 +1 輪到敵方: 儘可能不讓我方加分,也就是把MIN傳上去 +1 最好的
假設 贏+1、平手0、輸-1 輪到我方: 儘可能讓我方加分,也就把MAX傳上去 64 +1 輪到敵方: 儘可能不讓我方加分,也就是把MIN傳上去 +1 最好的 選擇 +1 +1 +1 +1 +1 +1 +1 +1

65 Alpha-Beta剪枝 我方:傳MAX上去 當分枝不可能比已知小(大)時,就不再找 敵方:傳MIN上去 -1 -1 -1 -1 +1
65 我方:傳MAX上去 當分枝不可能比已知小(大)時,就不再找 敵方:傳MIN上去 -1 -1 -1 -1 +1 不可能比已知小,找了也沒有意義 不可能比已知小,找了也沒有意義 +1

66 稍微整理一下 MINMAX Alpha-Beta剪枝 1.首先定義走到底的情況:贏+1、平手 0、輸-1 2.只要還沒有走到底,就繼續往下走
66 MINMAX 1.首先定義走到底的情況:贏+1、平手 0、輸-1 2.只要還沒有走到底,就繼續往下走 3.一但走到底,就開始把值往上傳 若是我方下,選對我方最有利的,即傳MAX上去 若是敵方下,選對我方最不利的,即傳MIN上去 4.回到目前盤面,真正決定下一步 Alpha-Beta剪枝 確定分枝不可能比已知大(小)的時候, 找了也是白找,可以剪枝,以節省時間 適用於兩人 對弈的遊戲 E.g., 棋類,撲克牌2048 等

67 但實際上DeepBlue 並沒有真的走到底! 這會有什麼問題? 根據統計,人類至多約可以估計隨後10步棋
67 並沒有真的走到底! 根據統計,人類至多約可以估計隨後10步棋 所以電腦只要估計的比那多,就可以得到不錯的結果 (Deep Blue可以估計隨後12步棋) 這會有什麼問題? 1.找到的不一定是最好的解,而是推測較佳的解 2.沒有真的走到底,所以要對中間盤面給一個分數 e.g., [自己得分 – 對方得分] 五子相連 >>> 活四 > 活三 > 單活四 ……

68 先預告期末作業 68 利用MINMAX、Alpha-Beta剪枝 和估分函數,來完成小型五子棋AI

69 補充、五子棋AI世界盃 69

70 傳統遊戲AI的優缺 優點: 缺點: 不需要準備棋譜資料(dataset),只需要訂定規則;並且因狀況單純,適合用樹狀圖求解;觀察全面
70 優點: 不需要準備棋譜資料(dataset),只需要訂定規則;並且因狀況單純,適合用樹狀圖求解;觀察全面 缺點: 不具備學習能力;樹狀圖容易分枝過多(158 = 2,562,890,625),即使剪枝,仍然過慢 What does AlphaGo’s victory mean?(42’’)


Download ppt "106.5.22 古佳怡 AI 人工智慧."

Similar presentations


Ads by Google