Python 实现深度学习(3): 神经网络的forward实现

您所在的位置:网站首页 forwardpython Python 实现深度学习(3): 神经网络的forward实现

Python 实现深度学习(3): 神经网络的forward实现

2024-07-17 18:52| 来源: 网络整理| 查看: 265

 

写在最前:

写在最前, 我把代码和整理的文档放在github上了

https://github.com/Leezhen2014/python_deep_learning

 

 

Forward指的是神经网络推理,forward与感知机相比,多了一个激活函数的模块。因此本章需要实现激活函数,另外也需要重新实现y=w*x+b。本章的顺序如下:

image

 

3.1 激活函数的实现

在感知机中讲到用阈值来切换输出,这样的函数称为“阶跃函数”:一旦输入超出了阈值,就切换输出。阶跃函数也算是一种激励函数。

需要注意激励函数应该具有以下数学特性:

第一:由于后期训练过程中会对激励函数求导,因此这些函数必须符合数学上的可导。

第二:必须为非线性的函数。这可以用公式推一下:

若激励函数为线性函数

从本质上看,激活函数等同于原来的输入的:

 

wps1

即:

wps2

第i层的输入是第i+1层的k倍。

从表象上看,加深网络层次已经失去了意义;等效于无隐含层的网络。

 

3.1.1 Sigmoid 函数的实现

Sigmoid函数在(-1,1)区间内变化较大,超出这个范围以后变化较小,可以很好的影响。

wps3

 

 

 

1 def Sigmoid(x): 2 return 1/(np.exp(-x) +1) 3 4 if __name__ == '__main__': 5 x = np.arange(-5.0, 5.0, 0.1) 6 y = Sigmoid(x) 7 8 plt.plot(x,y) 9 plt.ylim(-0.1,1.1) 10 plt.show()

image

3.1.2 阶跃函数

wps4

1 def step_func(x): 2 temp = x.copy() 3 temp = np.where(x > 0, temp, 0) 4 temp = np.where(x


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3