umpy是利用pyhon进行科学化编程计算中的一个主要的模块。下面我们就来先构建深度学习中的一些基本的函数吧!
1.sigmoid 函数,np.exp()
练习:利用math.exp() 写一个sigmoid函数,使得函数返回值为一个实数x。
提示:sigmoid函数就是我们常常所说的logistic函数。它是一个非线性的函数,不仅在机器学习(Logistic Regression)而且在深度学习中我们也能常常见到。
(Logistic函数或Logistic曲线是一种常见的S形函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的S形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。
来源于百度百科)
下面是simoid函数的图示:
利用python来引用一个属于某个模块的函数时,我们应该利用模块名.函数名()的形式。我们通过下面math.exp()例子来说明。
import math
def basic_sigmod():s=1/(1+math.exp(-x))return s
事实上,由于在深度学习中输入函数中的常常是数字,因此很少用“math”模块。在深度学习中我们用的更多的是矩阵和向量。这就是为什么numpy模块更有用的原因。
下面我们来利用numpy去实现sigmod函数。
import numpy as np
def sigmod(x):s=1/(1+np.exp(-x))return s
下面声明一个数组进行调用
x=np.array([1,2,3])sigmoid(x)
输出结果如图所示:
2.计算sigmoid函数的梯度
练习:编写一个函数来实现计算sigmoid函数的梯度,要求参数为x。函数的公式如下图所示:
要想实现该函数需要以下两步:
(1)令S为参数x的sigmoid函数。你会发现咱们上一步所编写的sigmoid()函数是有用的。
(2)计算s(1-s)
下面给出实现代码:
import numpy as np
def sigmod(x):s=1/(1+np.exp(-x))ds=s(1-s)return ds
注:文章来源为自己学习吴恩达深度学习视频所写笔记,如有转载,请标明出处。