陳擎文教學網:人工智慧入門
|
|||||
資源 | |||||
線上雲端AI | 線上雲端AI神經網絡 | 期中考題庫excel | 期末考題庫excel | 期末考題庫excel | |
上課黑板 | 線上黑板 | 上課即時貼 | |||
考試 | 考試題目 | ||||
Goole 輸入法(Input software) | Goole輸入法(Input:exe) | Goole 輸入法(Input:zip) | online goole input(中文) | online goole input(英文) | |
tensorflow教學資源 | TensorFlow 教學課程(官網) | 新手快速入門導覽課程(官網) | Keras 基本概念教學課程(官網) | 使用 tf.data 來載入各種資料格式(官網)) | |
線上python |
方法1:到google雲端硬碟→新增→連結更多應用程式→colaboratory |
||||
pytorch教學資源 | PyTorch官網get started | PYTORCH TUTORIALS官方教程(英文版) | PyTorch官方教程(中文版) | PyTorch community(社群) | |
mindspore教學資源 | Mindspore官網 | Mindspore開發者論壇 | |||
三種讀取csv的方法 | 程式碼(使用anaconda讀入資料集) | 程式碼(在colaboratory的python讀入google drive裡的資料集) | 程式碼(在colaboratory的python讀入個人電腦硬碟裡的資料集) | ||
如何在vs code裡執行sympy |
在vs code下方指令列輸入: pip install sympy |
||||
chp0. 人工智慧在遊戲領域的各種應用 | |||||
目錄 | 1.分類 | 2.使用AI來讓環境(道路,物件)看起來更真實 | 3.使用AI來讓NPC(Non-Player Character)看起來更像真人 | 4.大型多人線上角色扮演遊戲MMORPG裡的怪物(NPC), 其對戰的戰鬥反應也是AI設定的 | 5.最強大的NPC之人工智慧設定 |
目錄 | 6.使用AI在玩家主角上(非NPC):捉迷藏,貪食蛇 | 7.使用AI在玩家主角上(非NPC):小朋友下樓梯 | 8.使用AI在玩家主角上(非NPC):格鬥遊戲,超級馬力歐 | 9.使用AI在玩家主角上(非NPC):alpha go打敗世界圍棋棋王 | 10.用Bot AI自動生成遊戲內容 |
人工智慧在遊戲領域的各種應用:分類 |
|||||
2.使用AI來讓環境(道路,物件)看起來更真實: 遊戲:GTA5 方法:使用卷積神經網路(Deep Learning) 效果:AI人工智能研究發現,用深度學習提升遊戲畫面效果非常好,這個用了卷積神經網路的Deep Learning技術,將GTA5遊戲轉換成顯示的畫面! |
|||||
3.使用AI來讓NPC(Non-Player Character)看起來更像真人: |
|||||
4.大型多人線上角色扮演遊戲MMORPG裡的怪物(NPC), 其對戰的戰鬥反應也是AI設定的: |
|||||
5.最強大的NPC之人工智慧設定: ☎特色1:裡面全部角色與NPC的反應與台詞,都是有AI所控制的(目前少數遊戲能夠做到的高水準程度) ☎特色2:裡面對話沒有固定對話,但是即時用AI自動生成的。 ☎關鍵技術:使用AI的混沌球演算法 設定目標函數: 受到環境參數,空間參數的影響: ☎結果:這樣的AI遊戲,故事的發展有無限可能。不會再是傳統固定線性,單調枯燥的故事腳本了。 ☎結果:這樣的AI遊戲,玩家可以主宰整個遊戲的未來故事發展,而不是在重複遊戲公司的固定套路。 |
|||||
5.使用AI在玩家主角上(非NPC):捉迷藏,貪食蛇 (3)貪食蛇遊戲的自動AI學習: 方法:使用AI的類神經網絡與遺傳演算法 限制:頭部不可以穿過自己的身體 第二個貪食蛇: 影片:用AI人工智慧,第二個貪食蛇 |
|||||
6.使用AI在玩家主角上(非NPC):小朋友下樓梯 |
|||||
8.使用AI在玩家主角上(非NPC):格鬥遊戲,超級馬力歐: (2)用AI訓練古董遊戲:超級馬力歐 特色:這個影片,詳細描述用AI是如何來計算與設定的 測試影片: (3)用AI訓練格鬥遊戲,經驗談: 特色:這個影片,詳細描述用AI是如何來計算與設定的 測試影片: |
|||||
9.使用AI在玩家主角上(非NPC):alpha go打敗世界圍棋棋王: (1)AlphaGo圍棋程式: 方法:半監督式學習法,包括兩種主要演算法:『蒙地卡羅樹狀搜尋』演算法,『兩個深度神經網絡(策略網路,價值網路)』演算法 其中的神經網絡:使用13層的CNN卷積神經網絡。 學習過程:要學習數萬種高手的棋譜。 硬體:配合176個GPU,平行運算。 時間:2016年 公司:Google DeepMind 影片:AlphaGo 三戰完勝大陸棋王柯潔 (2)AlphaGo Zero圍棋程式: 特色:是AlphaGo的下一代產品。進化版,更厲害。 時間:2017年 公司:Google DeepMind 方法:融合兩個,成為一個神經網絡系統, 學習:完全不需要學習人類的棋譜,就是基於圍棋規則去生成各種樣例,然後大量與人對戰,自我增強學習,產生大量經驗樣本,只要40小時就打敗棋王。屬於無師自通型。 硬體:使用4個TPU計算。 成果:打敗所有人類圍棋手,打敗AlphaGo的歷代版本(AlphaGo,AlphaGo Lee,AlphaGo Master) 影片:Alphago Zero 2天就超越人類,40天讓5子 影片:人工智慧時代正式來臨 |
|||||
10.用Bot AI自動生成遊戲內容: |
|||||
chp1.人工智慧的四種分級 | |||||
目錄 | 1.人工智慧分級 | ||||
1.人工智慧分級 |
1.人工智慧(artificial intelligence,縮寫為AI) 亦稱智械、機器智慧 2.人工智慧的四種分級影片: 人工智慧的分級 , 影片:人工智慧的分級 3.結論:人工智慧的四種分級: (1)第一級AI:有自動感測與自動控制的機器: 例如:家電產品(有感測器,控制器) 內容:有感測器可以偵測訊號,有控制器可以做出反應 範例:洗衣機,掃地機器人,自動控溫,定時的冷氣機 (2)第二級AI:可以找出輸入,與輸出之間的關係式的程式: 內容:用演算法技術,把輸入資料與輸出結果,找出各種可能的組合,形成各種關聯組合 範例:電腦下棋程式,電腦五子棋程式,自動判斷身體可能疾病的軟體 (3)第三級AI:可以『機器學習』的程式: 機器學習:machine learning 內容:用機率,統計,演算法等技術,把輸入資料,進行學習,並得到規則,進行『迴歸,或分類』 範例:網路會員喜好的大數據分析,搜尋引擎 (4)第四級AI:可以『深度學習』的程式: 深度學習:deep learning 現在流行的AI人工智慧,就是指『深度學習』 內容:沒有告知程式該物體的特徵值,但是『深度學習』程式可以自行學習,然後找出該物體的特徵點 範例:人臉辨識,數字辨識,貓的辨識(先學習1萬張照片,自己學出貓的特徵點,然後就可以預測任何照片,找出哪張是貓。 比較1:『機器學習』程式,必須先告知它,該物體的特徵點是什麼 比較1:『深度學習』程式,不須先告知它特徵點,它會自己學習到該物體的特徵點 |
||||
chp2. 人工智慧的現況與局限(3大浪潮+3大技術+3大應用) | |||||
目錄 | 1.人工智慧的現況與局限 | 2.人工智慧的3大浪潮+3大技術+3大應用 | 3.語音辨識(speech recognition) | 4.影像辨識(Image recognition) | 5.自然語言處理(NLP)Natural Language Processing |
6.邏輯推理類 | 7.網站的自動推薦系統 | 8.疾病預測與醫療建議系統 | |||
1. |
人工智慧的現況與局限: |
||||
1. |
2.人工智慧的3大浪潮+3大技術+3大應用: https://www.youtube.com/watch?v=3JQ3hYko51Y 可以發現,經模型化的的類神經網路,是由「輸入層」(Input layer)、「隱藏層」(Hidden layer)及「輸出層」(Output layer)等三層所構成。另外,學習資料則是由輸入資料以及相對應的正確解答來組成。 以影像辨識為例,為了讓AI學習類神經網路的模型,首先必須先將影像學習資料分割成像素資料,然後將各像素值輸進輸入層。 接受了資料的輸入層,將像素值乘上「權重」後,便傳送給後方隱藏層的神經元。隱藏層的各個神經元會累加前一層所接收到的值,並將其結果再乘上「權重」後,傳送給後方的神經元。最後,經由輸出層的神經元的輸出,便可得到影像辨識的預測結果。 為了讓輸出層的值跟各個輸入資料所對應的正解資料相等,會對各個神經元的輸入計算出適當的「權重」值。 這個權重的計算,一般是使用「誤差倒傳遞演算法」(Error Back Propagation),使用與正解資料之間的誤差,從輸出層逆推回去。透過各「權重」的調整,來縮小輸出層的值與正解資料的值之間的誤差,以建立出完成學習的模型。 由於過去類神經網路之間進行傳遞的權重值難以最佳化,因此曾有多數研究者對類神經網路的研究持否定態度。直到2006年,辛頓(Geoffrey Hinton)開發出自動編碼器(Autoencoder)的手法,才突破了這項瓶頸。 自動編碼器是指,在類神經網路的輸入層和輸出層使用相同資料,並將隱藏層設置於二者之間,藉此用來調整類神經網路之間的權重參數的一種手法。利用以自動編碼器所獲得的類神經網路權重參數值進行初始化後,便能應用「誤差倒傳遞演算法」,提高多層類神經網路的學習準確度。 透過類神經網路,深度學習便成為了「只要將資料輸入類神經網路,它就能自行抽出特徵」的人工智慧,而這又稱為「特徵學習」(feature learning)。 深度學習最擅長的,是它能辨識圖像資料或波形資料這類無法符號化的資料。自2010年代以來,如Google、Microsoft及Facebook等美國知名IT企業,都開始著手深度學習的研究。 例如,蘋果「Siri」的語音辨識,Microsoft搜尋引擎「Bing」所具備的影像搜尋等等,而Google的深度學習專案也已超過1,500項。 至於深度學習如此飛躍的成長,要歸功於硬體設備的提升。圖形處理器(GPU)大廠輝達(NVIDIA)利用該公司的圖形卡來提升深度學習的性能,提供程式庫(Library)和框架(framework)產品,並積極開設研討課程。另外,Google也公開了框架「TensorFlow」,可以將深度學習應用於資料分析。 (4)AI的三大應用: AI應用領域主要可分為語音辨識、影像辨識,自然語言處理等三部分。 |
||||
3 |
3.人工智慧的3大應用之一:語音辨識(speech recognition) 科大訊飛輸入法: 影片:(1)Google 語音轉文字,解決會議逐字稿 影片:(2)針對台灣人口音的雅婷逐字稿APP,語音辨識成文字 影片:(3)語音轉錄神器 google 研發 ! 除了 雅婷逐字稿 之外的選擇 影片:聲音當入口 語音辨識改變未來生活(2014年) 影片:逐字稿太費時?「聲音轉文字」神APP推薦你 影片:AI語音辨識 影片:AI語音辨識技術-雅婷逐字稿 (參考來源文章) |
||||
4 |
5.人工智慧的3大應用之二:影像辨識(Image recognition),電腦視覺(computer vision) AI人工智慧機器人: 影片:iphone的人臉辨識工具:Face ID 影片:亞馬遜Amazon GO的無店員商店(使用影像識別自動確認物品) 影片:中國天網智能監控系統(影像辨識) 影片:不可思議的監控天網!AI戰 中國已超越美國 影片:天網智能監控的實際畫面 影片:機器人醫療零售十大產業,AI應用大爆發 影片:USB cam就可以做影像辨識 影片:AI影像辨識技術應用於製造業品質檢測 影片:AI 影像瑕疵檢測的重要概念與產業應用 影片:用樹莓派及桌上型電腦進行實時物體偵測 影片:智駕巴士 - 無人車 - 自動駕駛 - 自駕巴士 影片:自動駕駛巴士台北2020/9月上路 影片:台北市有自動駕駛公車了 影片:打開 AI 黑箱!以自駕車為例認識可解釋的人工智慧 影片:AI人工智慧機器人-Atlas-美國波士頓動力公司(Boston Dynamics) 影片:Atlas機器人跳舞 影片:AI人工智慧機車 (參考來源文章) |
||||
5 |
5.人工智慧的3大應用之三:自然語言處理:Natural Language Processing(NLP) 影片:IBM超級電腦華生(IBM Watson)上益智節目比賽 大勝人腦 影片:人腦電腦大對決 影片:IBM華生研究區塊鏈共享病例 影片:台灣的醫院引進IBM華生來看病 影片:機器人"華生",1秒寫出藏頭詩 影片:三款人工智慧音箱比較:小愛,小度,天貓精靈 影片:小米音箱 影片:「聊天機器人」夯! 人工智慧讓服務變科技 影片:糖尿病LINE聊天機器人 解決糖友資訊疑惑 影片:LIne聊天機器人:卡米狗,能陪你談天說地 影片:新北市資訊查詢系統,專屬LINE聊天機器人 影片:如何在LINE群加上聊天機器人 pepper機器人(鴻海製造) 江西圖書館的機器人吵架(1) 網紅圖書館 話癆機器人到電視節目參賽 人類與機器人的有趣對話 江西圖書館的機器人吵架(2) 影片:入門 NLP (自然語言處理) 影片:机器这样理解语言:句向量 影片:机器是这样理解语言的:词向量 影片:你天天用的搜索引擎是怎样工作的? (參考來源文章) |
||||
5 |
6.人工智慧在其它小領域應用之一:邏輯推理類 |
||||
5 |
7.人工智慧在其它小領域應用之一:網站的自動推薦系統 |
||||
5 |
8.人工智慧在其它小領域應用之一:疾病預測與醫療建議系統 |
||||
chp3.人工智慧的發展歷史 | |||||
目錄 | 1.人工智慧的三階段發展 | 2.人工智慧的發展歷史與著名人物 | 3.人工智能舉例:如何預測房屋的成交價格?(迴歸問題) | 4、神經網路 | |
目錄 | 5、神經網路框架 | ||||
exp3_1 |
人工智慧的發展歷史: |
||||
2.人工智慧的發展歷史與著名人物: |
|||||
3.人工智能舉例:如何預測房屋的成交價格?(迴歸問題) |
|||||
4、神經網路 |
|||||
5、神經網路框架: |
|||||
chp4. 機器學習,深度學習簡介 | |||||
目錄 | 1.AI,機器學習,深度學習 | 2.機器學習 | 3.深度學習 | ||
1.機器學習,深度學習簡介: 早期的人工智慧,例如:1997年,IBM的人工智慧程式“深藍”戰勝了雄據國際象棋霸主12年的卡斯帕羅夫,人工智慧迎來了第三次大發展。 但是這種人工智慧,只是『一直窮舉法』,把各種可能的路徑都寫成程式,然後再決定使用哪一種路徑。 ☎影片:前世界西洋棋王輸給超級電腦「深藍」 |
|||||
2.機器學習簡介(Machine Learning): |
|||||
3.深度學習簡介: |
chp5.深度學習(神經網絡)的視覺化理解 | |||||
目錄 | 1.神經網絡辨識數字過程的3D視覺化 | 2.機器學習的數學基礎:以數據迴歸為例 | 3.類神經網絡的數學基礎:以數據分類為例 | 視覺化第一章:究竟神經網路是什麼? | |
視覺化第二章:梯度下降,神經網絡如何學習 | 視覺化第三章:什麼是反向傳播演算法? | 視覺化第四章:反向傳播的微積分算法 | 6.什麼是神經網絡 (中文) | ||
1.神經網絡辨識數字過程的3D視覺化: |
|||||
1.機器學習的數學基礎:以數據迴歸為例: |
|||||
2-1.類神經網絡的數學基礎:以數據分類為例: |
|||||
1.深度學習的視覺化理解: |
|||||
1.深度學習的視覺化理解: |
|||||
1.深度學習的視覺化理解: |
|||||
1.深度學習的視覺化理解: |
|||||
6.什麼是神經網絡 (中文): |
|||||
chp6.執行python的四種方法 | |||||
1.執行python的四種方法 | 2.Anaconda下載點 | 3.安裝anaconda | 4.Anaconda cmd指令 | ||
5.建立Anaconda虛擬環境 | 6.使用Spyter編譯器 | 7.網頁版python編輯器jupyter notebook | 8.其它線上雲端可編譯的python平台 | ||
1.前言 |
Python堪稱是大數據與AI時代的最重要程式語言,在資料處理上有著非常重要的地位。而隨著AI的興起,讓傳統的零售業、金融業、製造業、旅遊業,以及政府都爭相投入,無不希望能運用數據分析與預測來協助決策方向,也讓新興的數據分析師、資料分析師成為熱門職業,因此本課程將講解如何使用網絡爬蟲技術以掌握資料爬取分析、視覺化呈現,以及儲存交換應用的關鍵技術。 Python資料處理的三大技術分別是:擷取分析、視覺化呈現與儲存應用。 而其應用的範疇包括:網路爬蟲、資料正規化、資料視覺化、資料儲存與讀取(CSV、Excel、Google試算表、SQLite、MySQL)、批次檔案下載、公開資料應用、API建立、驗證碼辨識。 |
||||
Python大數據分析最重要的四個模組 |
1.Python大數據分析最重要的四個模組 |
||||
2.執行python的四種方法(建議用Anaconda,或colaboratory) |
1.執行python的四種方法(建議用Anaconda,或colaboratory): 一、方法1:安裝python單純的python 缺點:功能陽春,沒有太多的模組,無法馬上寫大數據分析程式。 安裝網址:python官網下載 二、方法2:安裝Anaconda(**推薦) 優點:會同時安裝python、1000多種數學繪圖模組、Spyder編輯器,能夠支援大數據分析。 缺點:會安裝了很多你用不到的模組,浪費硬碟空間。 安裝網址:到Anacond官網下載安裝 三、方法3:使用python官網線上shell 使用repl線上python 四、方法4:免安裝的colaboratory(**推薦) (1)特色:Colaboratory (簡稱為「Colab」) 可在瀏覽器上撰寫及執行Python (2)使用方法:到google雲端硬碟→新增→連結更多應用程式→colaboratory (3)優點: ☎免費 ☎提供GPU運算 ☎什麼前置安裝都不需要,請打開瀏覽器,登入Google帳號,就可使用 ☎常用模組都已經安裝好 ☎未來晉升中高階開發者,也可無痛轉換成Jupyter或其他IDE繼續開發 ☎與Google Drive連動,方便存取與備份以外,也方便與他人協作 (4)缺點: ☎最多只能12小時的連續運算 ☎每次重新開啟Colab,都要重新連動Drive ☎如果要使用Colab無預設安裝好的特定模組,那每次開啟 Colab 時都要重新安裝一遍 ☎與Google Drive連動是優點也是缺點,像是資料容量過大的話可能就放不進去 Google Drive. |
||||
3.Anaconda下載點 |
|
||||
3.安裝anaconda |
3.安裝anaconda 功能:原始的python功能太陽春,若下載anaconda,則可以提供300多種的科學數學模組,可以提供大數據資料分析 (1)Anaconda是一個免費的Python和R語言的發行版本,用於計算科學(資料科學、機器學習、巨量資料處理和預測分析) (2)因為Anaconda有很多的數據分析模組,所以大數據分析會使用到的『pandas、Numpy、Scipy』python package套件,在anaconda安裝完成時就已經包含在裡面了。 (3)Anaconda中文是森蚺(大蟒蛇)。 1)可以把Anaconda當作是Python的懶人包,除了Python本身(python2, 3) 還包含了Python常用的資料分析、機器學習、視覺化的套件 2).完全開源和免費 3).額外的加速、優化是收費的,但對於學術用途可以申請免費的 License 4).全平台支持:Linux、Windows、Mac 5).支持 Python 2.6、2.7、3.3、3.4,可自由切換, 6).內帶spyder 編譯器(還不錯的spyder編譯器) 7).自帶jupyter notebook 環境 (就是網頁版的python編輯器,副檔名為IPthon) (4)常用套件: Numpy: Python做多維陣列(矩陣)運算時的必備套件,比起Python內建的list,Numpy的array有極快的運算速度優勢 Pandas:有了Pandas可以讓Python很容易做到幾乎所有Excel的功能了,像是樞紐分析表、小記、欄位加總、篩選 Matplotlib:基本的視覺化工具,可以畫長條圖、折線圖等等… Seaborn:另一個知名的視覺化工具,畫起來比matplotlib好看 SciKit-Learn: Python 關於機器學習的model基本上都在這個套件,像是SVM, Random Forest… Notebook(Jupyter notebook): 一個輕量級web-base 寫Python的工具,在資料分析這個領域很熱門,雖然功能沒有比Pycharm, Spyder這些專業的IDE強大,但只要code小於500行,用Jupyter寫非常方便,Jupyter也開始慢慢支援一些Multi cursor的功能了,可以讓你一次改許多的變數名稱 (5)優點:省時:一鍵安裝完90%會用到的Python套件,剩下的再用pip install個別去安裝即可 (6)缺點:占空間:包含了一堆用不到的Python的套件(可安裝另一種miniconda) (7)下載網址:https://www.anaconda.com/ 選擇個人版:indivisual https://www.anaconda.com/products/individual →Download →Windows Python 3.7(會自動幫你安裝Python 3.7) 64-Bit Graphical Installer (466 MB) 32-Bit Graphical Installer (423 MB) (8)安裝過程,要勾選 不勾選:add the anaconda to the system PATH(但是2020年,ananconda不建議勾選這個,容易發生錯誤) 勾選:Register anaconda as system Python 3.7 (9)安裝結束 →在windows開始→anaconda有6個項目,最常用的有3個 (1)anaconda prompt:可以直接下cmd指令 (2)Spyter:編譯器(還不錯的spyder編譯器) (3)jupyter notebook(網頁版的python編輯器,副檔名為IPthon) |
||||
4.Anaconda prompt:cmd指令 |
4.使用anaconda prompt:直接下cmd指令 注意:windows 10 必須使用管理員來執行(點選anaconda prompt→滑鼠右鍵→以系統管理員身份進行) (1)列出目前已經安裝的anaconda的模組與版本: conda list (2)對某個模組更新安裝 conda update 模組 範例:conda update ipython (3)安裝某個模組 方法1:conda install 模組 範例:conda install numpy # 安裝 NumPy 1.15 以後、 1.16 以前 conda install 'numpy>=1.15,<1.16' 方法2:pip install 模組 範例:pip install numpy (4)解除安裝某個模組 方法1:conda uninstall 模組 範例:conda uninstall numpy 方法2:輸入 conda remove PACKAGE_NAME可以從目前的工作環境移除指定套件。 # 移除 NumPy conda remove numpy numpy-base 方法3:pip uninstall 模組 範例:pip uninstall numpy (5)在anaconda prompt執行python程式 方法1: 先到工作目錄:cd ch1 執行.py程式:python test1.py 方法2:python c:\chp1\test1.py (6)常用指令 conda --version 檢視 conda 版本 conda update PACKAGE_NAME更新指定套件 conda --help 檢視 conda 指令說明文件 conda list --ENVIRONMENT 檢視指定工作環境安裝的套件清單 conda install PACAKGE_NAME=MAJOR.MINOR.PATCH 在目前的工作環境安裝指定套件 conda remove PACKAGE_NAME 在目前的工作環境移除指定套件 conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 建立新的工作環境且安裝指定 Python 版本 conda activate ENVIRONMENT 切換至指定工作環境 conda deactivate 回到 base 工作環境 conda env export --name ENVIRONMENT --file ENVIRONMENT.yml 將指定工作環境之設定匯出為 .yml 檔藉此複製且重現工作環境 conda remove --name ENVIRONMENT --all 移除指定工作環境 使用 conda list | grep numpy 檢查 Python 套件清單中是否還有 NumPy 套件 輸入 conda search PACKAGE_NAME可以檢視指定套件在 conda 中可安裝的版本列表。 # 檢視 NumPy 在 conda 中可安裝的版本 conda search numpy=1.16.3 |
||||
5.用Anaconda prompt來建立虛擬環境p> |
5.使用Anaconda prompt來建立虛擬環境 功能:可以建立多個Anaconda虛擬環境 例如:目前安裝後預設是python 3.x版本的環境,若要創建一個python 2.x的環境,就可以在Anaconda虛擬環境實現 (1)# 檢視電腦中可使用與目前所在的工作環境 conda env list (2)使用 conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 指令可以建立出乾淨、極簡且資源隔絕的工作環境。 指令:conda create -n 虛擬環境名稱 python=版本 anaconda # 建立一個名稱為 demo 的 Python 2 工作環境 conda create --name demo python=2 範例:建立py27env環境 conda create -n py27env python=2.7 anaconda (3)輸入 conda activate ENVIRONMENT 可以啟動指定工作環境、 方法1:conda activate ENVIRONMENT 方法2:activate ENVIRONMENT 範例:activate py27env 方法3:到windows→開始→點選Anaconda prompt(py27env) (4)關閉虛擬目錄,回到原本pytohn環境(base) 使用 conda deactivate 則是切換回預設的 base 工作環境。 方法1:conda deactivate 方法2:deactivate (5)# 檢視 demo 工作環境中的套件 conda list -n py27env (5)範例 A.建立py27env虛擬環境 conda create -n py27env python=2.7 anaconda B.切換到py27env虛擬環境 activate py27env C.檢視 demo 工作環境中的套件 conda list -n py27env D.# 檢視 Python 版本 python --version E.關閉虛擬目錄,回到原本pytohn環境(base) deactivate (5)複製一個與目前pyhon環境(或是py27env) 完全相同的工作環境 conda create -n 新虛擬環境名稱 --clone root 範例:conda create -n py27env2 --clone root # 檢查明確所有虛擬環境名稱 conda info -e (6)移除某個虛擬環境 conda remove -n 虛擬環境名稱 --all 範例:conda remove -n py27env --all (7)常用指令整理 安裝:conda install 更新:conda update 移除:conda remove 在工作環境管理透過 創建:conda create 啟動:conda activate 停止:conda deactivate 匯出設定檔:conda env export 移除:conda remove |
||||
6.使用Spyter編譯器 |
6.使用Spyter:編譯器 (1)新增一個py檔案 File→ New file print("你好,歡迎光臨") print(1+1) Run➤ (2)開啟已經存在的檔案 方法1:File→ Open 方法2:拖曵檔案總管的py檔案到Spyder (3)在Spyter使用簡易智慧輸入 方法:按『tab』 範例: 先輸入p 然後按『tab』 出現list清單,都是p開始的指令 (4)程式除錯 方法1:若是這一行有指令寫錯,就會在最左邊出現三角形▲警告icon 方法2:在這個一行最左邊double click,就會出現中斷點(或是這一行按F12) |
||||
7.jupyter notebook網頁版的python編輯器 |
7.jupyter notebook (1)功能:是網頁版的python編輯器,副檔名為IPthon 會開啟瀏覽器:http://localhost:8888/tree 對應的硬碟目錄 = C:\Users\電腦名稱 (例如: C:\Users\user) (2)練習線上編輯一個簡單python程式 A.右方→New→Python3 在cell裡面輸入In[1] a = ("apple","grape","banana") print(a[2]) B.Run C.修改檔案名稱→Untitled→exp1-3 D.查詢雲端檔案放置位置:C:\Users\電腦名稱\exp1-3.ipynb (3)二種不同的Run方式 A.Run:會新增一個new cell B.Ctrl+Enter:會停留在原本的cell (4)在jupyter notebook使用簡易智慧輸入 方法:按『tab』 範例: 先輸入p 然後按『tab』 出現list清單,都是p開始的指令 (5)在jupyter notebook編輯的檔案無法讓python IDE編譯 jupyter notebook編輯的檔案是.ipynb 與python的.py不同 改善方法:只能把程式碼複製貼上,在兩個平台交流 |
||||
8.其它線上雲端可編譯的python平台 |
8.其它線上雲端可編譯的python平台 網站:http://rep.it/languages/python3 |
||||
chp7. 深度學習的常用框架 | |||||
目錄 | 1.深度學習的常用框架 | 2.Keras簡介 | 3.PyTorch簡介 | 4.Mindspore簡介 | |
1.深度學習的常用框架 |
|||||
2.Keras簡介 |
|||||
3.PyTorch簡介 |
|||||
4.Mindspore簡介 |
|||||
chp8. keras簡介 | |||||
目錄 | 1.keras簡介 | 2.Keras的神經網路訓練步驟 | 3.Keras每一步驟的指令與程式碼 | 4.keras提供三種快速搭建網路的方式 | |
5.Sequential model | 6.Functional API model | 7.Model Subclassing | 8.keras損失函數(Loss Function)的種類 | ||
9.Keras 激勵函數(Activation Function)的種類 | 10.Keras 優化函數(Optimizer)的種類 | ||||
1 |
1.keras簡介 |
||||
2 |
1.Keras 是一個用來降低機器學習程式設計門檻的專案,Keras 也整合許多符合商業和研究需求的高階API。透過這些API只需要幾行程式碼就能建構和執行非常複雜的神經網路 |
||||
3.Keras每一步驟的指令與程式碼: |
|||||
4.Keras的模型結構有三種方法 |
|||||
5.Sequential Model |
|||||
6.Functional API model: |
|||||
7.Model Subclassing: |
|||||
8.Keras 損失函數(Loss Function)的種類: |
|||||
9.Keras 激勵函數(Activation Function)的種類: |
|||||
10.Keras 優化函數(Optimizer)的種類: |
|||||
chp9. 由keras的4個範例(簡易版)來認識人工智慧 | |||||
目錄 | 1.TensorFlow官網的教學範例1:用1層神經網絡來做迴歸分析 | 2.TensorFlow官網的教學範例2:基本神經網絡深度學習模型 | 3.TensorFlow官網的教學範例3:卷積神經網絡模型 | 4.TensorFlow官網的教學範例4:識別剪刀石頭布Rock,Paper,Scissors | |
1.從一個範例來認識人工智慧(TensorFlow官網的教學範例1):用1層神經網絡來做迴歸分析 |
|||||
2.TensorFlow官網的教學範例2:基本神經網絡深度學習模型 |
|||||
3.TensorFlow官網的教學範例3:卷積神經網絡模型的簡介(Introduction to Convolutions) (9)卷積神經層產生『過濾器』的程式碼: A.第1層(卷積神經層),會產生64個過濾器,輸入向量是28x28 B.這64個過濾器,卷積神經層會自動反复學習,得到最佳的參數解(就類似深度學習的方法) C.MaxPooling2D(2, 2)乃是執行最大池化壓縮圖片檔案大小,但保留特徵 model = tf.keras.models.Sequential([ # Note the input shape is the desired size of the image 28x28 with 1 bytes color # This is the first convolution tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D(2, 2), # Flatten the results to feed into a DNN tf.keras.layers.Flatten(), # 128 neuron hidden layer tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') (9)多個卷積神經層反复過濾,壓縮的程式碼: A.多個卷積神經層反复過濾,壓縮,就可以提取出多種特徵 B.優點: ☎前一個範例(一般神經網絡),是根據『像素』來進行學習 ☎這個範例(卷積神經層),卷積神經網絡可以根據『像素,特徵』來進行學習 C.例如:神經網絡看到『兩個袖子』的特徵,就可以判斷這個是『襯衣,短袖』,而不是鞋子 看到『鞋底,鞋帶』,就可以判斷這是『短靴,雨鞋』,而不是襯衣 model = tf.keras.models.Sequential([ # Note the input shape is the desired size of the image 28x28 with 1 bytes color # This is the first convolution tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D(2, 2), # The second convolution tf.keras.layers.Conv2D(64, (3,3), activation='relu'), tf.keras.layers.MaxPooling2D(2,2), # The third convolution tf.keras.layers.Conv2D(128, (3,3), activation='relu'), tf.keras.layers.MaxPooling2D(2,2), # The fourth convolution tf.keras.layers.Conv2D(128, (3,3), activation='relu'), tf.keras.layers.MaxPooling2D(2,2), # Flatten the results to feed into a DNN tf.keras.layers.Flatten(), # 128 neuron hidden layer tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ☎執行類神經網路的求解步驟示意圖: (10)資料來源(fashion_mnist資料集) ☎鞋子衣服圖片來源:讀取鞋子衣服資料集dataset(tensorflow裡面已經內建有fashion_mnist的資料集) ☎鞋子衣服資料集(fashion_mnist),裡面的樣式種類有10類,圖片有7萬張(每一類鞋子有7千張),每張圖片28x28像素 ☎指令:mnist = tf.keras.datasets.fashion_mnist (11)成果: 程式碼 專案成果檔案.py, 專案成果檔案.ipynb |
|||||
4.TensorFlow官網的教學範例4:識別剪刀石頭布Rock,Paper,Scissors |
|||||
chp10. keras多層感知器(MLP) | |||||
目錄 | 1.什麼是多層感知機 Multilayer perceptron, MLP | 2.神經網絡隱藏層的神經元要設定多少 | 3.深度學習神經網絡的運作核心原理:找出最佳的參數(權重值w) | 4.神經網絡的訓練每次迴圈的三步驟:前向傳遞,評估損失,反向傳遞 | |
5.訓練迴圈是否越多越好:過度擬合/低度擬合(Overfit/underfit) | 6.為什麼深度學習的神經元要用激勵函數/啟動函數/Activation | 7.該使用哪一種激勵函數/Activation function? | 8.該使用哪一種損失函數/Loss function? | ||
9.樣本與標籤(samples/labels) | 10.樣本要做哪些預處理 | 11.樣本的正規化與標準化(Normalization/Standardization) | 12.樣本要切割成三份:『訓練用,驗證用,測試用』樣本 | ||
13.迴圈的設定:訓練週期Epochs,批次Batch,批次尺寸Batch Size,迭代數Iterations | 14.Keras常用的2種深度學習模型models | 15.常用的3種神經網絡類型types:MLP,CNN,RNN | 範例10-1:基本圖片分類:Basic classification: Classify images of clothing | ||
1.感知器(perceptron):就是神經元(neuron) |
|||||
6.建構神經網絡的一個重要問題:隱藏層的神經元要設定多少? |
|||||
8.深度學習神經網絡的運作核心原理:找出最佳的參數(權重值w) |
|||||
10.神經網絡的訓練每次迴圈的三步驟:前向傳遞,評估損失,反向傳遞 |
|||||
11.訓練迴圈次數是否越多越好:過度擬合/低度擬合(Overfit/underfit) |
|||||
12.為什麼深度學習的神經元要用激勵函數/啟動函數/Activation |
|||||
13.該使用哪一種:激勵函數/Activation function? |
|||||
13.該使用哪一種損失函數/Loss function? |
|||||
14.什麼是樣本與標籤(samples/labels) |
|||||
15.樣本要做哪些預處理: |
|||||
16.『特徵標準化』的兩種可行方法:正規化/Normalization,標準化/Standardization |
|||||
17.樣本要切割成三份:『訓練用,驗證用,測試用』樣本 |
|||||
18.迴圈的設定:訓練週期Epochs,批次Batch,批次尺寸Batch Size,迭代數Iterations |
|||||
19.Keras常用的2種深度學習模型models |
|||||
20.常用的3種神經網絡類型types:MLP,CNN,RNN |
|||||
1.基本圖片分類:Basic classification: Classify images of clothing |
|||||
chp11. keras多層感知器(MLP)的各種範例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
目錄 | 範例11-1-a:糖尿病的識別與預測:讀入資料集檔案 | 範例11-1-b:建立糖尿病的神經網絡模型 | 範例11-1-c:把訓練資料先進行特徵標準化Standardization | 範例11-1-d:在神經層使用權重初始器initializer | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-e:輸出向量改成2個(yes,no) | 範例11-1-f:使用adam優化器optimizer試看看可否提高準確率 | 範例11-1-g:若樣本數不多,可縮小神經網絡尺寸,以提高準確率 | 範例11-1-h:把資料集分割成訓練資料集,測試資料集 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-i:如何找到最佳訓練週期epochs(看驗證資料的history圖) | 範例11-1-j:使用validation_split=0.2參數,來自動分割驗證用資料集 | 範例11-1-k:顯示模型的預測值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
目錄 | 範例11-2-a:預測波士頓房價Boston Housing price regression:讀入csv資料集 | 範例11-2-b:建立模型來訓練波士頓房價資料集 | 範例11-2-c:使用定義函數來『建立模型+編譯模型』:model=def bulid_mode() | 範例11-2-d:當資料集數目少時可用k-摺疊交叉驗證法(k fold cross validation) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-e:使用四層神經網絡,來降低誤差 | 範例11-2-f:由『驗證資料集』找出避免overfitting的『最佳週期』後,就只用『訓練資料集,測試資料集』重新訓練模型 | 範例11-2-g:同時一次儲存已經訓練好的模型『結構,權重』 | 範例11-2-h:一次讀入已經訓練好的模型『結構,權重』 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-i:分開儲存已經訓練好的模型『結構,權重』 | 範例11-2-j:分開讀入已經訓練好的模型『結構,權重』 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
目錄 | 範例11-3-a:鳶尾花資料集(The iris dataset)的多元分類:讀入csv資料集 | 範例11-3-b:繪圖(散佈圖,seabron繪圖庫):鳶尾花資料集 | 範例11-3-c:建立鳶尾花資料集(The iris dataset)的神經網絡模型 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-a:糖尿病的識別與預測:讀入資料集檔案 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-b:建立糖尿病的神經網絡模型 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-c:把訓練資料先進行特徵標準化Standardization |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-d:在神經層使用權重初始器initializer |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-e:輸出向量改成2個(yes,no) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-f:使用adam優化器optimizer試看看可否提高準確率 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-g:若樣本數不多,可縮小神經網絡尺寸,以提高準確率 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-h:把資料集分割成訓練資料集,測試資料集 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-i:如何找到最佳訓練週期epochs(看驗證資料的history圖) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-j:使用validation_split=0.2參數,來自動分割驗證用資料集 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-1-k:顯示模型的預測值 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-a:預測波士頓房價/Boston Housing price regression:讀入csv資料集
(11-2a-4)讀入csv檔案,印出前5筆,印出資料集的size(row,column)=(筆數,欄位數) ☎成果: ☎程式碼: 3.程式碼(在colaboratory的python讀入個人電腦硬碟裡的資料集) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-b:建立模型來訓練波士頓房價資料集 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2c:使用定義函數來建立模型+編譯模型:model=def bulid_mode() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-d:當資料集數目少時可用k-摺疊交叉驗證法(k fold cross validation) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-e:使用四層神經網絡,來降低誤差 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-f:由『驗證資料集』找出避免overfitting的『最佳週期』後,就只用『訓練資料集,測試資料集』重新訓練模型 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-g:同時一次儲存已經訓練好的模型『結構,權重』 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-h:一次讀入已經訓練好的模型『結構,權重』 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-i:分開儲存已經訓練好的模型『結構,權重』 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-2-j:分開讀入已經訓練好的模型『結構,權重』 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-3-a:鳶尾花資料集(The iris dataset)的多元分類:讀入csv資料集 了解數據集鳶尾花數據集是一個經典的機器學習數據集,非常適合用來入門。
該表確定了鳶尾花品種,品種必須是下列任意一種:
數據集中三類鳶尾花各含有50個樣本,共150各樣本 (11-3a-2)讀入csv的方法: (1)在anconda讀入csv: import pandas as pd df = pd.read_csv("./diabetes.csv") (2)在colaboratory讀入csv:方法1 ☎注意:diabetes.csv已經上傳到google drive裡面了 在colaboratory的python讀入google drive裡面的diabetes.csv from google.colab import drive drive.mount('/content/drive') df = pd.read_csv("./diabetes.csv") (3)在colaboratory讀入csv:方法2 ☎注意:diabetes.csv在自己的個人電腦硬碟裡 #上傳diabetes.csv from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print('User uploaded file "{name}" with length {length} bytes'.format( name=fn, length=len(uploaded[fn]))) # 確認diabetes.csv是否已上載 !ls *.* -l # use Pandas to read diabetes.csv df = pd.read_csv("./diabetes.csv") print(df) (11-3a-3)下載鳶尾花資料集(The iris dataset): (1)下載鳶尾花csv資料集 (2)鳶尾花資料集說明: ☎資料集包含了150個樣本,都屬於鳶尾屬下的三個亞屬,分別是山鳶尾、變色鳶尾和維吉尼亞鳶尾。 ☎四個特徵被用作樣本的定量分析,它們分別是花萼和花瓣的長度和寬度。基於這四個特徵的集合,費雪發展了一個線性判別分析以確定其屬種。 (11-3a-4)讀入csv檔案,印出前5筆,印出資料集的size(row,column)=(筆數,欄位數) ☎成果: ☎程式碼: 3.程式碼(在colaboratory的python讀入個人電腦硬碟裡的資料集) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-3-b:繪圖(散佈圖,seabron繪圖庫):鳶尾花資料集 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
範例11-3-c:建立鳶尾花資料集(The iris dataset)的神經網絡模型,並輸入結構與權重檔案 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chp16. 使用Vislab做AI影像辨識(不用寫程式) | |||||
目錄 | 1.VisLab,VisCam簡介 | 2.VisLab,VisCam教學影片 | |||
3.範例1:Classification分類器:標記工具 | 4.範例2:Classification分類器:訓練工具 | 5.範例3:Classification分類器:驗證工具 | |||
6.範例4:Object Detection 物件偵測:標記工具 | 7.範例5:Object Detection 物件偵測:訓練工具 | 8.範例6:Object Detection 物件偵測:驗證工具 | |||
9.範例7:Segmentation 分割:標記工具 | 10.範例8:Segmentation 分割:訓練工具 | 11.範例9:Segmentation 分割:驗證工具 | |||
12.範例10:VisCam | 13.VisLab 進階操作 &蒐集圖片方式 | ||||
1.VisLab,VisCam簡介 |
|||||
2.VisLab,VisCam教學影片 |
|||||
3.範例1:Classification分類器:標記工具 |
|||||
4.範例2:Classification分類器:訓練工具 |
|||||
5.範例3:Classification分類器:驗證工具 |
|||||
6.範例4:Object Detection 物件偵測:標記工具 |
|||||
7.範例5:Object Detection 物件偵測:訓練工具 |
|||||
8.範例6:Object Detection 物件偵測:驗證工具 |
|||||
9.範例7:Segmentation 分割:標記工具 |
|||||
10.範例8:Segmentation 分割:訓練工具 |
|||||
11.範例9:Segmentation 分割:驗證工具 |
|||||
12.範例10:VisCam |
|||||
13.VisLab 進階操作 &蒐集圖片方式 |
|||||