基于python手写深度学习网络系列(3)神经网络

标题基于python手写深度学习网络系列(3)

神经网络

神经网络主要包括输入层,中间层(也叫隐藏层)和输出层
基于python手写深度学习网络系列(3)神经网络
感知机的**函数是阶跃函数,换成sigmoid函数就变成神经网络了。sigmoid函数形式如下:
h(x)=1/(1+exp(x))h(x) = 1/{(1+exp(-x))}
对numpy数组进行不等号运算
基于python手写深度学习网络系列(3)神经网络
可以看到对x数组进行比较大小,就会对数组中每一个元素分别比较,然后生成一个数据类型是布尔型的数组,使用astype就可以将true变成1,将false变成0
基于python手写深度学习网络系列(3)神经网络
基于python手写深度学习网络系列(3)神经网络
这里是因为numpy数组支持广播的功能
同样绘制出sigmoid函数的图像
基于python手写深度学习网络系列(3)神经网络
阶跃函数和sigmoid函数都属于非线性函数,而神经网络必须使用非线性函数。还有一个最近使用很广泛的函数,ReLU**函数,简言之,就是x小于等于0时,结果为0;x大于零时结果为x。
在此基础上就可以搭建简单的神经网络了
基于python手写深度学习网络系列(3)神经网络
再稍微复杂一点,设计两个层
基于python手写深度学习网络系列(3)神经网络
好了,到此为止我们就手写了一个神经网络啦,各位看官再见!
哈哈哈,当然是在开玩笑,这只是一个不能更雏形的网络,之后的文章里边会更结构化,并且有很多细节,敬请期待!