《深度學習原理與Pytorch實戰》(第二版)

江左子固發表於2024-05-03

第1章 深度學習簡介

  1. 深度學習——利用深度人工神經網路來進行自動分類、預測和學習的技術,深度學習=深度人工神經網路

  2. 超過三層的神經網路都可以叫做深度神經網路

  3. 人工神經網路的關鍵演算法——反向傳播演算法

  4. 深度網路架構,即整個網路體系的構建方式和拓撲連線結構,主要分為3種:前饋神經網路、卷積神經網路、迴圈神經網路
    前饋神經網路:也稱全連線網路(fully connected neural network)
    所有節點都分為一層一層的,每個節點只跟相鄰層節點而且是全部節點相連線。一般分為輸入層、輸出層、隱含層

  5. 深度學習重要的本領——從海量的資料中自動學習,抽取資料中的特徵


第2章 Pytorch簡介

  1. 使用切片(slicing)來訪問張量,訪問x中的第3列的全部元素,則輸入: x[:,2]——書P22
  2. 一個計算圖(computational graph)包括兩類節點:變數(variable)和運算(computation)
    傳統的深度學習框架(Tensorflow、Theano等)使用靜態計算圖;Pytorch使用動態計算圖

這個計算圖,應該就是用Netron軟體視覺化出來的結果
看計算圖的時候注意,箭頭的指向,是由輸出指向輸入,例如y=x+2,則箭頭由y指向+2,再指向x

  1. Pytorch中的一些技術細節——書P30
    a. 進行運算的物件維度匹配
    b. 不能直接對自動微分變數進行數值更新,只能對其的data屬性的變數進行操作,例如對a操作,則對a.data進行操作
    c. 在函式後加上_符號,就表明要用這個函式的計算結果更新當前的變數
  2. 權重weight、偏置bias

第3章 單車預測器——你的第一個神經網路

  1. 神經網路的執行通常包括前饋的預測過程(或稱為決策過程)和反饋的學習過程——書P37
    反饋過程中,每個輸出神經元會首先計算預測誤差,然後將誤差沿著網路的所有連邊進行反向傳播,得到每個隱含節點的誤差,最後根據每條連邊所連通的兩個節點的誤差計算連邊上的權重更新量,從而完成學習和調整
  2. 科學家已從理論證明,用有限多的隱含神經元可以逼近任意的有限區間內的曲線,這叫做通用逼近定理(universal approximation theorem)
  3. 引數的更新要用到反向傳播法,而pytorch已經將此演算法用backward來表示了
  4. 為什麼要清空梯度?
    因為backward()函式是會累加梯度的。在進行一次訓練之後,立即進行梯度反傳,所以不需要系統累加梯度,不清空梯度則有可能導致模型無法收斂
  5. 一般訓練集:測試集=10:1——書P62
    ——2024.5.3

相關文章