#從小白開始學習人工智能# #學習筆記#?
工具:pytorch
一、基礎概念
1.神經網絡是什么?
神經網絡是人類受到生物神經細胞結構啟發而研究出的算法體系。又稱為人工神經網絡(Artificial neural network)
最簡版神經網絡結構圖:
通俗來說,是由神經元首尾相接形成的類似網絡的結構來協同計算,這個算法體系稱為神經網絡
輸入層:在網絡的最前端,直接接受輸入的向量,通常不計層數
隱藏層:可以有多層,在比較深的神經網絡中,可達到上百層
輸出層:最后一層,用來輸出計算結果,可以是某個類型值或者向量
2.神經元的結構是什么樣的?
上圖是一個最簡單的神經元,有一個輸入X或者3個輸入X矩陣,一個輸出,中間是參數部分,圓圈的部分表示進行某種運算。運算一般分為兩個部分組成,線性部分函數 f(x) = wx+b,x是一個n*1的矩陣(n維列向量),w是1*n的權重矩陣,b是偏置項。另一個運算部分是激活函數,是跟隨f(x)=wx+b之后加入的非線性因素(比如房價與面積就不止是線性關系,還有樓層、房間朝向等非線性因素),激活函數在神經元線性模型后,表示如下圖紅色部分,加入了激活函數后,疊加之后的神經網絡理論上就可以構成任意復雜的函數從而解決一些復雜問題。
神經網絡常用的三種激活函數(也叫作激勵函數):
sigmoid:將線性模型計算結果投射到0~1之間
TanH:?將線性模型計算結果投射到-1~1之間??
ReLU: 將線性模型結果小于0的部分投射為0,大于0的部分投射為計算結果本身
訓練神經網絡的過程,也就是我們得到精度極高的w和b的過程,通過大量的數據演算推導,獲得精度極高的w和b的值,從而確定f(x),這樣就能用確定的f(x)來預測新的數據是什么標簽類型
損失函數:訓練神經網絡的一開始,會初始化w與b參數,那么計算出來的結果f'(x)與真實的結果f(x)?中間的差距,就是損失函數計算出的來標簽和真實數據標簽的差距,通常把這個函數叫做損失函數Loss。我們訓練神經網絡的最終目的,是找到合適的w和b,那么這個損失函數足夠小的情況下,就代表神經網絡計算的結果與真實結果差距足夠小,也就說明w和b越可靠。
神經元通過神經網絡結構進行數據傳遞,數據經過前一個神經元的計算,輸出給下一個神經元作為輸入,因為前一個神經元節點連接了下一層的所有節點,因此這種前后層相互連接的網絡也叫“全連接神經網絡”
二、神經網絡的工作過程
前向傳播(forward)
反向傳播(backward)
訓練神經網絡
三、神經網絡構建和訓練流程
- 數據預處理
- 構建模型
- 定制模型損失函數和優化器
- 訓練并觀察超參數
四、應用場景
待補充
五、拓展
待補充