我们在做深度学习任务的时候,总会有这样的困惑? 比如我们做的CV项目,那么我们采集的图像数据集是如何输入到神经网络中去的呢?图像中的特征又是如何提取的呢?
首先我们要知道图像是怎么在计算机中表示的: 我们知道图像是由多个像素点组合在一起构成的。 而像素点是由RGB三个通道组成的。因为这三种颜色不同比例混合可以构成任何自然界的颜色。相比如此便能理解图像是如何在计算机中表示的了吧。
如下图所示为图像在计算机中表示方法。
为了存储图像,计算机需要存储三个独立的矩阵,我们可理解为二维数组{{},{},{}}。三个矩阵分别与图像的红绿蓝相对应。 假如一个图像的大小为6464个像素。 那么3个6464的矩阵在计算机中就代表了这张图像。矩阵里面的数值就是对应图像的红绿蓝强度值。
而为了更加方便后续的处理,我们一般把上面的那三个矩阵转化为一个向量X(如下图所示)。 向量可理解为1n或n1的数组。上面3个6464的矩阵转化为向量那么这个向量的总维数就是**6464*3**。结果为12288。
在深度学习中,每一个输入神经网络中的数据都被叫做一个特征,那么上面这个图像就有12288个特征。这个12288维的向量也被叫做特征向量。神经网络接收到这个特征向量X作为输入,并进行预测,然后给出相应的结果。
那么对于别的数据,例如语音,传感器数据等,但是它们在计算机中都有对应的数字表示形式,通常我们会把它们转化成一个特征向量,然后将其输入到神经网络中。