深度学习入门-基于Python的理论与实现
主要内容:
神经网络的每层输入与权重用矩阵来表示。
Python入门
开源,可读性高,性能强,优秀库
主要用到两个库:NumPy和Matplotlib
书中推荐使用Anaconda版本,里面除了Pyhton还包含了许多必要的库,我是用VScode+Python,因为我之前安装过不同版本的Python,主要是安装完成之后改了一下VSCode的配置文件。
Numpy
生成数组:用np.array()方法
x = np.array([1.0, 2.0, 3.0])
多维数组
A = np.array([[1, 2], [3, 4]])
数组间的运算,广播
A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
A * B
==>B = np.array([10, 20],[10, 20])
A * B
==>对应位置相乘
array([[ 10, 40],[ 30, 80]])
感知机
输入信号与其对应的权重之和,如果超过了某一阙值,那么才会有输出,此时,神经元被激活.
用公式表示:
感知机的局限性:
单层感知机只能分割线性空间,对于非线性空间莫得办法,看公式就知道了。多层感知机就可以表达线性空间.
神经网络
如图:
三层结构但是只有两层神经元,所以称为两层神经网络。
感知机函数:
稍作变换为激活函数:
可知感知机的激活函数为阶跃函数。
介绍另一个函数,被常用作激活函数的sigmoid函数:
矩阵乘法:
由左矩阵的行乘以右矩阵的列
1 2 x 5 6
3 4 x 7 8
1x5+2x7,1x6+2x8
2x5+4x7,3x6+4x8
矩阵实现神经网络
由单独运算变成矩阵运算
其中a1(1)表示为:
用矩阵表示:
此时,A为第二层的输入,获得第二层的输出还需要调用一个激活函数h
输出层所用的激活函数,要根据求解问题的性质决定。一般地,回
归问题可以使用恒等函数,二元分类问题可以使用sigmoid 函数,
多元分类问题可以使用softmax 函数。
、