本专栏是书《深度学习入门》的阅读笔记一共八章:
第一章深度学习中的Python基础。主要讲解了深度学习将要用到的python的基础知识以及简单介绍了numpy库和matpoltlib库,本书编写深度学习神经网络代码仅使用Python和numpy库,不使用目前流行的各种深度学习框架,适合入门新手学习理论知识。
第二章感知机。主要介绍了神经网络和深度学习的基本单元感知机。感知机接收多个输入,产生一个输出,单层感知器可以实现与门,或门以及与非门,但是不能实现异或门,异或门的实现需要借助多层感知机,这也就是说,单层感知机只能表示线性空间,而非线性空间的表示需要借助多层感知机。
第三章神经网络
上一章我们知道了,多层感知机理论上可以表示任何函数,甚至可以实现复杂的计算机,但是,截止目前为止,确定感知机的权重和偏置都是由人工计算得到的,对于多层感知机,人工确定权重和偏置的方法未免也太太太麻烦了,所以,神经网络的作用就是能够让网络自身进行学习权重和偏置,遗憾的是本章不打算介绍神经网络的学习算法,本章主要介绍神经网络的结构,神经网络的学习算法由下一章给出。
3.1激活函数
感知机与神经网络的区别就在于激活函数,可以说,感知机就是激活函数选用了阶跃函数的神经网络,除了激活函数,其他方面比如神经元的多层连接的构造、信号的传递方法等感知机和神经网络都大致相同。
3.1.1阶跃函数
用Python实现阶跃函数的代码为:
import numpy as np
def step_function(x):
y=x>0#对输入的np数组进行不等式运算,得到y是一个布尔型数组
return y.astype(np.int)#将布尔型数组y转换成int型数组,其中Ture转换为1
#astype()函数通过参数指定期望的类型
函数图像:
3.1.2sigmoid函数
sigmoid函数的数学表达式为:
用Python编写sigmoid函数的代码为:
import numpy as np
def sigmoid(x):
return 1/(1+np.exp(-x))
因为numpy具有广播的作用,所以可以直接输入numpy数组x并产生一个和x同样维度的数组。
函数图像
3.1.3ReLU函数
ReLU函数的数学表达式为: