KSLab_M1
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 機器學習基本概念 ## Source - 應⽤機器學習於Python C1 - 大數據分析與資料探勘 W5 - [Website](https://medium.com/data-science/clearly-explained-how-machine-learning-differs-from-statistical-modeling-967f2c5a9cfd) ## 課堂投影片與練習 - [ ] **學習目標:** 1. **理解機器學習的定義與核心概念**:什麼是機器學習?它為什麼重要? 2. **認識機器學習的四大種類**:監督式、非監督式、半監督式、增強式學習。 3. **了解機器學習的實作流程**: - 機器學習不只是「寫程式」,而是一個有步驟的過程,包含: - **資料準備**:整理與清理資料(你們已經學會用 Pandas) - **特徵工程**:挑選或製造對預測有用的欄位 - **建立模型**:選擇演算法並訓練模型(如線性回歸、決策樹等) - **評估與調整**:測試模型表現並進行優化 - **實際應用**:使用模型做分類或預測,如判斷顧客是否會流失 --- - [ ] **機器學習的定義:讓電腦從經驗中學習** <!-- * **核心定義**:機器學習是一種電腦程式利用數據自主學習並優化性能的「科學與藝術」。 --> * **學術解釋**:用更學術一點的說法,一個程式如果能透過經驗 (Experience E) 來執行某項任務 (Task T),並透過績效衡量 (Performance Measure P) 來評估表現,且其在任務 T 上的表現能透過經驗 E 得到提升,就被認為是一個具備學習能力的機器學習系統 * **白話解釋**:就是一個程式或模式,能夠根據過去的**經驗(資料)**進行學習,以完成特定任務,並且有一個**效能評估 (performance measure)** 去評估這些任務做得如何。倘若這些效能評估可以透過利用過往資料來提升的話,稱之為機器學習。 * **機器學習的目標**:透過大量的訓練資料,經由演算法建構出一個**假說 (hypothesis g)**,這個假說希望能**近似於真實的目標 (target f)**,而目標 f 指的是變數 X 和 Y 之間的未知關係。例如,房屋價格 (Y) 與房屋面積、地段 (X) 之間的關係是未知的,機器學習會嘗試建立一個模型 (g) 來近似它。 --- * **舉例**:想像你的電子郵件過濾器。 * **任務 (T)**:將信件分類為「垃圾郵件」或「非垃圾郵件」。 * **經驗 (E)**:透過觀察大量的信件(有些你標註為垃圾,有些不是)。 * **績效 (P)**:程式最終能正確分類垃圾郵件的數量(準確度)。 * 透過不斷的「經驗」(你持續標註信件),程式會越來越準確地過濾垃圾郵件,這就是機器學習。 --- - [ ] **為什麼機器學習如此熱門?** * 機器學習之所以受到廣泛關注,主要有以下幾個原因: * **成本逐漸下降**:計算資源與數據儲存成本降低。 * **電腦運算能力顯著增強**:硬體技術的進步,特別是CPU效能提升。 * **資訊量大幅增加**:進入大數據時代,資料量爆炸式成長。 --- * **機器學習能解決人類難以處理的問題**: * **高頻率的大量運算**:例如,在極短時間內(10-20秒)判斷股票買賣。 * **從多維度的巨量資料中進行分析**:處理人類難以理解的複雜數據。 * **回答人類無法回答的問題**:例如黑洞探索、火星降落等人類沒有親身經驗的問題。 * **解決人類無法輕易定義方法的問題**:例如多樣化的語音辨識(如非洲方言),人類難以為全世界所有語言定義辨識規則。 * **因應多變性並提供個人化服務**:例如推斷個人喜好,這類問題人類難以輕易推論。 --- - [ ] **機器學習是萬能的嗎?** * **機器學習的限制**:儘管功能強大,但機器學習並非萬能。 * **結果難以解釋**:許多機器學習模型對人類而言是「黑盒子」,其探索過程和結果難以被人理解。 * **受限於資料稀疏或不足**:機器需要經驗來建構模型,如果相關資料不足,其表現將會不佳。 * **無法處理規則持續變化的情境**:例如股市預測,如果背後的規則不斷變化,機器學習到的規則很難適用於未來,甚至可能導致損失。 * **機器學習的回饋或答案**:會根據模型訓練者一開始給予的答案和類別來反應。如果從未提供某種類別的資料,機器將無法辨識該類別(例如,你只給貓狗照片訓練模型,放一張豬的照片進去,它只會判斷是貓或狗,而不是豬)。 --- * **適合運用機器學習的時機**: * **存在潛在規則,但人類難以或需耗費大量時間判斷**。 * **無法或難以透過傳統程式碼(例如 If-Else 規則)來定義所有問題解決方法時**,機器學習可以幫助找出一些相關或未知的規則。 * **可以提供規則學習的資料時**:機器學習需要有足夠的輸入資料才能進行學習。 --- - [ ] **課中練習一:機器學習概念辨識** 1. **任務**:請閱讀以下情境,並嘗試辨識其中的 **任務 (Task T)**、**經驗 (Experience E)** 和 **績效衡量 (Performance Measure P)**。 * **情境**:一家電商平台希望透過機器學習來推薦商品給使用者。當使用者瀏覽商品後,系統會推薦一些他可能喜歡的商品。如果使用者點擊了推薦的商品,系統會認為推薦成功。透過不斷記錄使用者的瀏覽行為和點擊結果,推薦系統的準確度越來越高。 2. **思考與回答**: * **任務 (T)** 是什麼? * **經驗 (E)** 是什麼? * **績效衡量 (P)** 是什麼? --- - [ ] **機器學習與相關領域的關係** ![image](https://hackmd.io/_uploads/HkFjKBztC.png =300x) * **機器學習與人工智慧 (AI)**: * **人工智慧 (AI)** 是一個更廣泛的概念,只要程式能表現出智慧行為,即使透過大量規則建構,也可稱為 AI。 * **機器學習 (ML)** 是**人工智慧的一個子學科**,或者說是**實現人工智慧的一種途徑**,主要透過資料學習來提升效能表現。 * 可以把 AI 想成是一個大目標(讓機器像人一樣聰明),ML 則是達成這個目標的其中一種強大工具。 --- * **機器學習與深度學習 (Deep Learning, DL)**: * **深度學習 (DL)** 是**機器學習的一部分**。 * 早期深度學習因速度問題不普及,但近年來由於 **CPU 硬體效能顯著提升**,克服了速度問題並取得顯著成果,因此成為獨立的熱門領域。 * **深度學習的特色**:它**捨棄了人類知識做的特徵萃取**,而是讓多層結構的神經網路從大量的資料中**自行學習如何進行特徵擷取**。 * **深度學習特別適用於**: * **沒有標準答案的特徵工程**。 * **非結構化資料及序列資料**,在圖像識別、語音識別等領域取得了突破性進展。 * **資料集龐大時**,表現會比傳統機器學習好。 * 機器學習與深度學習的差異 ![image](https://hackmd.io/_uploads/B1SgsSfFR.png =500x) --- - [ ] **機器學習於資料科學領域中的腳色** ![image](https://hackmd.io/_uploads/BJEb4UB7el.png =500x) * 數據科學是一個跨學科領域 * 它結合了統計學、計算機科學和領域專業知識 * 機器學習是數據科學中的一個重要工具 * 數據科學家經常使用機器學習來分析大量數據並得出見解 --- * **圖樣識別(Pattern Recognition)**: * 圖樣識別是機器學習的關鍵應用來源之一,強調如何讓電腦從資料中自動辨認出**規律**或**模式**,也可以說從資料中找出**相似性**與**分類依據**。 * **例子:** - 手寫數字辨識(輸入 8,模型判斷是數字 8) - 影像分類(判斷圖片是狗還是貓) - 醫學影像診斷(從X光判斷是否有腫瘤) * **統計學 (Statistics)**: * 機器學習和統計學是**比鄰的好朋友**。機器學習的許多基本觀念來自於統計學。 * **統計學**強調數學證明、推導、假設檢定和解釋性。 * **機器學習**雖然模式背後也使用許多統計概念,但它更**偏重於經驗法則及結果論**,主要依照預測結果的好壞(performance)來判斷模型優劣,較不強調檢定與假設。 * **資料探勘 (Data Mining, DM)**: * 如果機器學習所找到的「近似目標的假說」與資料探勘要尋找的「有趣的特性」是相同的,那麼機器學習等同於資料探勘。 * 如果兩者相關,則資料探勘可以幫助機器學習,反之亦然。 * 傳統資料探勘也著重於在大型資料庫中進行高效能運算。 --- - [ ] **機器學習的四大種類** * 機器學習和人類學習的方式十分相似。要讓機器像人一樣具有學習能力,通常會先進行資料的「分類」或「分群」,才能進一步分析、理解、判斷並採取行動。 * 機器學習的種類主要可以分為四種,我們將逐一深入探討: 1. **監督式學習 (Supervised Learning)** 2. **非監督式學習 (Unsupervised Learning)** 3. **半監督式學習 (Semi-supervised Learning)** 4. **增強式學習 (Reinforcement Learning)** --- - [ ] **監督式學習 (Supervised Learning)** * **特性**: * 所有資料都已被**標註 (labeled)**,就像是我們提供了「標準答案」給機器。 * 機器透過這些標籤學習資料的特徵,並進行預測或分類。 * 對電腦來說是最簡單,但對人類而言需要大量人工標註,最為辛苦。 * **舉例**:如果你要訓練機器辨識貓狗,你需要準備100張貓和100張狗的照片,並且每張照片都**明確標註**「這是貓」或「這是狗」。 * **輸入與輸出**: * **輸入**:**有標籤的資料**。 * **輸出**:通常用於**分類 (Classification)** 和**迴歸 (Regression) 預測**。 --- * **應用案例**: * **分類 (Classification)**:預測離散的類別。 * 判斷是否為垃圾信件(二元分類)。 * 判斷是否罹患疾病(二元分類)。 * 生物品種分類(如:根據花瓣和花萼寬度判斷鳶尾花品種)。 * 硬幣分類、衣物尺寸分類(多元分類)。 * **迴歸 (Regression)**:預測連續的數值。 * 預測房屋價格(基於面積、地段、屋齡等)。 * 預測住宅電力需求量(基於國民所得、電價、人口數、氣候等)。 * 目的是使用過去資料,建立解釋變數與被解釋變數的關係式,以預測被解釋變數。 --- - [ ] **非監督式學習 (Unsupervised Learning)** * **特性**: * 所有資料**沒有標註**,機器必須自行尋找資料的特徵並進行分類或分群。 * 對人類來說最容易(不需人工標註),但機器辨識的**誤差可能較大**。 * **舉例**:你提供100張貓狗照片,但**不告訴機器哪些是貓哪些是狗**。機器會嘗試自動從這些照片中找出相似的特徵(例如,將長毛且有鬍鬚的歸為一組,短毛且有大耳朵的歸為另一組)。 * **輸入與輸出**: * **輸入**:**大量無標籤的資料**。 * **輸出**:通常用於**分群 (Clustering)** 和**降維 (Dimensionality Reduction)**。 --- * **應用案例**: * **顧客分群議題**:例如,將電商平台的顧客,根據他們的購買行為和瀏覽歷史,自動分成幾種類型(例如:高消費群、促銷敏感群、只看不買群),以便進行精準行銷。 --- - [ ] **半監督式學習 (Semi-supervised Learning)** * **特性**: * 結合監督式和非監督式學習的優點。 * 只對**少部分資料進行標註**,電腦透過有標註的資料找出特徵,再對其他沒有標註的資料進行分類。 * 在大數據時代,很難對所有資料進行全面標註,這種方法能解決這個困難。 * 結果通常比非監督式學習更精準。 * **舉例**:你有200張貓狗照片,但你只標註了其中10張貓和10張狗的照片。機器會先從這20張已標註的照片中學習特徵,然後嘗試對剩下的180張未標註照片進行分類。 * **輸入與輸出**: * **輸入**:**部分標籤資料**。 * **輸出**:與監督式學習類似,用於**分類與迴歸預測**。 --- * **應用案例**: * **垃圾信件偵測**:你不需要手動標註每一封垃圾信件,只要標註少量已知的垃圾信件,系統就能學習並偵測出其他的垃圾信件。 * **Facebook 照片標註朋友姓名**:Facebook會根據你標註過的朋友,自動推薦照片中的其他人可能是誰。 --- - [ ] **增強式學習 (Reinforcement Learning)** * **特性**: * 機器透過**每一次與環境的互動來學習**。 * 沒有預設的正確答案,而是透過**獎勵 (reward)** 和**懲罰 (penalty)** 的累積來判斷行為的正確性。 * 機器會根據成功與失敗的經驗不斷調整和學習,就像一個不斷嘗試的開創者。 * **舉例**:想像一個機器人學習走路。它一開始可能跌倒,這會得到「懲罰」。當它成功走一步,會得到「獎勵」。透過無數次的跌倒與站起,它最終學會如何穩定地走路。 * **輸入與輸出**: * 它的輸入和輸出緊密關聯,**上一輪的輸出(是否成功或出錯)會改變學習模式,影響下一輪的預測**。 --- * **應用案例**: * **高度創意性的專案**:例如 **AlphaGo**(下圍棋)和**自駕車**。這些專案的複雜性使得人類難以預先規劃所有可能的情況和規則,增強式學習能讓機器在不斷試錯中找到最佳策略。 * **遊戲AI**:讓AI在遊戲中學習如何取得高分。 --- - [ ] **課中練習二:機器學習種類判斷** 1. **任務**:請閱讀以下情境,判斷最適合應用哪一種機器學習類型 (監督式、非監督式、半監督式、增強式),並簡要說明原因。 * **情境一**:一家零售商擁有大量顧客的消費紀錄,但這些紀錄沒有任何標籤。他們希望從中找出不同類型的顧客群,以便進行分眾行銷。 * **情境二**:你正在開發一個自動駕駛系統,汽車需要學會在複雜的交通環境中安全駕駛,避開障礙物,並根據即時路況做出決策。 * **情境三**:你收集了大量的植物圖片,其中只有少部分圖片有專業人員標註了植物的名稱(例如:玫瑰、鬱金香),大部分圖片都沒有標籤。你希望訓練一個模型,能識別新的植物圖片。 * **情境四**:一個醫院希望開發一個模型,能根據病患的各項檢查數據(例如:血壓、血糖、體重),判斷病患是否罹患某種疾病。他們有大量的歷史病患數據,且這些數據都明確記錄了病患是否罹患該疾病。 2. **提示**:回想不同種類機器學習的**資料特性(是否有標籤)**和**應用目的**。 --- - [ ] **機器學習的學習步驟**==可一頁用Napkin,另一頁用文字補述== * 機器學習的運作流程可以簡化為以下幾個核心步驟: 1. **訓練資料 (Training Data) 準備**: * 收集大量的原始資料。 * 盡可能包含所有你希望模型能學習到的種類。 * 例如:如果要訓練模型辨識貓狗,就必須收集大量的貓和狗的照片。 2. **特徵擷取 (Feature Extraction)**: * 從原始資料中提煉出對學習有用的、能夠區分不同類別的「特徵」。 * 例如:貓狗的形狀、花紋、耳朵形狀、聲音種類等。 * 在深度學習中,這一部分可以由神經網路自行學習。 3. **模型建構 (Model Building)**: * 使用機器學習演算法(例如我們之後會學到的K-Nearest Neighbors, Decision Tree等),從提取出的特徵資料中建構出一個「模型」。 * 這個模型就是我們之前提到的「假說g」,它會學習資料背後的規則。 4. **產生答案 (Answer) / 預測**: * 利用建構好的模型對新的、未見過的資料進行判斷或預測。 * 例如:給模型一張新的圖片,它會判斷是貓還是狗。 * **重要提醒**:機器學習模型的反饋/答案,是根據**訓練者一開始給予的答案和類別來反應的**。如果模型從未在訓練時見過某種類別的資料,它將無法識別該類別。 --- - [ ] **如何評估機器學習模型的好壞?** * 為了客觀地評估機器學習模型的品質和預測能力,我們通常會將收集到的**資料集分割**為兩大部分: 1. **訓練資料集 (Training Dataset)**: * 用於**建構**和**訓練**機器學習模型。 * 通常佔全部資料的 **70% 或 80%**。 * 模型會從這些資料中學習規則和模式。 2. **測試資料集 (Testing Dataset)**: * 用於**評估**模型訓練完成後的**準確率**和**泛化能力**(指模型對未見過資料的預測能力)。 * 通常佔全部資料的 **20% 或 30%**。 * 我們會用模型在測試資料集上的「預測值」與「實際值」進行比對,計算誤差,來評估模型品質。 --- * **常用的資料分割比例**: * 70% 訓練資料 vs. 30% 測試資料 * 75% 訓練資料 vs. 25% 測試資料 * 80% 訓練資料 vs. 20% 測試資料 * **Python 工具**:在 Python 中,我們可以使用 **Scikit-Learn (SKlearn)** 套件中的 `sklearn.model_selection.train_test_split()` 函式來輕鬆完成資料分割。 * `from sklearn.model_selection import train_test_split` --- - [ ] **機器學習的利器:Scikit-Learn (SKlearn)** * **什麼是 SKlearn?** * **Scikit-Learn (SKlearn)** 是一個非常流行且功能強大的機器學習套件。 * 它已經內建在我們常用的 **Anaconda** 環境中,可以直接使用。 * SKlearn 包含了許多知名的機器學習模型,並提供了一些小型資料集供我們練習使用。 --- * **SKlearn 的主要功能分類**: * 在 SKlearn 的官方網站上,機器學習功能被分為六大塊: 1. **監督式學習**: * 分類 (Classification) * 迴歸 (Regression) 2. **非監督式學習**: * 分群 (Clustering) * 維度降低 (Dimensionality Reduction) 3. **其他重要功能**: * 模型選擇 (Model Selection) * 資料前處理 (Preprocess) * **網址**:https://scikit-learn.org/stable/ --- - [ ] **課中練習三:資料分割與模型限制** 1. **任務**:假設你收集了一批包含貓、狗、鳥三種動物圖片的資料集,總共有 1000 張圖片。 * **問題一**:如果你打算使用這些資料來訓練一個機器學習模型,並評估其效能,你通常會如何將這些資料進行分割?請說明訓練資料集和測試資料集的**大約比例**及**各自的目的**。 * **問題二**:如果你訓練完的模型,將一張「魚」的照片輸入進去,你預期模型會輸出什麼結果?為什麼? 2. **思考與回答**: * 問題一:訓練資料集與測試資料集的比例和目的? * 問題二:輸入魚的照片預期的結果是什麼?原因? 3. **提示**: * 回想我們如何評估模型品質以及訓練資料和測試資料的用途。 * 回顧機器學習模型對未見過資料的反應。 --- - [ ] **今日課程總結與未來展望** * **今日重點回顧**: * 我們學習了**機器學習的定義**:透過經驗 E 執行任務 T 並衡量績效 P。 * 了解了機器學習的四大**種類**:監督式、非監督式、半監督式、增強式學習,以及它們的特性與應用。 * 認識了機器學習的**基本步驟**:從資料準備、特徵擷取、模型建構到產生答案。 * 理解了**資料分割**的重要性,以及常用工具 **Scikit-Learn**。 * **接下來**: * 我們將會更深入地學習不同的機器學習演算法,並開始動手使用 Python 和 Scikit-Learn 進行實作。 * 請大家務必多加練習,動手做才能真正掌握機器學習的奧秘! * **問答時間**: * 大家有任何疑問或想討論的地方嗎?

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    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

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully