神經網路和深度學習(一)

2021-09-12 19:59:59 字數 3335 閱讀 3894

此系列部落格記錄 網易雲課堂 - 深度學習工程師課程 的學習

開發環境:anaconda - (python 3.7 windows版本)+jupyter notebook1、由於anacondapython的乙個開源針對科學計算的版本,故只需裝 anaconda 即可。

2、推薦使用jupyter notebook,它是乙個 整合python編譯markdown語法數學方程等多功能的web應用程式,且 吳恩達老師 所留的作業也均採用 jupyter notebook

思維導圖

課後作業

上圖的兩個檔案 即為 課後作業,其他檔案為 課後作業需要呼叫的資源。

知識儲備

numpy 的查詢手冊

python 的查詢手冊

math.exp(x)---- 計算e的x次方,x為乙個數(exponential指數)

np.exp(x)------- 計算e的x次方,x為乙個數或 numpy 陣列

np.array()------- 新建乙個 陣列,矩陣,列表等

x.shape---------- get the shape (dimension) of a matrix/vector x.

x.reshape--------- reshape x into some other dimension.

np.linalg.norm(x,axis=1,keepdims=true)------ 求x的範數(預設求二範數,各元素平方和開根號),axis=0為按列處理,axis=1為按行處理,keepdims表示是否保持矩陣的二維特性。

np.dot(x1,x2)------ 求向量x1,x2 點積(點乘),a·b= 1b1 + a2b2 +……+ anbn。

np.outer(x1,x2)---- 求向量x1,x2 外積(叉乘)

np.multiply(x1,x2)------ 陣列和矩陣對應元素相乘

a = array([[1, 2],

[3, 4]])

b = array([[0, 1],

[2, 3]])

np.multiply(a,b)

array([[ 0, 2],

[ 6, 12]])

loss = np.dot((y - yhat),(y - yhat).t)----------t是將矩陣轉置

sigmoid函式梯度下降(反向傳播):當s = sigmoid(x)時,ds = s * (1 - s)。x是乙個數,或者 numpy 陣列

# 示例:定義乙個函式

import numpy as np

defsigmoid

(x):

s =1/

(1+ np.exp(

-x))

return s

# numpy陣列的定義

image = np.array([[

[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]]

])#原貌[

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

]print

("print the data of first row :"

)print

(image[0]

)print

("print the date of first column :"

)print

(image[:,0])

print the data of first row :[[

0.67826139

0.29380381][

0.90714982

0.52835647][

0.4215251

0.45017551]]

print the date of first column :[[

0.67826139

0.29380381][

0.92814219

0.96677647][

0.60659855

0.00533165

]]

神經網路和深度學習(一) 初識神經網路

人類的視覺系統是世界上最棒的系統之一,比如下列一串手寫數字 大多數人都可以一眼看出它是504192。在我們大腦的每乙個半球,都有主要的視覺皮質v1 它包含了1.4億個神經元,在這些神經元之間有數百億的接觸。然而人類的視覺不僅僅包含了v1 而是一系列的視覺皮質v1 v2,v3,v 4,v5 逐步進行更...

神經網路和深度學習(一) 初識神經網路

人類的視覺系統是世界上最棒的系統之一,比如下列一串手寫數字 大多數人都可以一眼看出它是504192。在我們大腦的每乙個半球,都有主要的視覺皮質的輸入依賴於其輸出,這很難理解,所以我們不允許這樣的迴圈。然而,有些人造神經網路中存在反饋迴路是可能的。這樣的模型稱為遞迴神經網路。這些模型的思想是讓神經元在...

神經網路和深度學習(一) 初識神經網路

人類的視覺系統是世界上最棒的系統之一,比如下列一串手寫數字 大多數人都可以一眼看出它是504192。在我們大腦的每乙個半球,都有主要的視覺皮質的輸入依賴於其輸出,這很難理解,所以我們不允許這樣的迴圈。然而,有些人造神經網路中存在反饋迴路是可能的。這樣的模型稱為遞迴神經網路。這些模型的思想是讓神經元在...