【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和微軟的支援