神经网络是一种基于生物神经系统中神经元工作原理而设计的计算模型。它被广泛应用于机器学习和人工智能领域,用于解决各种复杂的模式识别、分类、回归等问题。
神经网络由许多个称为神经元的单元组成,这些神经元通过连接权重相互连接起来,形成不同层次的网络结构。通常,一个神经网络被分为输入层、隐藏层(可以有多个),以及输出层。每个神经元接收来自上一层神经元的输入,并根据权重和激活函数的计算规则将其传递给下一层神经元。
下图是一个单神经元网络,输入房子的面积,可以预测房子的价格。
下图是一个更复杂的多层神经网络结构,根据建房年代、面积、所在城市决定房子的社会价值,根据卧室数量、浴室数量决定规模,根据浴室数量、是否有泳池、是否有集中供暖决定偏好,再由这三者最终决定房屋的价格。这些神经元是通过连接权重相互连接起来的,因为不同因素对房价的影响都是不一样的。
每一个神经元是由两部分组成,根据不同特征进行权重计算,得到的结果再通过激励函数进行非线性变换。激励函数的作用在于引入非线性特性,使得神经网络可以学习和表示更加复杂的非线性关系。如果没有激励函数,神经网络的多层线性结构就会被简化为单层线性模型,这样就无法处理非线性的复杂问题。因此,激励函数是神经网络中不可或缺的组成部分。除了非线性表达,激励函数可以通过抑制某些无用的特征来实现特征选择的效果。当一个神经元接收到输入时,激励函数可以将输入的值映射到一个新的范围,并且根据激励函数的特性,可能会使得一些特征的值非常小甚至趋近于零,或者将一些特征的值放大。这种效果可以通过一些激活函数的特性来实现。例如,在使用ReLU(Rectified Linear Unit)激活函数时,当输入为负时,输出为零,这样就可以抑制输入中的负特征。类似地,Sigmoid激活函数可以将输入限制在0到1之间,将较小的值压缩到接近零,从而抑制某些特征。
下图是一种全连接的神经网络,在全连接神经网络中,神经元之间的每对相邻层都是完全连接的,即上一层的每个神经元都与下一层的每个神经元相连。这意味着每个神经元都接收来自上一层所有神经元的输入,并将其加权求和后通过激活函数进行处理,然后将结果传递到下一层。
全连接神经网络一般由三部分组成:输入层、隐藏层和输出层。输入层接受外部输入数据,并将其传递给隐藏层。隐藏层是位于输入层和输出层之间的一层或多层神经元组成的层,它负责对输入进行变换和特征提取。输出层是网络的最后一层,它将隐藏层的输出转换为最终的预测结果或分类结果。
在全连接神经网络中,每个神经元都有一组权重和偏置,用于调整输入的影响力和控制神经元的激活状态(也就是上文所说的,将有用的特征放大,无用的特征缩成一个接近于0的数)。训练全连接神经网络通常使用反向传播算法,通过计算损失函数的梯度,更新网络中的权重和偏置,以最小化损失函数并提高预测的准确性。
神经网络的三层结构:第一层一般就是输入层,输入特征量,然后中间的所有层都是进行特征提取的,也叫隐藏层,最后一层就是输出层了。其实整个过程中,我们只要构造好一个网络模型,每个权重和偏置都是通过训练,不断更新,直到模型达到最后的效果,最后我们只要给输入量,就会返回给我们一个输出值。(黑盒模型,忽略中间的东西,只要给输入,通过中间巴拉巴拉一大堆东西,最后输出一个结果)。