人工智能、机器学习和深度学习三者的联系与区别
人工智能(Artificial intelligence)简称AI。人工智能是计算机科学的一个分支,它企图了解智能的本质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
机器学习(MachineLearning)简称ML。机器学习属于人工智能的一个分支,也是人工智能的和核心。机器学习理论主要是设计和分析一些让计算机可以自动”学习“的算法。
机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。人工智能是最早出现的,也是最大、最外侧的同心圆;其次是机器学习,稍晚一点;最内侧,是深度学习,当今人工智能大爆炸的核心驱动。
全连接神经网络与卷积神经网络的联系与区别
卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节点就是一个神经元。在全连接神经网络中,每相邻两层之间的节点都有边相连,于是会将每一层的全连接层中的节点组织成一列,这样方便显示连接结构。而对于卷积神经网络,相邻两层之间只有部分节点相连,为了展示每一层神经元的维度,一般会将每一层卷积层的节点组织成一个三维矩阵。
除了结构相似,卷积神经网络的输入输出以及训练的流程和全连接神经网络也基本一致,以图像分类为列,卷积神经网络的输入层就是图像的原始图像,而输出层中的每一个节点代表了不同类别的可信度。这和全连接神经网络的输入输出是一致的。类似的,全连接神经网络的损失函数以及参数的优化过程也都适用于卷积神经网络。因此,全连接神经网络和卷积神经网络的唯一区别就是神经网络相邻两层的连接方式。
理解卷积计算
以digit0为例,进行手工演算。
from sklearn.datasets import load_digits #小数据集8*8
digits = load_digits()
理解卷积如何提取图像特征
读取一个图像;
以下矩阵为卷积核进行卷积操作;
显示卷积之后的图像,观察提取到什么特征。
1 | 0 | -1 |
1 | 0 | -1 |
1 | 0 | -1 |
1 | 1 | 1 |
0 | 0 | 0 |
-1 | -1 | -1 |
-1 | -1 | -1 |
-1 | 8 | -1 |
-1 | -1 | -1 |
卷积API
scipy.signal.convolve2d
tf.keras.layers.Conv2D
"""
@author Rakers
"""
from PIL import Image
from pylab import *
from scipy.signal import convolve2d
a=np.array([[-1,0,1],[-2,0,2],[-1,0,1]])
b=np.array([[1,1,1],[0,0,0],[-1,-1,-1]])
c=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])
dog = array(Image.open("../images/dog.png").convert('L'))
matshow(dog)
dog0=convolve2d(dog,a,boundary='symm',mode='same')
dog1=convolve2d(dog,b,boundary='symm',mode='same')
dog2=convolve2d(dog,c,boundary='symm',mode='same')
matshow(dog0)
matshow(dog1)
matshow(dog2)
plt.show()
安装Tensorflow,keras