1. 程式人生 > >【PyTorch深度學習】學習筆記之PyTorch與深度學習

【PyTorch深度學習】學習筆記之PyTorch與深度學習

第1章 PyTorch與深度學習

深度學習的應用

  • 接近人類水平的影象分類
  • 接近人類水平的語音識別
  • 機器翻譯
  • 自動駕駛汽車
  • Siri、Google語音和Alexa在最近幾年更加準確
  • 日本農民的黃瓜智慧分揀
  • 肺癌檢測
  • 準確度高於人類的語言翻譯
  • 讀懂圖片中的影象含義

現今深度學習應用中最受歡迎的技術和出現的時間點

技術 年份
神經網路 1943
反向傳播 20世紀60年代初期
卷積神經網路 1979
迴圈神經網路 1980
長短期記憶網路 1997

深度學習過去的叫法

20世紀70年代叫控制論(cybernetics),20世紀80年代稱之為聯結主義(connectionism),現在稱為深度學習或者神經網路

深度學習現在流行起來的原因

  • 硬體可用性
  • 資料和演算法
  • 深度學習框架

硬體可用性

圖形處理單元(Graphic Processing Unit,GPU)在完成數百萬甚至數十億的引數上的大規模數學運算(如矩陣乘法)時可以搞出幾個數量級。
GPU記憶體,NVIDIA的1080ti大概有11GB的記憶體,價格在700美元左右
各種雲服務,如AWS,Google Cloud,Floyd(這家公司提供轉為深度學習優化的GPU機器)

資料和演算法

文字、圖片、視訊和音訊資料
在計算機視覺領域,ImageNet競賽在提供1000種類別中的140萬圖片的資料集方面發揮了巨大作用

過去比賽中一些成功的演算法有VGG、ResNet、Inception、DenseNet,現在這些演算法已在行業中得到應用,用於解決各種計算機視覺問題

其他一些流行的資料集:

  • MNIST
  • COCO資料集
  • CIFAR
  • The Street View House Numbers
  • PASCAL VOC
  • Wikipedia dump
  • 20 Newsgroups
  • Penn Treebank
  • Kaggle

各種不同演算法的發展:
批規一化、啟用函式、跳躍式連線(skip connection)、長短期記憶網路(LSTM)、dropout等

深度學習框架

早期,需要具備C++和CUDA的專業知識來實現深度學習演算法
現在,隨著深度學習框架的開源,只需具備指令碼語言知識(如Python)即可
行業中流行的深度學習框架有:TensorFlow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet、MXNet和CNTK

PyTorch以及其他大多數深度學習框架,主要用於兩個方面:

  • 用GPU加速過的運算替代與NumPy類似的運算;
  • 構建深度神經網路

PyTorch易用簡單,不同於其他大多數流行的使用靜態計算圖的深度學習礦機,PyTorch使用動態計算,因此在構建複雜架構時可以有更高的靈活性。

PyTorch大量使用了Python概念,例如類、結構和條件迴圈,允許使用者以純面向物件的方式構建深度學習演算法。

由於PyTorch最初主要為研究目的而構建,因此不建議用於哪些對延遲要求非常高的生產環境。然而,隨著名為Open Neural NetWork Exchange(ONNX)的新專案的出現,這種情況正在發生改變,該專案重點是將在PyTorch上開發的模型部署到適用於生產的Caffe2這樣的平臺上。該專案得到了Facebook和微軟的支援