数据是如何输入到神经网络的?
通过对前面文章的学习,我们已经知道神经网络可以实现真正的人工智能。本小节我会进行详细地讲解,让大家彻底地弄懂神经网络。
我们需要弄懂的第一步就是如何将数据输入到神经网络中。例如,在我们百度的“小度智能屏”中,是如何将麦克风采集到的音频数据输入到神经网络中的;小度智能屏还能根据人脸来判断年龄从而自动切换成人和儿童模式,那它又是如何将摄像头采集到的人脸数据输入到神经网络中的

此例中,待输入的数据是一张图像。为了存储图像,计算机要存储三个独立的矩阵(矩阵可以理解成二维数组,后面的教程会给大家详细讲解),这三个矩阵分别与此图像的红色、绿色和蓝色相对应(世界上的所有颜色都可以通过红绿蓝三种颜色调配出来)。如果图像的大小是64 * 64个像素(一个像素就是一个颜色点,一个颜色点由红绿蓝三个值来表示,例如,红绿蓝为255,255,255,那么这个颜色点就是白色),所以3个64 * 64大小的矩阵在计算机中就代表了这张图像,矩阵里面的数值就对应于图像的红绿蓝强度值。上图中只画了个5 * 4的矩阵,而不是64 * 64,为什么呢?因为没有必要,搞复杂了反而不易于理解。
为了更加方便后面的处理,我们一般把上面那3个矩阵转化成1个向量x(向量可以理解成1 * n或n * 1的数组,前者为行向量,后者为列向量,向量也会在后面的文章专门讲解)。那么这个向量x的总维数就是64 * 64 * 3,结果是12288。在人工智能领域中,每一个输入到神经网络的数据都被叫做特征,那么上面的这张图像中就有12288个特征。这个12288维的向量也被叫做特征向量。神经网络接收这个特征向量x作为输入,并进行预测,然后给出相应的结果。
对于不同的应用,需要识别的对象不同,有些是语音有些是图像有些是传感器数据,但是它们在计算机中都有对应的数字表示形式,通常我们会把它们转化成一个特征向量,然后将其输入到神经网络中。
学习更多人工智能的知识,给大家整理了学习网站 > 人工智能深度学习网站,普通人也能通俗易懂得理解前沿技术,为自己以后不被淘汰做准备
神经网络是如何接收这些数据的?
前面我们已经把一张图像转化成了一个12288维的特征向量,那么接下来,这个向量是如何进入神经网络的呢?
其实,神经网络的结构可以简单理解为由多个神经元组成的网络,每个神经元都可以接收数字,并对这些数字进行计算。
在神经网络中,最先接收外部数据的部分叫做输入层(Input Layer)。
例如,我们把刚才得到的12288维特征向量输入到神经网络中,那么输入层就需要接收这12288个数值。你可以把它理解成有12288个数据入口,每个入口负责接收一个数值。
这些数据进入输入层之后,就会被传递到后面的神经元中,经过一系列计算,最终得到神经网络的预测结果。
这里需要注意,输入层本身通常并不负责复杂的计算,它的主要作用就是接收和传递数据。
神经网络中的数据是如何传递的?
为了让大家更容易理解,我们可以把神经网络想象成一个由多个处理环节组成的流水线。
数据首先进入输入层,然后传递到隐藏层,最后到达输出层。
-
输入层(Input Layer):负责接收外部输入的数据,例如图像像素、语音特征等。
-
隐藏层(Hidden Layer):负责对输入的数据进行计算和处理,从中学习有用的信息。
-
输出层(Output Layer):根据前面计算的结果,输出最终的预测结果。
例如,我们想让神经网络判断一张图片里面是不是一只猫。
首先,将图片转换成计算机能够识别的数字数据,然后输入到输入层。
接下来,这些数字会经过隐藏层中的多个神经元进行计算。随着数据不断向后传递,神经网络会逐渐提取和组合有用的信息。
最后,输出层给出预测结果,例如:
-
猫:95%
-
狗:3%
-
其他:2%
这里的百分比表示模型对各个类别的预测置信程度,并不代表绝对正确。
通过这个过程,神经网络就完成了一次预测。
为什么神经网络能够处理不同类型的数据?
可能有些朋友会产生疑问:图片可以转化成数字,那么语音、文字以及传感器数据又该如何输入神经网络呢?
其实原理是相通的。
计算机无法直接理解我们人类看到的图片、听到的声音或者读到的文字,它最终处理的都是数字。
不同类型的数据,只是需要采用不同的方式进行数字化处理。
1. 图像数据
图像通常由像素组成,每个像素可以使用RGB三个数值表示。
例如,一张64×64像素的彩色图片,就可以表示为一个64×64×3的数字数组。
2. 语音数据
语音本质上是一段随时间变化的声音信号。
麦克风采集声音之后,会将声音转换成一系列数字,也就是我们常说的音频采样数据。
例如,采样率为16000Hz的音频,意味着每秒钟会采集16000个声音样本。
这些采样数据经过必要的预处理后,就可以输入神经网络。
当然,实际的语音识别系统还可能进一步将声音转换成频谱、梅尔频谱等特征,再交给神经网络处理。
3. 文字数据
计算机不能像人类一样直接理解文字的含义,因此需要先将文字转换成数字。
例如,在自然语言处理中,可以先将一句话拆分成一个个Token(词元),再通过词元对应的数字ID以及嵌入向量,将文字转换成神经网络能够处理的数据。
这也是为什么现在的AI大语言模型能够处理我们输入的文字。
4. 传感器数据
例如智能手环采集到的心率、步数、温度等数据,本身就是数字。
这些数据经过整理和必要的预处理之后,也可以直接作为神经网络的输入。
小结
通过本篇文章,我们已经知道了一个非常重要的知识点:
神经网络并不是直接接收图片、声音或者文字,而是接收经过数字化处理之后的数据。
无论是图像、语音、文字还是传感器数据,最终都可以通过合适的数据表示方式,转换成神经网络能够处理的数字输入。
另外,前面介绍的RGB矩阵转化成12288维向量,是为了方便理解的一种表示方式。实际应用中,现代卷积神经网络(CNN)通常会直接处理多维图像数据,不一定需要将图像展平成一个向量。
那么,新的问题又来了:
神经网络接收到这么多数字之后,究竟是如何知道图片里面是什么东西的?
为什么同样一组数字,经过神经网络的计算之后,就能得到猫、狗、人脸等不同的识别结果?
下一篇文章,我们就来深入讲解神经网络内部的计算原理,看看神经元究竟是如何工作的!
更多推荐
所有评论(0)