1.神经网络分为三层:输入层,隐藏层以及输出层
2.a^[0]表示输入层,a^[1]表示隐藏层,a^[2]表示输出层,在隐藏层还要表示
则呈现a^[1]1,a^[1]2,a^[1]3
3.m个训练集向量化
Z^[1] = W^[1]X+b A^[1] = 符号(Z^[1]) Z^[2] = W^[2]A^[1]+b^[2] a^[2] = 符号(Z^[2])#sigmoid()激活函数 for i in m: Z^[1](i) = W^1]X^(i)+b A^[1](i) = 符号(Z^[1](i)) Z^[2](i) = W^[2]A^[1][i]+b^[2] a^[2](i) = 符号(Z^[2](i))
4.矩阵的从左至右的行表示不同的样本矩阵的列从上至下表示样本的不同属性
5.sigmoid函数就是激活函数,这个函数的值域在0-1之间
sigmoid() = 1/1+e^(-z),主要用于二分类问题
6.还有一个更好的激活函数tanh函数,值域在-1-1之间,是sigmoid函数通过平移之后得到的函数,g(z) = tanh(z) = e^(z)-e^(-z)/e^(z)+e^(-z)任何场合都可以使用,处理二分类问题
7.最常用的默认激活函数reLU,当定义域小于0的时候,它的导数为0,当定义域大于0的时候,它的值域是一条直线,reLU = max(0,z)
8.带泄露reLU激活函数,当它的定义域小于0的时候,它会是趋近于0的函数
9.激活函数主要用于输出层
10.正向传播和反向传播
#正向传播: Z^[1] = W^[1]X+b*[1] A^[1] = g^[1](Z^[1]) Z^[1] = W^[2]A^[1]+b^[2] A^[2] = g^[2](Z^^[2])+b^[2] #反向传播: dZ^[2] = A^[2] - Y dw^[2] = 1/m*dZ^[2]*A^[1]T db^[2] = 1/m*np.sum(dZ^[2],axis = 1,keepdoms = True) dZ^[2] = W^[2]dZ^[2]*g^[1](Z^[1]) dW^[2] = 1/m*dZ^[1]X^T db^[1] = 1/m*np.sum