14 深度学习-卷积
1.简述人工智能、机器学习和深度学习三者的联系与区别。
答:人工智能、机器学习和深度学习之间是的关系,人工智能在上层,机器学习是为了更好的人工智能化,一般用于数据处理解析,用算法进行决策与预测,深度学习是为了更好的机器学习逐步深入到机器学习底部是深度学习。从时间上人工智能是人类给机器智能华的过程;机器学习则是通过不断演变学习来达到人工智能的一种方法;深度学习是在机器学习的基础上更深化一层的内在一般用于实现机器学习。
2. 全连接神经网络与卷积神经网络的联系与区别
全连接神经网络是在每层之间的节点都有边相连,而卷积神经网络也是一层一层相连,形态结构上不同的是,它相邻两层之间只有部分节点相连,在前几层中,每一层的节点都会围成一个三维矩阵,前几层每一个节点只和上层的部分节点是相连的。
3.理解卷积计算。
以digit0为例,进行手工演算。
from sklearn.datasets import load_digits #小数据集8*8
digits = load_digits()
0 | 0 | 5 | 13 | 9 | 1 | 0 | 0 |
0 | 0 | 13 | 15 | 10 | 15 | 5 | 0 |
0 | 3 | 15 | 2 | 0 | 11 | 8 | 0 |
0 | 4 | 12 | 0 | 0 | 8 | 8 | 0 |
0 | 5 | 8 | 0 | 0 | 9 | 8 | 0 |
0 | 4 | 11 | 0 | 1 | 12 | 7 | 0 |
0 | 2 | 14 | 5 | 10 | 12 | 0 | 0 |
0 | 0 | 6 | 13 | 10 | 0 | 0 | 0 |
附手工演练图
4.理解卷积如何提取图像特征。
读取一个图像;
以下矩阵为卷积核进行卷积操作;
显示卷积之后的图像,观察提取到什么特征。
实验代码:
# -*- coding:utf-8/gbk -*- # -*- coding:gbk -*- from PIL import Image import matplotlib.pyplot as plt import numpy as np import pylab from scipy.signal import convolve2d # 读取图片 Picture = Image.open(r‘D:\GS\Robit_stu\data/p.jpg‘) L = Picture.convert(‘L‘) # 原图数组 p = np.array(Picture) # 灰度图 pk = np.array(L) # 垂直边缘进行扫描 x = np.array([[1, 0, -1], [1, 0, -1], [1, 0, -1]]) # 水平扫描 y = np.array([[1, 1, 1], [0, 0, 0], [-1, -1, -1]]) z = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]]) x1 = convolve2d(pk, x, boundary=‘symm‘, mode=‘same‘) y1= convolve2d(pk, y, boundary=‘symm‘, mode=‘same‘) z1 = convolve2d(pk, z, boundary=‘symm‘, mode=‘same‘) # 查看2d图 plt.matshow(x1) plt.matshow(y1) plt.matshow(z1) plt.show()
读取原图
1 | 0 | -1 |
1 | 0 | -1 |
1 | 0 | -1 |
图x1
1 | 1 | 1 |
0 | 0 | 0 |
-1 | -1 | -1 |
图y1
-1 | -1 | -1 |
-1 | 8 | -1 |
-1 | -1 | -1 |
图z1
卷积API
scipy.signal.convolve2d
tf.keras.layers.Conv2D
5. 安装Tensorflow,keras
安装好Tensorflow,keras
参考:https://blog.csdn.net/u011119817/article/details/88309256
6. 设计手写数字识别模型结构,注意数据维度的变化。
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPool2D
model = tf.keras.Sequential()
model.add(Conv2D(…))
model.add(MaxPool2D(…))
...
#可以上传手动演算的每层数据结构的变化过程。model.summary()
参考:
https://www.jianshu.com/p/afe485aa08ce
https://blog.csdn.net/junjun150013652/article/details/82217571