# 高中學生課程設計:人工智慧 ## 課程名稱 **(多元選修)人工智慧** ## 課程時長 - 每週 **2 小時** ## 總週數 - **21 週** ## 每週課程安排 | 週數 | 課程主題 | 內容摘要 | | --------- | ----------------------- | ------------------------------------------------ | | 第 1 週 | 人工智慧概論 | 介紹人工智慧的歷史、發展及基本概念。 | | 第 2 週 | 機械學習基礎 | 監督學習與非監督學習的基本概念與應用。 | | 第 3 週 | 機械學習演算法 | 深入了解決策樹、支持向量機等常見演算法。 | | 第 4 週 | 深度學習演算法 | 神經網絡的結構與運作原理。 | | 第 5 週 | 深度學習應用 | 實作簡單的深度學習模型,如手寫數字識別。 | | 第 6 週 | 自然語言處理基礎 | 語言模型的概念與文本處理技術。 | | 第 7 週 | 第一次報告 | 學生分享機械學習或深度學習的相關專題報告。 | | 第 8 週 | 自然語言處理應用 | 實作簡單的聊天機器人,介紹語言生成技術。 | | 第 9 週 | 計算機視覺基礎 | 圖像處理的基本概念與技術。 | | 第 10 週 | 計算機視覺應用 | 實作物體識別系統,介紹卷積神經網絡(CNN)。 | | 第 11 週 | 強化學習基礎 | 強化學習的基本概念與應用案例。 | | 第 12 週 | 強化學習應用 | 實作簡單的強化學習模型,例如遊戲AI。 | | 第 13 週 | 人工智慧的倫理問題 | 討論人工智慧對社會的影響及倫理考量。 | | 第 14 週 | 第二次報告 | 學生分享自然語言處理或計算機視覺的相關專題報告。 | | 第 15 週 | 人工智慧在醫療領域的應用 | 探討人工智慧如何改善醫療服務與診斷。 | | 第 16 週 | 人工智慧在商業領域的應用 | 分析推薦系統與市場預測的案例。 | | 第 17 週 | 人工智慧在交通領域的應用 | 智能交通系統與無人駕駛技術的發展。 | | 第 18 週 | 期末專題準備 | 學生選擇主題並準備期末報告。 | | 第 19 週 | 期末專題準備 | 學生繼續準備期末報告,並進行小組討論。 | | 第 20 週 | 期末報告彩排 | 學生進行期末報告的彩排,互相給予反饋。 | | 第 21 週 | 期末報告 | 學生展示期末專題報告,進行評量與討論。 | ## 評量方式 - 每次報告的內容與表現 - 課堂參與與討論 - 期末專題報告 --- # 第 1 週 :人工智慧概論 ## 課程主題 **人工智慧概論** ## 課程目標 - 了解人工智慧的歷史與發展。 - 理解人工智慧的基本概念與分類。 - 探討人工智慧的應用範疇及其影響。 ## 課程內容 ### 1. 人工智慧的定義 - **人工智慧 ("Artificial intelligence")** 的基本定義 是指一組技術,使計算機和機械能夠執行類似人類的高級過程,例如分析和學習、解決問題和做出決策。AI系統可以設計來執行各種不同的任務,包括理解和生成文本、圖像和視頻、語音識別、駕駛汽車、玩遊戲等。 - 人工智慧與人類智慧的比較 - 學習方式: 人工智慧:通過大量數據和算法進行訓練,學習模式和規則。 人類智慧:通過經驗、直覺和情感進行學習,能夠靈活應對新情況。 - 問題解決: 人工智慧:通常專注於特定任務,能夠快速處理大量數據,但缺乏創造性。 人類智慧:能夠進行創造性思考,靈活應對複雜和不確定的情況。 - 情感與社交能力: 人工智慧:缺乏情感,無法理解或表達情感。 人類智慧:擁有情感,能夠理解他人的情感並進行社交互動。 - 適應性: 人工智慧:在特定範疇內表現出色,但在新環境中可能需要重新訓練。 人類智慧:具有高度的適應性,能夠在多變的環境中靈活應對。 ### 2. 人工智慧的歷史 - **1950年代**:人工智慧的起源與早期研究 - 背景:這一時期被視為人工智慧的起源,許多基礎理論和概念開始形成。 - 重要人物:艾倫·圖靈提出了圖靈測試,作為評估機械是否具備智能的標準。 - 研究方向:早期的研究主要集中在邏輯推理和問題解決上,開發了第一批能進行簡單計算和推理的程序。 :::info - 定義: 圖靈測試是一種評估機械是否具備智能的測試,最初由英國數學家和計算機科學家 艾倫·圖靈 在 1950年 提出的。其主要目的是判斷機械是否能夠模擬人類的思維和行為。 - 測試過程: - 參與者:測試涉及三個主要角色: - 人類評估者:負責判斷。 - 人類被試者:提供回答。 - 機械:模擬人類的回答。 - 互動方式: - 評估者與被試者和機械進行文本對話,無法識別對方的身份。 - 評估者的任務是根據對話來判斷哪一方是人類,哪一方是機械。 - 判斷標準: 如果評估者無法準確區分機械和人類,則該機械被認為通過了圖靈測試,顯示出類似人類的智能。 - 重要性: - 圖靈測試對於人工智慧的發展具有重要影響: - 提出了一個關於智能的具體測量標準。 - 啟發了後續的AI研究和哲學思考,探討什麼構成“智慧”。 - 批評: - 儘管圖靈測試被廣泛引用,但也受到一些批評: - 測試僅評估機械的表現,而不是其內部理解或意識。 - 機械可能通過模擬人類行為而不具備真正的理解或情感。 ::: - **1980年代**:專家系統的興起 - 定義:專家系統是模擬人類專家的決策過程,能在特定領域內提供建議和解決方案。 - 應用:這一時期的專家系統被廣泛應用於醫療診斷、金融分析等領域。 - 技術:專家系統依賴於知識庫和推理引擎,能夠處理複雜的問題並提供專業建議。 - **2000年代**:機械學習與深度學習的發展 - 機械學習:這一時期,機械學習技術迅速發展,讓計算機能夠從數據中學習並改進其性能。 - 深度學習:深度學習作為機械學習的一個子領域,利用神經網絡進行更複雜的數據分析,特別是在圖像和語音識別方面取得了顯著進展。 - 影響:這些技術的發展使得人工智慧在各個領域的應用變得更加廣泛和有效。 ### 3. 人工智慧的分類 - **狹義人工智慧 (Narrow AI)**: - 具體任務的自動化,如語音識別、圖像識別 - 定義:人工狹隘智慧,也稱為弱人工智慧。 - 特徵: 專注於特定任務或範疇,如語音識別、圖像識別或遊戲。 能在特定領域中表現出色,但無法進行超出其訓練範疇的活動。 目前大部分的AI技術都屬於此類型,例如虛擬助手(如 Siri 和 Alexa)。 - **廣義人工智慧 (General AI)**: - 理論上的人工智慧,能夠進行任何智能任務 - 定義:人工通用智慧,也稱為強人工智慧。 - 特徵: 具備類似人類的智能,能夠理解、學習和應對各種任務。 可以在不同的情境和領域中表現出靈活性,並具備創造性思維。 目前仍然是理論階段,尚未實現。 - **超級人工智慧(Super AI)** - 定義:超級人工智慧。 - 特徵: 智能水平超過人類所有的智慧,能夠在各個領域中表現出卓越的能力。 理論上,超級人工智慧可能具備自我學習和自我改進的能力。 目前仍屬於科幻概念,尚未實現。 ### 4. 人工智慧的主要技術 - **機械學習 (Machine Learning)**: - 基於數據訓練模型 ![機械學習](https://hackmd.io/_uploads/Bk36mLYhA.png) - **深度學習 (Deep Learning)**: - 利用神經網絡進行複雜任務 ![DL](https://hackmd.io/_uploads/BkEkEUYhA.png) - **自然語言處理 (Natural Language Processing)**: - 使計算機理解與產生人類語言 - **計算機視覺 (Computer Vision)**: - 使計算機能夠理解和解釋視覺信息 ### 5. 人工智慧的應用範疇 - **醫療**:診斷輔助、個性化治療 - **交通**:智能導航、無人駕駛 - **金融**:詐騙檢測、投資預測 - **日常生活**:智能助手、推薦系統 ## 機械人三法則 艾西莫夫(Isaac Asimov)被稱為「現代機械人故事之父」,於1942年發表的「轉圈圈」(Runaround)文章中,立下機械人三大法則(Three Laws of Robotics)! - 第一法則、機械人不得傷害人類,或袖手旁觀坐視使人類受到傷害; - 第二法則、除非違背第一法則,機械人必須服從人類的命令; - 第三法則、在不違背第一及第二法則的情況下,機械人必須保護自己。 ## 課程總結 - 總結今日學習的重點,鼓勵學生思考未來人工智慧的發展及其可能帶來的影響。 --- # 第 2 週 :機械學習基礎 ## 課程主題 **機械學習基礎** ## 課程目標 - 理解機械學習的基本概念和分類。 - 了解監督學習和非監督學習的區別。 - 掌握機械學習的主要應用案例。 ## 課程內容 ### 1. 機械學習的定義 - **機械學習 (Machine Learning)** 的基本定義 - 機械學習與傳統編程的區別 ### 2. 機械學習的類型 機械學習的類型 主要分成四種:監督式學習 (Supervised Learning)、非監督式學習 (Unsupervised Learning)、半監督式學習 (Semi-supervised Learning) 以及 強化式學習 (Reinforcement Learning)。 - **監督學習 (Supervised Learning)**: - 定義與特點:監督學習是機械學習中最常見的類型,它需要大量的標記數據(labeled data)來訓練模型。標記數據是指每個數據樣本都包含輸入特徵和對應的輸出標籤。模型通過學習這些標記數據,建立起輸入特徵和輸出標籤之間的關係,以便在新的數據上進行預測。 - 常見演算法: - 線性回歸 (Linear Regression):用於預測連續型變數,例如房價預測。 - 決策樹 (Decision Tree):用於分類和回歸,例如垃圾郵件檢測。 - 支持向量機 (Support Vector Machine):用於分類和回歸,例如圖像識別。 - 應用案例: - 房價預測:根據房屋面積、地點、房齡等特徵預測房價。 - 垃圾郵件檢測:根據郵件內容、發件人地址等特徵判斷郵件是否為垃圾郵件。 ![監督式學習](https://hackmd.io/_uploads/Bk5VSIY3R.png) - **非監督學習 (Unsupervised Learning)**: - 定義與特點:非監督學習不需要標記數據,而是通過分析數據本身的結構和模式來發現隱藏的知識。 - 常見演算法: - K-means 聚類 (K-means Clustering):將數據集劃分為K個不同的群組,每個群組內的數據點彼此相似。 - 主成分分析 (Principal Component Analysis):將高維數據降維,保留數據的主要信息。 - 應用案例: - 客戶細分:根據客戶的購買行為、人口統計等信息將客戶劃分為不同的群組,以便進行更精準的營銷。 - 圖像壓縮:利用主成分分析等技術將圖像數據降維,減少數據量,提高壓縮效率。 ![非監督式學習](https://hackmd.io/_uploads/ryd8B8K20.png) - **半監督式學習 (Semi-supervised Learning)**: - 定義與特點:半監督式學習介於監督學習和非監督學習之間,它使用少量標記數據和大量未標記數據來訓練模型。 - 應用案例: - 文本分類:使用少量標記文本和大量未標記文本來訓練文本分類模型。 ![半監督式學習](https://hackmd.io/_uploads/S1KTbipp0.png) - **強化式學習 (Reinforcement Learning)**: - 定義與特點:強化式學習通過試錯的方式學習,模型通過與環境交互,根據獎勵和懲罰來調整自己的行為,最終達到目標。 - 應用案例: - 遊戲 AI:訓練 AI 在遊戲中學習最佳策略。 - 機器人控制:訓練機器人完成特定任務。 ![強化學習](https://hackmd.io/_uploads/rk7CbipTR.png) ### 3. 機械學習流程 - **數據收集**:獲取和準備數據集 - 目標:收集與任務相關的數據,構建數據集。 - 方法: 從現有數據庫、文件、網站等渠道獲取數據。 使用傳感器、儀器等設備收集數據。 進行問卷調查、訪談等方式收集數據。 - 注意事項: 確保數據的質量和完整性。 數據的數量要足夠,才能訓練出有效的模型。 - **數據預處理**:數據清理和特徵工程 - 目標:對收集到的數據進行清理和轉換,使其適合模型訓練。 - 常見步驟: - 數據清理: - 缺失值處理:刪除、填充、插值等。 - 異常值處理:刪除、替換、轉換等。 - 重複值處理:刪除、合併等。 - 特徵工程: - 特徵選擇:選擇與目標變數相關性高的特徵。 - 特徵轉換:將原始特徵轉換為更適合模型的格式。 - 特徵組合:將多個特徵組合成新的特徵。 - 數據標準化:將數據縮放到統一的範圍,例如 0 到 1 或 -1 到 1。 - 數據降維:將高維數據降維,減少計算量。 - **模型選擇**:選擇合適的演算法 - 目標:根據數據集的特點和任務需求,選擇合適的機械學習演算法。 - 考慮因素: - 數據類型:分類、回歸、聚類等。 - 數據規模:小數據集、大數據集。 - 模型複雜度:簡單模型、複雜模型。 - 任務目標:預測準確性、可解釋性、可擴展性等。 - 常見演算法: - 監督學習:線性回歸、邏輯回歸、決策樹、支持向量機、神經網絡等。 - 非監督學習:K-means 聚類、主成分分析、自組織映射等。 - 強化學習:Q-learning、SARSA 等。 - **模型訓練**:使用訓練數據進行學習 - 目標:使用訓練數據集對所選模型進行訓練,學習數據中的模式。 - 方法: - 將訓練數據集輸入到模型中,調整模型參數。 - 使用優化算法(例如梯度下降)來最小化模型的損失函數。 - 注意事項: - 訓練時間:模型的複雜度和數據量會影響訓練時間。 - 過擬合:模型過於擬合訓練數據,在測試數據上表現不好。 - 欠擬合:模型過於簡單,無法學習到數據中的模式。 - **模型評估**:使用測試數據評估模型效能 - 目標:使用測試數據集評估模型的性能,判斷模型是否有效。 - 常見指標: - 準確率 (Accuracy):分類模型中,預測正確的樣本數佔總樣本數的比例。 - 精確率 (Precision):分類模型中,預測為正類的樣本中,真正為正類的樣本數佔比。 - 召回率 (Recall):分類模型中,真正為正類的樣本中,被預測為正類的樣本數佔比。 - F1 分數 (F1-score):精確率和召回率的調和平均數。 - 均方誤差 (Mean Squared Error):回歸模型中,預測值與真實值之間的平方誤差的平均值。 - 注意事項: - 測試數據:應與訓練數據集獨立,避免過擬合。 - 評估指標:根據任務需求選擇合適的評估指標。 - 模型調優:根據評估結果,調整模型參數或選擇其他模型。 - **小結**: 機械學習流程是一個循環迭代的過程,需要不斷地收集、預處理、訓練和評估模型,才能獲得最佳的性能。 ### 4. 機械學習的挑戰 - 數據質量問題 - 挑戰:機械學習模型的性能高度依賴於數據質量。如果數據存在噪聲、缺失值、不一致性、偏差等問題,會導致模型訓練不充分,甚至產生錯誤的預測結果。 - 常見問題: - 缺失值:數據中缺少某些屬性值。 - 噪聲:數據中存在錯誤或不準確的值。 - 不一致性:數據中存在不同格式或定義的相同屬性。 - 偏差:數據集中某些類別或特徵的樣本比例失衡。 - 解決方案: - 數據清理:對數據進行預處理,例如填充缺失值、去除噪聲、統一格式等。 - 數據增強:通過人工或自動的方式增加數據樣本,例如數據合成、數據複製等。 - 數據平衡:對數據集進行平衡處理,例如過採樣、欠採樣等。 - 過擬合與欠擬合 - 挑戰:過擬合是指模型過於擬合訓練數據,在測試數據上表現不佳。欠擬合是指模型過於簡單,無法學習到數據中的模式,在訓練數據和測試數據上都表現不佳。 - 過擬合原因: - 模型複雜度過高。 - 訓練數據量不足。 - 數據存在噪聲或偏差。 - 欠擬合原因: - 模型複雜度過低。 - 訓練數據量不足。 - 特徵選擇不當。 - 解決方案: - 正則化:在模型訓練過程中添加懲罰項,抑制模型參數過大,避免過擬合。 - 交叉驗證:將數據集劃分為訓練集和驗證集,使用驗證集來評估模型性能,避免過擬合。 - 早停法:在模型訓練過程中,當驗證集上的性能開始下降時,停止訓練,避免過擬合。 - 增加數據量:收集更多數據,可以減輕過擬合和欠擬合問題。 - 調整模型複雜度:根據數據特點選擇合適的模型複雜度。 - 計算資源需求 - 挑戰:機械學習模型的訓練和預測需要大量的計算資源,例如 CPU、GPU、内存等。尤其是在處理大數據集或複雜模型時,計算資源需求會更加高。 - 解決方案: - 雲計算:使用雲平台提供的計算資源,例如 AWS、Azure、Google Cloud 等。 - GPU 加速:使用 GPU 來加速模型訓練和預測。 - 模型壓縮:對模型進行壓縮,減少模型大小和計算量。 - 模型簡化:選擇更簡單的模型,減少計算量。 - **小結**: 數據質量問題、過擬合與欠擬合、計算資源需求是機械學習中常見的挑戰,需要根據具體情況選擇合適的解決方案。 ### 5. 機械學習的應用範疇 - **金融**: - 風險評估:機械學習可以分析大量的金融數據,例如交易記錄、市場數據等,來評估投資風險,幫助投資者做出更明智的決策。 - 信用評分:機械學習可以根據客戶的信用歷史、收入、支出等信息,預測客戶的信用風險,幫助金融機構更準確地評估客戶的信用等級。 - **醫療**: - 疾病預測:機械學習可以分析患者的病史、基因信息、生活習慣等數據,預測患者患病的風險,幫助醫生及早發現和治療疾病。 - 個性化治療:機械學習可以根據患者的基因信息、病史、藥物反應等數據,制定個性化的治療方案,提高治療效果。 - **零售**: - 銷售預測:機械學習可以分析銷售數據、市場趨勢、競爭對手信息等數據,預測商品的銷售量,幫助零售商制定更有效的銷售策略。 - 庫存管理:機械學習可以分析庫存數據、銷售數據、供應鏈信息等數據,優化庫存管理,減少庫存成本。 - **社交媒體**: - 內容推薦:機械學習可以分析用戶的興趣、行為、社交關係等數據,推薦用戶可能感興趣的內容,提高用戶參與度。 - 情感分析:機械學習可以分析文本、語音、表情等數據,識別用戶的情感,幫助企業了解用戶對產品或服務的看法。 - 除了以上列舉的範疇,機械學習還應用於許多其他領域,例如: - 自動駕駛:機械學習可以幫助汽車識別道路、交通標誌、行人等,實現自動駕駛。 - 自然語言處理:機械學習可以幫助機械理解和生成自然語言,例如機械翻譯、語音識別、文本摘要等。 - 圖像識別:機械學習可以幫助機械識別圖像中的物體、場景、人臉等,例如人臉識別、醫學影像分析等。 - 總之,機械學習的應用範疇非常廣泛,隨著技術的發展,機械學習將會在更多領域發揮重要作用。 --- :::spoiler AUTO DRAW https://www.autodraw.com Quick Draw https://quickdraw.withgoogle.com RNN類神經網路繪圖 https://magenta.tensorflow.org/sketch-rnn-demo Scrying Pen https://andymatuschak.org/scrying-pen/ Handwriting with a Neural Net https://distill.pub/2016/handwriting/ duolingo https://www.duolingo.com ::: # 第 3 週 :機械學習演算法 ## 課程主題 **深入了解監督式、非監督式、半監督式、強化學習等常見演算法。** 機器學習(Machine Learning,簡稱ML)是一種使用統計和數學演算法來讓電腦從資料中學習並進行預測和決策的技術。通常應用於如圖像識別、語音識別、自然語言處理和推薦系統等諸多領域。 ### 監督式學習: - 線性回歸(Linear Regression): 用於建立輸入特徵和連續目標變量之間的線性關係模型。 - 邏輯回歸(Logistic Regression): 主要用於二元分類問題,通過將線性回歸結果應用於Sigmoid函數,將輸出轉換為概率。 - 決策樹(Decision Trees): 基於對特徵進行分割,建立分層的決策規則,用於分類和回歸問題。 - 隨機森林(Random Forests): 由多個決策樹組成的集成學習方法,用於處理分類和回歸問題。 - 支持向量機(Support Vector Machines): 通過在特徵空間中找到最優超平面,用於二元分類和多類別分類。 - K最近鄰算法(K-Nearest Neighbors): 基於鄰近點的投票機制,將新數據分類到其K個最近鄰居中的多數類別。 - 朴素貝葉斯(Naive Bayes): 基於貝葉斯定理和特徵之間的獨立假設,用於分類問題。 - 多層感知器(Multilayer Perceptron): 一種人工神經網路模型,由多個神經元組成的多層結構,用於分類和回歸問題。 - 梯度提升樹(Gradient Boosting Trees): 通過連續地擬合殘差來逐步改進模型的預測,用於分類和回歸問題。 - 深度神經網路(Deep Neural Networks): 由多個隱藏層組成的神經網路模型,用於處理複雜的分類和回歸問題。 --- ### 非監督式學習: - 聚類算法(Clustering Algorithms): 用於將數據點分為不同的群集,常見的聚類算法包括K-means、層次聚類、DBSCAN等。 - 主成分分析(Principal Component Analysis,PCA): 用於數據的降維和特徵提取,通過找到數據中的主要方差軸來實現。 - 獨立成分分析(Independent Component Analysis,ICA): 用於從混合信號中分離出獨立的原始信號。 - 混合模型(Mixture Models): 通過將數據建模為多個概率分佈的組合,用於對數據進行建模和分群。 - 自組織映射(Self-Organizing Maps,SOM): 一種神經網路模型,用於將高維數據映射到二維網格上,以便視覺化和分析。 - 強化學習(Reinforcement Learning): 在某種程度上,強化學習也可以被視為一種非監督式學習方法,因為它可以在沒有標記數據的情況下通過與環境的交互學習。 - 關聯規則學習(Association Rule Learning): 用於從大型數據集中發現項目之間的關聯規則,常見的算法有Apriori和FP-growth。 - 特徵學習(Feature Learning): 通過自動學習數據的表示形式或特徵,包括深度學習中的自編碼器和生成對抗網路(GAN)等方法。 --- ### 半監督學習: - 自學習(Self-training): 這是一種簡單的方法,其中利用已標記的數據訓練模型,然後使用該模型對未標記的數據進行預測,將預測結果視為標記,進一步擴充已標記數據集。 - 半監督支持向量機(Semi-Supervised Support Vector Machines): 這是將支持向量機方法擴展到半監督學習的一種技術,通過利用未標記數據的信息來改進分類器的性能。 - 半監督生成模型(Semi-Supervised Generative Models): 這是一類基於生成模型的半監督式學習方法,如半監督性別生成模型、半監督標籤傳播等。 - 語義一致性(Consistency Regularization): 這是一種半監督學習的正則化方法,通過鼓勵模型在相似的輸入上產生相似的預測,以提高模型的泛化能力。 - 多示例學習(Multiple Instance Learning): 這是一種半監督學習的方法,其中每個樣本由多個實例組成,僅有部分實例被標記,從而學習從未標記的實例中推斷出標記。 --- ### 強化學習: - Q-Learning: 這是一種基於價值迭代的強化學習演算法,通過建立狀態-動作價值函數(Q函數)來學習最佳策略。 - SARSA: 與Q-Learning相似,SARSA演算法也是基於價值迭代的,但它在學習過程中使用的是實際執行的動作-狀態對(State-Action-Reward-State-Action) - Deep Q-Network(DQN): 這是一種結合了深度神經網路和Q-Learning的強化學習方法,用於處理高維度的狀態空間。 - Policy Gradient Methods: 這是一類基於策略優化的強化學習方法,通過直接學習策略函數的參數來改進策略。 - Proximal Policy Optimization(PPO): 這是一種基於策略梯度的方法,通過對策略進行近似更新,實現更穩定的策略優化。 - Deep Deterministic Policy Gradient(DDPG): 這是一種結合了深度神經網路和策略梯度的方法,用於處理連續動作空間的問題。 - Actor-Critic Methods: 這是一類基於策略和值函數的方法,通過同時學習策略函數和值函數來改進策略。 - Monte Carlo Tree Search(MCTS): 這是一種搜索和規劃的方法,通常用於處理棋盤遊戲等問題,如AlphaGo。 :::spoiler Scrying Pen https://andymatuschak.org/scrying-pen/ ::: --- # 第 4 週 :深度學習演算法 ## 課程主題 **深入了解深度學習常見演算法。** 深度學習(Deep Learning,簡稱DL)是一種人工智慧的分支,利用多層神經網路模擬人腦的學習方式,可以從大量的數據中學習並提取特徵,進而實現目標任務,其主要優點是在圖像、語音、自然語言等複雜的任務中表現出色。例如,深度學習在圖像識別中的應用可以幫助識別物體,改善人臉識別等技術,語音識別中的應用可以實現語音識別、文字轉語音等功能,自然語言處理中的應用可以幫助機器理解自然語言,自動回答問題等。然而,深度學習仍存在局限性,如需大量的數據和計算資源,複雜模型難以解釋等問題。 ![image](https://hackmd.io/_uploads/S1wIZTzzyl.png) - 脈衝神經網路: 脈衝神經網路(Spiking Neural Networks ,以下簡稱SNN)是一種基於類比神經元模型的神經網路。它具有較簡單的結構和運算,用於處理一些簡單的問題,例如圖像識別和聲音識別等。SNN通常由一個或多個輸入層、一個或多個隱藏層和一個輸出層組成,如下圖。隱藏層中的神經元通常使用傳統的激勵函數,例如sigmoid或tanh。SNN在處理較為簡單的問題時具有較高的效率和準確性。 ![image](https://hackmd.io/_uploads/SJL5-pMMyx.png) ![image](https://hackmd.io/_uploads/ByAQ8pfMyl.png) ![image](https://hackmd.io/_uploads/SyzVPpMG1e.png) - 深度神經網路: 深度神經網路(Deep Neural Network,以下簡稱DNN)是一種前饋式人工神經網路,由多層神經元組成,含有一個輸入層、N個隱藏層及一個輸出層如下圖。它可以通過學習大量數據,進行特徵提取和模式識別等任務。相對於其他機器學習方法,DNN 在影像辨識上的表現更加優秀。傳統的機器學習方法需要手動設計特徵,而DNN 可以在大量數據的基礎上自動提取特徵,大大提高了辨識準確率。此外,DNN 可以應對更複雜的任務,並且具有更好的可擴展性和泛化能力。因此,DNN 在影像辨識等領域中已經成為熱門的研究方向。 ![image](https://hackmd.io/_uploads/rJ3gGaMG1x.png) ![image](https://hackmd.io/_uploads/ByYOUTMzyx.png) ![image](https://hackmd.io/_uploads/SyZHvTzM1g.png) - 卷積神經網路: 卷積神經網路(Convolutional Neural Network,以下簡稱CNN)是一種人工神經網路,可以處理具有網格結構的數據。 CNN主要由卷積層、池化層和全連接層構成如下圖。卷積層通過卷積運算,自動提取影像特徵,並且維持空間信息。池化層可以壓縮影像,降低其維數,同時保留核心特徵。最後,全連接層可以將每個特徵映射到下一層的神經元中,以便提供最終的輸出。這些層結合在一起,形成了一個具有強大特徵提取能力的模型,對於影像識別等任務有著廣泛的應用。CNN在實際應用中的案例,列舉如下: ![image](https://hackmd.io/_uploads/ryoQGaGfyg.png) - 圖像識別: 谷歌的Inception、微軟的ResNet和Facebook的DeepFace等CNN模型可以識別圖片中的物體、人臉和情感等。 - 自然語言處理: 人們使用CNN在NLP領域進行句子分類、語音情感、文本生成和機器翻譯等一系列任務。 - 無人駕駛: Tesla等公司使用CNN作為自駕車上的視覺處理系統,它可以檢測其他車輛、行人和道路標記等。 ![image](https://hackmd.io/_uploads/SkSn8TGM1l.png) ![image](https://hackmd.io/_uploads/H1HvD6Gfkl.png) - 循環神經網路: 循環神經網路(Recurrent Neural Network,以下簡稱RNN)是一種深度學習模型,特別適用於處理序列數據。相比於傳統的前饋神經網路,RNN 具有記憶能力,能夠捕捉序列中的時間相關信息。RNN的主要特點是它能夠將之前的輸出作為當前的輸入,並在序列的不同位置共享權重。這種循環的結構使RNN能夠在處理序列數據時具有一定的記憶能力。舉例來說,當用於自然語言處理時,RNN可以記住之前的詞彙,並根據該記憶生成下一個詞彙。RNN模型通常由一個或多個循環神經單元組成如下圖,其中最常見的是長短期記憶(Long Short-Term Memory,LSTM)和門控循環單元(Gated Recurrent Unit,GRU)等兩種,列舉如下。 ![image](https://hackmd.io/_uploads/Skxim7Tzf1l.png) ![image](https://hackmd.io/_uploads/HkCpUpzfJx.png) ![image](https://hackmd.io/_uploads/By3dv6zfJe.png) - 長短期記憶: 長短期記憶(Long Short-Term Memory,以下簡稱LSTM)是一種循環神經網路(RNN)的變體,如圖2-12,專為解決傳統RNN中的梯度消失和記憶衰減問題而設計。LSTM具有一個稱為細胞狀態(cell state)的結構,它可以在模型中保持長期記憶。該細胞狀態由適應性的門控機制所控制,包括遺忘門、輸入門和輸出門。遺忘門決定如何忘記之前的細胞狀態的一部分,從而過濾不重要的信息。輸入門則控制新信息的加入,並更新細胞狀態。輸出門則根據更新後的細胞狀態,選擇性地輸出信息。LSTM模型的關鍵特點是它能夠有效地處理長期依賴關係。在序列數據中,長期相依性是指過去的信息對當前預測的影響。LSTM通過細胞狀態和門控機制,能夠在長時間跨度上保持和捕捉關鍵的上下文信息。這使得LSTM在自然語言處理、語音識別、機器翻譯等需要對序列數據進行準確建模的任務中表現出色。LSTM模型具有靈活的結構,可以根據不同的應用場景和任務進行擴展和調整。 ![image](https://hackmd.io/_uploads/H1RpXaMGJg.png) ![image](https://hackmd.io/_uploads/BkKxP6fGkg.png) ![image](https://hackmd.io/_uploads/r14iwpGMJl.png) - 門控循環單元: 門控循環單元(Gated Recurrent Unit,以下簡稱GRU)也是一種循環神經網路(RNN)的變體,如圖2-13,被廣泛用於處理序列數據。GRU的核心思想是使用門控機制來控制信息的流動和記憶的更新,同樣解決了傳統RNN中的梯度消失和記憶衰減問題。相比於長短期記憶(LSTM),GRU具有更簡潔的結構。GRU的結構包含了更新門和重置門兩個重要的門控機制。更新門決定要從當前輸入和前一時刻的隱藏狀態中保留多少信息。重置門則控制前一時刻的隱藏狀態對當前輸入的忽略程度。通過這些門控機制,GRU能夠有效地捕捉序列中的長期依賴關係和關鍵的上下文信息。它適用於需要處理長序列和解決時間相依性問題的任務。GRU在自然語言處理、語音識別、機器翻譯等領域獲得了廣泛應用。它的優勢在於結構簡單,訓練速度較快,同時也能取得與LSTM相當的性能。 ![image](https://hackmd.io/_uploads/r1gGN6fGye.png) ![image](https://hackmd.io/_uploads/ryvWP6zf1g.png) ![image](https://hackmd.io/_uploads/Sk-2wpGzkx.png) :::spoiler A Neural Network Playground https://playground.tensorflow.org ![image](https://hackmd.io/_uploads/BkYih6Mfkg.png) ![image](https://hackmd.io/_uploads/B1yGsJmMyx.png) ![image](https://hackmd.io/_uploads/Hk1whJ7Gkl.png) RNN類神經網路繪圖 https://magenta.tensorflow.org/sketch-rnn-demo Handwriting with a Neural Net https://distill.pub/2016/handwriting/ duolingo https://www.duolingo.com ::: # 第 5 週 :深度學習應用 ## 課程主題 **深入了解深度學習常見流程。** ## 深度學習流程圖 ![image](https://hackmd.io/_uploads/HkyXQbnGJe.png) :::spoiler [draw.io](https://draw.io) ::: ## 深度學習資料數據比例 ![image](https://hackmd.io/_uploads/SJ9Dmbnf1e.png) ## 深度學習常用公開資料集 1. MNIST (Modified National Institute of Standards and Technology Database) - 簡介: MNIST 是最著名的手寫數字識別數據集,由 0 到 9 的 10 個數字組成,每個圖像大小為 28x28 像素,黑白圖像。 - 用途: 適合用於圖像分類和深度學習基礎模型的入門練習。 - 特點: 訓練集 60,000 張,測試集 10,000 張。 2. CIFAR-10/100 (Canadian Institute For Advanced Research) - 簡介: CIFAR-10 包含 10 類小型彩色圖片,每張圖像為 32x32 像素,共 60,000 張圖片;CIFAR-100 將 CIFAR-10 的類別擴展為 100 類。 - 用途: 圖像分類任務,適合中小型深度學習模型測試。 - 特點: 每類圖片數量均等,標籤清晰。 3. ImageNet - 簡介: ImageNet 是一個大規模的圖像數據集,包含 1,000 個類別,共 1400 萬張圖片。 - 用途: 圖像分類、物體檢測等高階任務。許多深度學習模型(如 AlexNet、ResNet)在此數據集上進行訓練和測試。 - 特點: 提供豐富的標籤數據,適合用於遷移學習。 4. COCO (Common Objects in Context) - 簡介: COCO 是一個大規模圖像數據集,包含物體檢測、分割、標記等多種標註信息,涵蓋 80 類物體。 - 用途: 圖像分割、目標檢測、場景理解等任務。 - 特點: 包括高質量的圖像,具有上下文相關的標籤。 5. VOC (PASCAL Visual Object Classes) - 簡介: VOC 數據集包含多類圖片,標註信息包括物體邊界框(Bounding Box)和物體類別標籤。 - 用途: 目標檢測和分類任務。 - 特點: 常用於目標檢測基準測試。 6. IMDB Reviews Dataset - 簡介: 這是一個文本數據集,包含 50,000 條影評,分為正面和負面兩類,常用於自然語言處理中的情感分析任務。 - 用途: 情感分析、文本分類等任務。 - 特點: 簡單易用,適合初學者練習 NLP。 7. TIMIT Acoustic-Phonetic Continuous Speech Corpus - 簡介: 一個語音數據集,包含來自不同地區口音的錄音及其對應的轉錄文本。 - 用途: 用於語音識別、語音生成任務。 - 特點: 涵蓋多樣的語音特徵,適合聲學模型訓練。 8. Open Images Dataset - 簡介: 包含超過 900 萬張圖片及其對應的標籤、邊界框和分割標注。 - 用途: 圖像分類、目標檢測和分割任務。 - 特點: 類別數量多,標籤質量高。 9. SQuAD (Stanford Question Answering Dataset) - 簡介: SQuAD 是一個用於機器閱讀理解和問答系統的數據集,包含文章段落和相關問題,答案可以直接從段落中提取。 - 用途: 問答系統、自然語言理解。 - 特點: 以挑戰性和實用性聞名,適合高階 NLP 任務。 10. LibriSpeech - 簡介: 一個大型語音數據集,包含超過 1,000 小時的語音數據及其文字轉錄,主要來自公開領域的有聲書。 - 用途: 語音識別、語音生成任務。 - 特點: 數據豐富,適合用於訓練大型語音模型。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up