Upgrade to Pro — share decks privately, control downloads, hide ads and more …

用 TensorFlow 2 快速進入深度學習的世界

用 TensorFlow 2 快速進入深度學習的世界

這次的分享, 很快為大家介紹深度學習的概念, 並且體會一下用 Python 實現深度學習是多麼容易的事。我們也會討論, 既然都這麼容易了, 一個 AI 的工程師還有什麼價值呢? 最後我們會推薦一些方向, 做為未來更深入學習的參考。

[email protected]
PRO

July 27, 2020
Tweet

Other Decks in Technology

Transcript

  1. 用 TensorFlow 2
    快速進入深度學習
    的世界
    蔡炎龍
    政治大學應用數學系
    Kaohsiung.py

    View Slide

  2. TensorFlow 2 度學習 2
    程式碼
    http://bit.ly/yenlung
    今天的在 nccu-jupyter-math > 基本神經網路

    View Slide

  3. TensorFlow 2 度學習 3
    關於我
    美國爾灣加州大學 (UC Irvine) 數學博士
    政治大學應用數學系副教授
    代數幾何

    View Slide

  4. TensorFlow 2 度學習 4
    高中時代就寫了程式賣錢...

    View Slide

  5. TensorFlow 2 度學習 5
    尋找一個簡單易學的程式語言
    那時電腦打開都有個可愛的程式語言
    BASIC

    View Slide

  6. TensorFlow 2 度學習 6
    遇見 Python
    我想找一個可以取代 BASIC 的程式語言, 最後終於是找到
    Python

    View Slide

  7. TensorFlow 2 度學習 7
    今生唯一的一次捐錢給程式語言
    交了 50 美
    元的年費!
    2000 年時, Python Software Activity 只有 271 人

    View Slide

  8. TensorFlow 2 度學習 8
    寫了一本 Python 的書
    少年Py的大冒險
    成為Python數據分析達人的第一門課
    作者: 蔡炎龍, 季佳琪, 陳先灝
    出版: 全華圖書

    View Slide

  9. TensorFlow 2 度學習 9
    我和 AI 有什麼關係呢?
    碩士班就是研究神經網路的。

    View Slide

  10. TensorFlow 2 度學習 10
    近年介紹主題都是神度學習
    多次在學界、業界介紹 Python
    及人工智慧。

    View Slide

  11. TensorFlow 2 度學習 11
    最適切的形容大概是不務正業
    【珊蒂微AI】專訪

    View Slide

  12. TensorFlow 2 度學習 12
    和多位台灣一流學者專家寫了一本給高中生的 AI 書
    鴻海《人工智慧導論》
    (給高中生的 AI 補充教
    材) 前兩章主筆。

    View Slide

  13. TensorFlow 2 度學習 13
    安裝 Anaconda
    冒險01

    View Slide

  14. TensorFlow 2 度學習 14
    找到 Anaconda Download 點
    https://www.anaconda.com/products/individual
    也可以 Google 搜尋 Anaconda

    View Slide

  15. TensorFlow 2 度學習 15
    選擇適合你的 OS

    View Slide

  16. TensorFlow 2 度學習 16
    找到你適合的終端機
    我們來試試剛開始可能有點可怕的終端機。
    > Windows 使用者請用
    Anaconda Prompt

    View Slide

  17. TensorFlow 2 度學習 17
    安裝 TensorFlow
    > conda install tensorflow

    View Slide

  18. TensorFlow 2 度學習 18
    安裝 TensorFlow GPU 版
    > conda install Tensorflow-gpu
    要先更新 NVIDIA GPU 顯卡 Driver

    View Slide

  19. TensorFlow 2 度學習 19
    cd 進入你的工作資料夾
    > cd

    View Slide

  20. TensorFlow 2 度學習 20
    拖拉神技出現工作資料夾
    用拖拉的方式,可以找到完整路徑!

    View Slide

  21. TensorFlow 2 度學習 21
    用 Colab 免安裝
    冒險02

    View Slide

  22. TensorFlow 2 度學習 22
    其實也可以直接用 Colab
    Colab
    不用安裝, 用 Google 帳號登入, 免費
    使用 GPU 或 TPU。

    View Slide

  23. TensorFlow 2 度學習 23
    檢查 TensorFlow 版本
    檢查 TensorFlow 版本 (現在應該預設就是 2.x)

    View Slide

  24. TensorFlow 2 度學習 24
    打開 GPU
    在編輯 > 筆記本設定中,
    打開 GPU 或 TPU。

    View Slide

  25. TensorFlow 2 度學習 25
    Mount 你的 Google Drive, 存取資料
    要點網址 copy 金鑰
    你會需要點網址, 選擇你的 Google 帳號授
    權, 然後 copy 出現的金鑰, 回來貼在這裡。

    View Slide

  26. TensorFlow 2 度學習 26
    進入你的資料夾
    你可以 cd 進入任何你 Colab 的資料夾。前面的部份我們沒有耍可愛,
    Google 真的把你的 Google Drive 家目錄叫 My Drive。

    View Slide

  27. TensorFlow 2 度學習 27
    極速深度學習入門
    冒險03

    View Slide

  28. TensorFlow 2 度學習 28
    把我們的問題, 化為函數
    f 6
    把我們的問題, 化為函數。比如說我們想做手寫辨識, 就是輸入一個掃描
    的手寫數字, 輸入電腦, 希望電腦輸出這個數字是什麼。

    View Slide

  29. TensorFlow 2 度學習 29
    One-hot encoding
    f
    我們在做分類問題時, 常會用 one-hot encoding。
    0
    0
    0
    0
    0
    0
    1
    0
    0
    0
    6

    View Slide

  30. TensorFlow 2 度學習 30
    深度學習考量點 1: 是否有夠多的數據
    要注意是否有夠多
    (常常是上萬筆) 歷
    史資料。

    View Slide

  31. TensorFlow 2 度學習 31
    深度學習考量點 2: 可否在合理努力下取得
    還要注意資料是否
    在合理的努力下可
    取得。

    View Slide

  32. TensorFlow 2 度學習 32
    Step 1: 用深度學習的方式打造函數學習機
    函數
    學習機
    不管我們用了什麼阿貓阿狗法, 打造
    一台深度學習函數學習機。
    然後有一堆參數要調。
    完成!
    {wi
    , bj
    }
    θ

    View Slide

  33. TensorFlow 2 度學習 33
    基本元件是神經元
    φ(
    3

    i=1
    wi
    xi
    + b) = h

    View Slide

  34. TensorFlow 2 度學習 34
    深度學習就是建一層層「隱藏層」
    x ̂
    y
    input
    layer
    hidden
    layers
    output
    layer
    想辦法去決定要用幾層, 每一層
    用什麼樣的形式。

    View Slide

  35. TensorFlow 2 度學習 35
    每層就三種選擇 (基本上)
    x1
    x2
    xn
    h1
    h2
    hk
    x h
    ℱ1
    全連結層 (Dense)
    卷積層 (Conv)
    遞歸層 (LSTM, GRU)
    差不多就是決定
    幾個神經元就結
    束了。

    View Slide

  36. TensorFlow 2 度學習 36
    Step 2: fit 訓練
    我們收集真實世界的歷史資料。
    {(x1
    , y1
    ), (x2
    , y2
    ), …, (xn
    , yn
    )}
    也就是說, 真實世界的函數應該是⻑這個樣子。
    f yi
    xi

    View Slide

  37. TensorFlow 2 度學習 37
    事實上我們的神經網路 (在初始化之後) 也會...
    fθ Ë台灣藍鵲Î
    只是開始時都在唬爛...

    View Slide

  38. TensorFlow 2 度學習 38
    我們當然希望越接近真實答案越好
    xi
    ̂
    yi
    yi
    正確答案
    看差多遠

    於是我們會做一個計算誤差的函數, 叫 loss function 。
    L(θ)

    View Slide

  39. TensorFlow 2 度學習 39
    然後用「萬用」學習法
    Gradient Descent
    事實上我們是用:
    Stochastic Gradient Descent

    View Slide

  40. TensorFlow 2 度學習 40
    Coding 時間
    冒險05-07

    View Slide

  41. TensorFlow 2 度學習 41
    討論、Q&A
    冒險08

    View Slide

  42. TensorFlow 2 度學習 42
    深度學習看來很簡單,那...
    比起上個世紀, 要寫個
    強強的深度學習程式,
    真的太容易了!

    View Slide

  43. TensorFlow 2 度學習 43
    深度學習其實人人可以做, 也該人人都來做!
    吳恩達 (Andrew Ng)
    AI for Everyone
    Coursera 課程

    View Slide

  44. TensorFlow 2 度學習 44
    關鍵在「問一個好問題」
    專業上、技術上都要!

    View Slide

  45. TensorFlow 2 度學習 45
    綠島海洋生物辨識
    Photo by Juuyoh TANAKA, from Wikipedia.
    *
    *
    Tambja morosa
    (藍紋鏽邊海蛞蝓)
    CNN
    本來想這麼容易的問題,
    當然是這樣做就好了啊。

    View Slide

  46. TensorFlow 2 度學習 46
    綠島海洋生物辨識
    Photo by Juuyoh TANAKA, from Wikipedia.
    *
    *
    Embedding vector
    結果, 我們其實要的是一個好的 embedding,
    也就是一個海洋生物, 我們需要一個「好的」
    向量代表牠。

    View Slide

  47. TensorFlow 2 度學習 47
    綠島海洋生物辨識
    Photo by Steve Childs, from Flickr.
    *
    Photo by zsispeo, from Flickr.
    **
    *
    **
    Amphiprion ocellaris
    眼斑雙鉅海葵魚
    Tambja morosa
    藍紋鏽邊海蛞蝓
    Tambja morosa
    藍紋鏽邊海蛞蝓
    Anchor
    Positive
    Negative
    Max
    Min
    一個方式是用所謂的
    triplet loss。

    View Slide

  48. TensorFlow 2 度學習 48
    深度學習推薦學習內容
    NN CNN RNN
    Transformer
    Auto Encoder
    Reinforcement Learning
    GAN

    View Slide

  49. TensorFlow 2 度學習 49
    程式技巧上, 我們要學會 Functional API 的做法
    會了 Functional API,
    真的什麼特別的神經網
    路都做得出來!

    View Slide

  50. TensorFlow 2 度學習 50
    這本書介紹了所有程式寫法
    精通機器學習:使用Scikit-Learn,
    Keras與TensorFlow 第二版
    Aurélien Géron

    View Slide

  51. TensorFlow 2 度學習 51
    Trasnformer 很值得深入瞭解
    當紅的 model, 原理包括
    attention, 本身就有很多啟發。
    transformer

    View Slide

  52. TensorFlow 2 度學習 52
    尤其是「芝麻街」系列是怎麼問問題的
    瞭解新近的 NLP models, 如
    BERT, GPT-3 等等。

    View Slide

  53. TensorFlow 2 度學習 53
    SimpleTransformer
    https://simpletransformers.ai/
    輕鬆享用 Transformer 的樂趣!

    View Slide

  54. TensorFlow 2 度學習 54
    Q & A
    有問題嗎?

    View Slide