108課綱科技領域資訊科技程式設計應用專題-人工智慧素養
網站作者:新北市立江翠國中呂天齡
版本:第一版.第二版第三版
聯絡方式: luti@ntpc.edu.tw或 luti0845@gmail.com
最新更新時間:2021年8月24日
本網站授權方式:
為何要學習人工智慧AI?
資料科學與人工智慧
物聯網與人工智慧
人工智慧未來發展
人工智慧素養課程的難處
牛刀小試:
閱讀以下電子書.看完第一頁你有何感想?
解說:
用一般程式設計的方法不就能解決問題了,那為什麼還需要機器學習?在當你沒有辦法給工程師們一個 "規則" 讓他寫到程式裡面,但是手頭上卻有相關大量資料、紀錄的時候,工程師們只好自己想辦法從這堆資料裡面找出那個規則。
圖片引用:https://medium.com/jameslearningnote/medium-com-jameslearningnote/home
傳統程式設計與AI之不同之處
(1)工程師以前都是用邏輯、數學去解決問題,但Machine learning把問題自然化,觀察問題、實驗、統計、分析結果有點像是debug,即可把問題解決
換句話說,以前要寫演算法、debug,但Machine learning有既有的演算法(tool),我們只要debug就好。
(2)Machine learning的5%工作量(下圖中最中間最小的區塊),剩下的95%幾乎都在處理資料、監控資料、還有資源管理跟設計分析工具。
*專家系統 Expert System(以前的AI)
專家系統是早期人工智慧的一個重要分支,它可以看作是一類具有專門知識和經驗的計算機智能程序系統,一般採用人工智慧中的知識表示和知識推理技術來模擬通常由領域專家才能解決的複雜問題。
一般來說,專家系統 = 知識庫 + 推理機,因此專家系統也被稱為基於知識的系統。
一個專家系統必須具備三要素
資料來源:https://mropengate.blogspot.com/2015/05/ai-expert-system.html
活動設計1:《專家系統》
解說:
經由網站系統的規則推導得到答案,這就是傳統人工智慧的運作,稱之為專家系統
108課綱國中資訊科技學習內容
圖片引用:https://omnixri.blogspot.com/
108課綱國中程式設計應用專題-人工智慧素養課程設計
一.AI在日常生活的應用(AI in My Daily Life)
“人工智慧(AI, Artificial Intelligence)”一詞對很多人來說都覺得它是高科技,但其實它在日常生活已經被我們使用了很久,我接每天觸到有多少東西是跟人工智慧是有關的呢?
思考問題:
一提到人工智慧AI.你會想到什麼?(舉例說明AI在日常生活的應用)
二.人類智慧與人工智慧
什麼是人工
人造的意思,並非是自然形成。例如我們每天使用的手機,我們都稱為人工的機器。
什麼是智慧
人類具備的感知、學習、推理邏輯、創造思考及解決問題的能力.所以人類智慧 (Human Intelligence) 就是指我們人類可以有下面這些能力:
什麼是人工智慧
人工智慧 (Artificial Intelligence) 就是希望人工的機器能表現的像人類智慧一樣,可以有能力處理許多事情
圖片引用:師大林育慈教授
活動設計1:《威利在哪裡》
活動設計2:《猴子吃香蕉》
Q:「我們把香蕉給猴子,因為餓了」,請問誰餓了呢?
A. 香蕉
B. 猴子
Ans:猴子
討論:如果把上述問題請機器(電腦)回答,您認為它會回答的正確嗎?為什麼呢?
分析:
(1)這個問題對人類來說是很簡單,但對電腦機器而言,那就不太容易了
(2)因為電腦能夠正確回答此問題,不但要處理句子,還必須讓機器能理解句子
活動設計3:《分辨人工智慧》
思考問題:
人類智慧與人工智慧有何不同?請寫出你的看法
參考資料:
(1)生理.心理.智力.工作效率......
(2)不同層面比較表
三.發展簡史
1.機器是否會思考?
(1)圖靈
(2)圖靈測試(Turing test)
說明:
(5)發展沿革
資料引用:https://omnixri.blogspot.com/p/ntust-edge-ai-ch1-1.html
四.AI應用(研究)範疇
(一)電腦視覺(Computer Vision)
A.理解電腦視覺
B.電腦視覺的應用-人臉辨識(需要鏡頭.載入模組時時間有一點久)
(二)自然語言處理(Natural Language Processing,NLP)
A.聊天機器人
B.文章生成(詩人小冰)
(三)機器(深度)學習
A.影像去背
B.線稿及上色
C.智慧繪圖
D.手機鏡頭找物品遊戲(手機平板)
E.創造自己的卡通人物
(四)語音辨識
(1)雅婷逐字稿(要登入Google帳密)
(2)聽音訊找Youtube影片
資料來源:https://ai.foxconn.com/textbook/interactive/audio/index
(五)人機互動遊戲
A.井字遊戲
B.檢棍子遊戲
人工智慧概念小結:
AI從最廣泛的意義上來說:是任何可以自行學習、理解和行動的機器 無所不在的AI:感知、學習、互動、決策、影響 |
甚麼是機器學習?
解說:
AI就是學會觀察.問個好問題 |
AI 就是「把你的問題, 化成函數的型式」 |
AI就是「打造一個函數學習機」把那個函數學起來。 |
引自:政大應數系蔡炎龍教授
函數(Function)
圖片動畫來源:均一
“ Function ”,可以直接翻譯作「功能」、或者在數學上稱作「函數」,一個可以達成期望結果的行為或流程。
範例
解說:
Labels(標籤)
我們要預測的東西y,可能是錢、可能是true或false、或其他想預測的項目
Features(特徵值)
供給預測所需的欄位,通常用x表達,它是個向量形式,代表x1, x2, x3, ..., xn,每個都是一個feature,你可以只餵某個feature給Machine learning去預測y,也可以一次給很多個features去預測y。
Model(模型)
Train出feature與label之間的關係,並進一步去推測unlabeled examples的預測值y'。
機器學習學習地圖及應用
機器學習的步驟
機器學習小結:
AI就是讓機器學習如何將輸入的資料 X 透過一系列的運算,轉換成指定的輸出 y。並提供一個衡量成功的方式,讓機器知道怎麼修正學習方向。 |
實作1-人工分類遊戲
思考問題:
上述遊戲請問你是依據甚麼來分類呢?
實作2-AI for Oceans(桌機及筆電.手機.平板同學)
詳細說明
https://medium.com/ai-for-k12/ai4k12-ai-for-oceans-2257f16dfa86
活動目的說明
了解機器學習的流程,動手訓練機器學習模型,預測機器學習結果。
專有名詞
標籤(Label):主要目的是讓機器學習資料的正確答案,是監督式學習的核心步驟。
特徵(Feature):指的是用於建立機器學習模型的屬性,是影響機器學習預測與推論效能的關鍵。
訓練資料(Train Data).測試資料(Test Data)及偏差(Bias):攸關到你的model訓練過程跟預測結果。
Automation Bias
只喜歡自動化系統的結果,而忽略了人為判斷的資料。
工程師用工程師思維去設計一個model,到最後發現判斷結果precision, recall比人為判斷還差
In-group bias
只喜歡自己所在的群體、或跟自己有相同特性的群體
某學校畢業的只喜歡某學校畢業的人,覺得他們比較適合這個工作
Out-group homogeneity bias
對跟自己沒關的團體有些刻板印象
資工背景的覺得其他非資工畢業的不夠專業
實作3-Google機器學習(桌機及筆電)
Teachable Machine
資料來源:桃園建國國中詹智傑老師
1.(標準)深度神經網路DNN(Deep Neural Network)
非線性轉換
實務上,我們可以把任何數學函數視為activation function(激發函數),會用一個σ去代表我們的activation function
常見的Activation Function
sigmoid function
rectified linear unit(ReLU)
正向傳播( forward-propagating):藉由『張量』(Tensor)計算誤差及損失函數。
反向傳播(Backpropagation):透過『偏微分』計算梯度,同時,利用『梯度下降法』尋找最佳解。
範例:手寫數字識別
輸入:一個16*16=256維的坐標,每個像素一個維度,有顏色用(墨水)1表示,沒有顏色(無墨水)用0表示輸出.從輸出結果來看,每一個大規模的陳述一個數字,是數字2的陳述為0.7的陳述最大。說明這張圖片是2的目標就是最大的.在這個問題中,唯一需要的就是一個,輸入是 256 維的向量,輸出是 10 維的向量,我們需要函數的函數就是神經網路函數
圖片引用:https://datawhalechina.github.io/leeml-notes/#/chapter13/chapter13
2.卷積神經網路CNN(Convolutional Neural Network)
3.遞迴神經網路RNN(Recurrent Neural Network)
相關資料:https://junyanz.github.io/CycleGAN/
5.強化式學習RL(Reinforcement learning)
實作1-TensorFlow Playground(遊樂場)(筆電桌機手機平板)
教學影片
教學說明1
實作2- 使用 pix2pix-tensorflow 進行交互式影像識別
實作4:CNN應用
實作5:RNN應用
實作6:GAN應用
Scratch_AI擴充積木
https://codelab.cognimates.me/
https://cognimates.me/get-started/
Scratch擴充積木與Google Teachineable machine整合
TM2Scratch
範例-剪刀石頭布遊戲
範例-偵測是否帶口罩
範例-蘋果分類
實作步驟
1.收集資料-資料集(Dataset)
2.訓練模型Teachable Machine
https://teachablemachine.withgoogle.com/
水果分類機器學習的model
https://teachablemachine.withgoogle.com/models/lNW3swNES/
PictoBlox(需註冊)
https://thestempedia.com/product/pictoblox(離線版)
AIBLOX
大陸
https://ide.mblock.cc/#/
https://www.kittenbot.cn/
http://mindplus.cc/download.html
機器學習(ML) for Kids
書
網站
機器學習專案
https://machinelearningforkids.co.uk/#!/worksheets
教學影片
井字遊戲
教學影片1-專案建立
教學影片2-Scratch擴充AI積木
教學影片3-井字遊戲機器學習-決策樹(高中一年級資訊科技.大學資料結構)
資料來源:分享人:台南和順國中林信廷老師
決策樹在資訊科學的意義-分類器
資料引用:師大資訊教育研究所林育慈教授簡報
Blockly外掛積木
1.PAIA(台南成大蘇教授團隊)
線上版(功能尚未發展完成)
離線版:Blockly App積木下載
2.Web:bit
AI硬體(鏡頭)及商業應用
VIA Pixetto
慶奇WebAI
大陸HuskyLens PRO
NVIDIA Jetson Nano
加速運算晶片(邊緣運算)
如何選擇程式語言?
你想要做什麼?由應用面出發
。
由Scratch(圖形化)邁向Python(文字形)程式語言
資料來源:https://sites.google.com/view/spjh-tedlee/110%E5%B0%88%E9%A1%8C
出版社及作者教學資源
https://github.com/google/blockly
資料引用:弘道國中潘建宏老師
(2)BlockPy
課程及說明
https://zhuanlan.zhihu.com/p/81444266
https://vt.instructure.com/courses/27918/pages/book-1-dot-2-introduction-themes
https://vt.instructure.com/courses/19969/pages/book-3-dot-6-python-in-blockpy
https://vt.instructure.com/courses/27918/pages/book-3-dot-4-algorithms-list-iteration
https://corgis-edu.github.io//corgis/blockpy/
https://canvas.instructure.com/courses/1134562
https://www.youtube.com/watch?v=1bktwqA6YgQ
範例下載
大數據應用
(2)EduBlock
(3)體驗式(圖形與文字並列)
(4)圖像邁向文字型程式設計中介工具Py4T(南門張文宏老師開發)
https://beardad1975.github.io/py4t/
Python學習方法及資源
資科老師活在學習之中.
網路上的學習資源很多,市面上的也有各種學習書籍,再說,坊間也有很多種課程可以去上。但到底哪一個才是適合自己的學習模式,我們自己必須非常清楚。我就是很習慣自己學自己喜歡的東西,像是技術、語言、跟烘焙。
免費
https://plusdscp.csie.ntnu.edu.tw/index.php/demonstration/material/
Python Tutorials for Beginners - Learn Python Online
學習 Python 的最佳方式——初學者 Python 編程教程
https://www.taiwancodeschool.com/
付費
https://www.udemy.com/course/python-learn/
樂學科技(11堂20小時.NT8000 實體)
http://10.231.114.1/python3/python.html
Python程式設計
(1)遊戲式
A.賽車
B.Codecombat遊戲
Kithgard 地牢
課程解答https://drive.google.com/…/0B7SgERgMHtnvVlRiSDFQX0VEW…/view…
森林保衛戰
課程解答 https://drive.google.com/…/0B7SgERgMHtnva0diWEpUcXkxZ…/view…
(4)純文字型程式語言
資料引用:政大應用數學系蔡炎龍老師
A.教材
好的教材,至少是就初學入門而言,需要具備的一些特點:
1.儘量簡短
2.儘量直白
3.循序漸進
4.抓住要點
相反,過多的陳述、太多的術語、直接從基礎就跳到難點、過多的細節等都會讓初學者感到迷茫和疲憊。計算機領域的知識的更新速度很快,如果能從一門語言入手,掌握了最核心的技能:問題解決能力,那就可以觸類旁通,舉一反三。所謂問題解決,包括:發現問題、創造性地思考解決方案以及清晰準確地表達解決方案的能力。
實際上,程式設計是工具,掌握工具本身當然也是一種有用的技能,而同時,利用程式設計去訓練運算思維能力,問題解決能力,才是學習程式設計的核心所在。
B.程式開發環境(IDE,Integrated Development Environment集合開發環境)
1.本機端IDE
2.線上IDE
範例練習
# YourName.py |
3.線上程式整合開發平台(Colab)
(1)先登入Google(新北市)
(2)新增筆記本.修改檔名
(3)設定colab環境
Colab教學資源
Google Colab 免費 GPU 訓練 AI 模型教學 - Soul & Shell Blog
https://blog.toright.com/posts/6725/google-colab-free-gpu-ai-train.html
Google Colab教學!新手Python開發環境推薦【新手Python練習】 - YC科技生活
https://yc-note.com/python/google-colab-python/
如何無痛使用Google Colab以及Google Drive?
https://artificialintelligencepro.com.tw/google-colab/
4.體驗Colab撰寫筆記本(ENTER或快速點兩下換行)及執行(SHIFT+ENTER)
(1)Python基礎:
(2)Python套件:
(3)Python應用-機器學習
範例:水果分類機
假設要讓機器分辨橘子或是蘋果該怎麼區分?
重量 |
表面 |
標籤 |
150 g |
皺 |
橘子 |
170g |
皺 |
橘子 |
130g |
平滑 |
蘋果 |
140g |
平滑 |
蘋果 |
利用重量跟表面來當我們訓練的資料,而重量跟表面的資料就是我們所謂的特徵, 而標籤就是定義這些特徵的結果是哪一種水果,也就是我們透過機器學習想讓電腦告訴我們的答案。
轉換符號(抽象化)
接下來將上面的字改成電腦看得懂的數字:0或1
重量 |
表面 |
標籤 |
150 g |
1 |
0 |
170g |
1 |
0 |
130g |
0 |
1 |
140g |
0 |
1 |
我們將皺用1表示、平滑用0表示。橘子用0、蘋果用1,用這種資料格式餵給電腦可以讓電腦容易理解。
Sklearn
有了資料之後,我們就可以用Sklearn來做機器學習了,我們會用到簡單的二元樹分類,所以先import
from sklearn import tree |
特徵定義: 透過上面的表格我們可以這樣寫:
features=[[150,1],[170,1],[130,0],[140,0]] |
標籤定義: 透過上面的表格我們可以這樣寫:
abels=[0,0,1,1] |
DecisionTreeClassifier: 建立一個DecisionTreeClassifier二元樹分類:
clf = tree.DecisionTreeClassifier() |
上面這邊我們參數使用預設的,當然,你可以參考:sklearn.tree.DecisionTreeClassifier自行修改。
放入資料到分類模型內:
clf = clf.fit(features,labels) |
預測:
假設我們重量120g表面為平滑是什麼水果?
wantPredict = clf.predict([[120,0]]) |
參考資料
https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
https://ithelp.ithome.com.tw/m/articles/10197029
(4)Python應用-深度學習
Keras 教學 - Keras MNIST 手寫辨識 x 深度學習的 HelloWorld - Soul & Shell Blog
A.政大中學資訊教師增能學分班課程-110.08.02-08.03人工智慧深度學習
說明:
TensorFlow 是一個由 Google 開發的機器學習開源函式庫
Keras 是一個用 Python 編寫給神經網路用的高階 API,基本上它也是建構在 TensorFlow 之上
教學影片
https://www.facebook.com/groups/yenlung.live/
深度學習範例
B.中學教師人工智慧教學推廣計畫-桃園建國國中詹智傑老師2020.08
辨識手寫數字
辨識服飾圖片
找出方程式的解
思考問題
1.電腦真的認識0-9的手寫數字嗎?旋轉圖片後,我們仍然認得數字。
2.電腦真的認識10種服飾嗎?旋轉圖片後,我們仍然認得服飾。
3.電腦真的找到方程式了嗎?若Y=X^2,以目前類神經網路,有辦法正確預測y值嗎?
4.建立與訓練類神經網路,有那些主要流程?
如何提高類神經網路的辨識率?可以從那些方向著手?
更多實作
變臉合成
教學影片1
教學影片2
人工智慧倫理道德是現在每個人都在談論的話題。自動駕駛汽車、人臉識別和關鍵評估系統都是前沿解決方案,引發了很多倫理道德問題。
可信賴 AI 的道德準則
2019 年 4 月 8 日,人工智慧高級別專家組發布了《可信人工智慧倫理指南》。在此之前,指南的初稿於 2018 年 12 月發布,通過公開諮詢收到了 500 多條評論。
根據指南,可信賴的人工智慧應該是:
(1)合法(lawful):尊重所有適用的法律法規
(2)道德( ethical):尊重道德原則和價值觀
(3)技術穩健性(robust):既從技術角度又考慮到其社會環境
為什麼道德在人工智慧中很重要?
人工智慧的倫理道德問題是什麼?
今天的機器會犯錯,而且很可能在未來還會繼續犯錯。但這些錯誤的責任變得模糊。例如,不清楚誰應對自動駕駛汽車事故負責:汽車製造商、車主還是算法本身?
在人工智慧倫理道德中,責任從三個維度來理解:
責任可以是法律上的,也可以是道德上的。法律責任描述了必鬚髮生法律懲罰的事件和情況。當執法機構證明其有罪時,行為者應對採取的行動負責。
道德責任和法律責任並不總是一回事。在哲學中,道德責任是決定哪些行為值得讚揚的能力。這種內在責任就是內在地位:雖然社會中存在的規範可能會影響它,但每個人都自己決定他們認為哪些價值觀具有道德約束力。
人工智慧倫理道德的基本原則
機器人學三定律
科幻作家艾薩克·阿西莫夫(Isaac Asimov)的原因。早在 1940 年代,他就提出了機器人學三定律,在他的機器人系列中指導機器的道德行為:
態度及價值觀教學
思考問題1:
請思考一下人工智慧還有哪一些隱憂的實際例子.並分享如何預防
實際例子:
預防方法:
思考問題2:AI的倫理與道德
思考問題3:隱私權
思考問題4:媒體素養
思考問題5:偏見(Bias)
思考問題6:機器人三定律
小結:
問題:
人工智慧在未來一定越來越容易就可以使用。如果你有一個發明團隊,團隊裡有寫程式的高手幫你解決所有程式上的問題,你也可以選擇直接用課程一開始時,體驗過的那些提供AI服務的網站的應用,那你會想要利用人工智慧來做什麼,或是改善生活中的什麼問題呢? |
教育部AI教材-和AI 做朋友
https://market.cloud.edu.tw/list/ai.jsp
國教署AI課程
https://sites.google.com/mail.shmps.kh.edu.tw/shmpsai/%E9%A6%96%E9%A0%81?authuser=0
台北市AI課程
https://www.youtube.com/playlist?list=PLm778hWdXOZmpitrb2A-s4u65QTEkMmCF
https://ono.tp.edu.tw/course/8305/content#/
科技部AI前沿科轉/視覺記事
https://www.vidlab.net/
台大李宏毅教授
網站
https://speech.ee.ntu.edu.tw/~hylee/
http://speech.ee.ntu.edu.tw/~tlkagk/talk.html
AI 嘉年華短講一:機器能聽懂人說話嗎?
台大資工機器學習影片
https://www.youtube.com/channel/UC2ggjtuuWvxrHHHiaDH1dlQ/videos
LeeML-Notes
https://datawhalechina.github.io/leeml-notes/#/
台大林軒田教授
影片
https://www.youtube.com/user/hsuantien/videos
https://www.youtube.com/playlist?list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf
台大陳縕儂教授
https://www.youtube.com/c/VivianNTUMiuLab/playlists
政大應數蔡炎龍教授
人工智慧導論 - HackMD
https://hackmd.io/@cube/SkyvXYTqN
高怡宣教授
深度學習發明者楊立昆影片
https://www.bilibili.com/video/BV1Pg4y187iJ?share_source=copy_web
教學網站
https://atcold.github.io/pytorch-Deep-Learning/zh/
史丹佛大學吳恩達教授
AI For Everyone影片
英文
簡中
來台演講
https://www.youtube.com/watch?v=aFDVw8l5v9Q
史丹佛大學李飛飛教授
網站
http://cs231n.stanford.edu/
https://zhuanlan.zhihu.com/p/21930884 (簡中全文翻譯)
影片
https://www.youtube.com/playlist?list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk
Fast.AI
http://www.fast.ai
https://github.com/fastai
http://course.fast.ai/
Ver.2
https://www.youtube.com/playlist?list=PLo_tFZGoEZunzmdjzVA6rURKUiA0eV8J3
其他教學資源