吴恩达 深度学习 2021版 作业
練習
- 神經網絡與深度學習
- 神經網絡基礎
- Numpy基礎
- 1-使用numpy構建基本函數
神經網絡與深度學習
神經網絡基礎
Numpy基礎
學習目標:
1-使用numpy構建基本函數
1.1- sigmoid function和np.exp()
在使用np.exp()之前,你將使用math.exp()實現Sigmoid函數。然后,你將知道為什么np.exp()比math.exp()更可取。
練習:構建一個返回實數x的sigmoid的函數。將math.exp(x)用于指數函數。
提示:
有時也稱
為邏輯函數。它是一種非線性函數,即可用于機器學習(邏輯回歸),也能用于深度學習。
要引用特定程序包的函數,可以使用package_name.function()對其進行調用。運行下面的代碼查看帶有math.exp()的示例。
但是在深度學習中很少使用math庫,是因為在深度學習中更多的使用矩陣與向量,故numpy更加實用
import math def basic_sigmoid(x):s = 1/(1 + math.exp(-x))return s basic_sigmoid(3)0.9525741268224334
import numpy as np x = np.array([1,2,3]) print(1 / (1 + np.exp(-x)))[0.73105858 0.88079708 0.95257413]
import numpy as np def sigmoid(x):s = 1/(1 + np.exp(-x))return s x = np.array([1,2,3]) sigmoid(x)array([0.73105858, 0.88079708, 0.95257413])
1.2- Sigmoid gradient
正如你在教程中所看到的,我們需要計算梯度來使用反向傳播優化損失函數。 讓我們開始編寫第一個梯度函數吧。
練習:創建函數sigmoid_grad()計算sigmoid函數相對于其輸入x的梯度。 公式為:
我們通常分兩步編寫此函數代碼:
1.將s設為x的sigmoid。 你可能會發現sigmoid(x)函數很方便。
2.計算
array([0.19661193, 0.10499359, 0.04517666])
1.3- 重塑數組
深度學習中兩個常用的numpy函數是np.shape和np.reshape()。
-X.shape用于獲取矩陣/向量X的shape(維度)。
-X.reshape(…)用于將X重塑為其他尺寸。
例如,在計算機科學中,圖像由shape為
的3D數組表示。但是,當你讀取圖像作為算法的輸入時,會將其轉換為維度為
的向量。換句話說,將3D陣列“展開”或重塑為1D向量。
練習:實現image2vector() ,該輸入采用維度為(length, height, 3)的輸入,并返回維度為(lengthheight3, 1)的向量。例如,如果你想將形為(a,b,c)的數組v重塑為維度為(a*b, 3)的向量,則可以執行以下操作:
v = v.reshape((v.shape[0]*v.shape[1], v.shape[2]))
#v.shape[0] = a ; v.shape[1] = b ; v.shape[2] = c
image2vector(image) = [[0.67826139]
[0.29380381]
[0.90714982]
[0.52835647]
[0.4215251 ]
[0.45017551]
[0.92814219]
[0.96677647]
[0.85304703]
[0.52351845]
[0.19981397]
[0.27417313]
[0.60659855]
[0.00533165]
[0.10820313]
[0.49978937]
[0.34144279]
[0.94630077]]
1.4- 行標準化
我們在機器學習和深度學習中使用的另一種常見技術是對數據進行標準化。 由于歸一化后梯度下降的收斂速度更快,通常會表現出更好的效果。 通過歸一化,也就是將x更改為(將x的每個行向量除以其范數)。(化為單位向量)
練習: 執行 normalizeRows()來標準化矩陣的行。 將此函數應用于輸入矩陣x之后,x的每一行應為單位長度(即長度為1)向量。
normalizeRows(x) = [[0. 0.6 0.8 ]
[0.49206783 0.5904814 0.63968818]]
行標準化: x_norm = np.linalg.norm(x, axis = 1, keepdims = True)
x = x / x_norm
1.5- 廣播和softmax函數
練習: 使用numpy實現softmax函數。 你可以將softmax理解為算法需要對兩個或多個類進行分類時使用的標準化函數。 你將在本專業的第二門課中了解有關softmax的更多信息。
操作指南:
總結:
2-向量化
2.1實現L1和L2損失函數
練習: 實現L1損失函數的Numpy向量化版本。 我們會發現函數abs(x)(x的絕對值)很有用。
提示:
-損失函數用于評估模型的性能。 損失越大,預測(
) 與真實值()的差異也就越大。 在深度學習中,我們使用諸如Gradient Descent之類的優化算法來訓練模型并最大程度地降低成本。
-L1損失函數定義為
總結
以上是生活随笔為你收集整理的吴恩达 深度学习 2021版 作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解WinHex使用入门
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习