神经网络基础以及激活函数,以及梯度下降

2021/8/27 6:07:58

本文主要是介绍神经网络基础以及激活函数,以及梯度下降,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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


这篇关于神经网络基础以及激活函数,以及梯度下降的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程