深度學習及pytorch基礎

TracyXu發表於2020-07-25

【任務一】視訊學習心得及問題總結

根據下面三個視訊的學習內容,寫一個總結,最後列出沒有學明白的問題。

【任務二】程式碼練習

在谷歌 Colab 上完成程式碼練習中的 2.1、2.2、2.3、2.4 節,關鍵步驟截圖,並附一些自己的想法和解讀。

【任務三】進階練習

在谷歌 Colab 上完成貓狗大戰的VGG模型的遷移學習,關鍵步驟截圖,並附一些自己想法和解讀。

在該程式碼的基礎上,下載AI研習社“貓狗大戰”比賽的測試集,利用fine-tune的VGG模型進行測試,按照比賽規定的格式輸出,上傳結果線上評測。將線上評測結果截圖,及實現程式碼發在部落格。同時,分析使用哪些技術可以進一步提高分類準確率。

 

1. 視訊學習

視訊學習包括兩章內容:

1.1 緒論

(下載地址:https://www.jianguoyun.com/p/DVJarjYQrKKIBhi8la0D)

  • 從專家系統到機器學習
  • 從傳統機器學習到深度學習
  • 深度學習的能與不能

1.2 深度學習概述

(下載地址:https://www.jianguoyun.com/p/DVlvT3cQrKKIBhi_la0D)

  • 淺層神經網路:生物神經元到單層感知器,多層感知器,反向傳播和梯度消失
  • 神經網路到深度學習:逐層預訓練,自編碼器和受限玻爾茲曼機

1.3 pytorch 基礎

(下載地址:https://www.jianguoyun.com/p/DYkxgJcQrKKIBhi5lq0D)

所有視訊下載連結2020年7月25日自動過期,請抓緊時間下載。

 

【任務一解答】視訊學習心得及問題總結

1.1緒論-人工智慧和機器學習概述

(1)人工智慧(Artificial Intelligence)

       使一部機器像人一樣進行感知、認知、決策、執行的人工程式或系統。

 

(2)圖靈測試

       假設在一個封閉的空間裡一個機器做了一個任務,在封閉空間之外有一個人,如果這個人判斷不了在封閉空間裡的任務是由一個人還是一個機器完成的,那就說這個機器通過了圖靈測試。

 

(3)人工智慧的三個層面

       計算智慧(能存會算)

       感知智慧(能聽會說、能看會認)

       認知智慧(能理解,會思考)

 

(4)實現人工智慧需要模仿人的智慧方式,人的智慧方式大概有兩種:邏輯演繹和歸納總結

深度學習及pytorch基礎

 

   (5)知識工程/專家系統

       根據專家定義的知識和經驗,進行推理和判斷,從而模擬人類專家的決策過程來解決問題。

 

 

 (6)機器學習的應用技術領域

       計算機視覺,語音,自然語言處理

 

 (7)機器學習的定義

 

(8)機器學習方法都可以從以下三個要素去理解:

 

(9)模型分類

 

(10)模型分類之根據資料標記分類:監督學習、無監督學習、半監督學習、強化學習

 

 

(11)模型分類之根據資料分佈分類:引數模型,非引數模型

 

(12)模型分類之根據建模物件分類:判別模型,生成模型

 

 (13)標記資料不夠用時,可採用兩種模型:半監督模型(部分標記),生成模型(生成一些資料)

 

1.2緒論-深度學習概述

(1)人工智慧>機器學習>深度學習

 

 (2)傳統機器學習:人工設計特徵

 

 (3)深度學習又稱為表示學習

 

 (4)深度學習的發展有三個要素:演算法(學術界),算力(工業界),資料(工業界)

 

 (5)神經網路結構的發展

 

(6)深度學習的“不能”

       a.演算法輸出不穩定,容易被“攻擊”

       b.模型複雜度高,難以糾錯和除錯

       c.模型層級複合程度高,引數不透明

       d.端到端訓練方式對資料依賴性強,模型增量性差

       e.專注直觀感知類問題,對開放性推理問題無能為力

       f.人類知識無法有效引入進行監督,機器偏見難以避免

 

2.1 神經網路基礎 - 淺層神經網路

(1)為什麼需要啟用函式?

       啟用函式很多情況下我們需要非線性函式,從而讓整個神經網路具有非線性的擬合能力。

 

(2)啟用函式舉例

 

 

 

2. 程式碼練習

程式碼練習需要使用谷歌的 Colab,它是一個 Jupyter 筆記本環境,已經預設安裝好 pytorch,不需要進行任何設定就可以使用,並且完全在雲端執行。使用方法可以參考 Rogan 的部落格:https://www.cnblogs.com/lfri/p/10471852.html 國內目前無法訪問 colab,可以安裝 Ghelper: http://googlehelper.net/

2.1 影像處理基本練習

這部分內容包括:理解影像型別,進行一些基本的影像分割操作。程式碼我都寫在了一個 JupyterNotebook 裡面,地址為:https://github.com/OUCTheoryGroup/colab_demo/blob/master/01_Image_Processing.ipynb

要求: 把程式碼輸入 colab,線上執行觀察效果。

2.2 pytorch 基礎練習

基礎練習部分包括 pytorch 基礎操作,連結:https://github.com/OUCTheoryGroup/colab_demo/blob/master/02_Pytorch_Basic.ipynb

要求: 把程式碼輸入 colab,線上執行觀察效果。

2.3 螺旋資料分類

程式碼連結:https://github.com/OUCTheoryGroup/colab_demo/blob/master/03_Spiral_Classification.ipynb

要求: 把程式碼輸入 colab,線上執行觀察效果

備註:詳細說明可參考 https://atcold.github.io/pytorch-Deep-Learning/zh/week02/02-3/ 中英文字幕的視訊講解在B站:https://www.bilibili.com/video/BV1gV411o7AD?p=4 有精力的同學可以看看

2.4 迴歸分析

程式碼連結:https://github.com/OUCTheoryGroup/colab_demo/blob/master/04_Regression.ipynb

要求: 把程式碼輸入 colab,線上執行觀察效果

備註: 詳細說明可參考 https://atcold.github.io/pytorch-Deep-Learning/zh/week02/02-3/ 中英文字幕的視訊講解在B站:https://www.bilibili.com/video/BV1gV411o7AD?p=4 有精力的同學可以看看

 

3. 進階練習

主要內容包括: 遷移學習、影像分類、VGG模型

notebook連結:https://github.com/OUCTheoryGroup/colab_demo/blob/master/05_04_Transfer_VGG_for_dogs_vs_cats.ipynb

這部分為 Kaggle 於 2013 年舉辦的貓狗大戰競賽,使用在 ImageNet 上預訓練的 VGG 網路進行測試。因為原網路的分類結果是1000類,所以這裡進行遷移學習,對原網路進行 fine-tune (即固定前面若干層,作為特徵提取器,只重新訓練最後兩層)。

仔細研讀AI研習社貓狗大戰賽題的要求:https://god.yanxishe.com/41 (目前比賽已經結束,但仍可做為練習賽每天提交測試結果)

下載比賽的測試集(包含2000張圖片),利用fine-tune的VGG模型進行測試,按照比賽規定的格式輸出,上傳結果評測(練習賽每天僅可評測5次)。我已進行測試,VGG模型訓練 1 個 epoch 的準確率約為 96.1 %。

大家可以思考,如何改進當前模型,可以進一步提高分類準確率。有了這些技術積累,可以較好的應對未來的 kaggle 競賽。

相關文章