神经网络(Neural Networks)
神经网络(Neural Network)是一种模仿人类大脑神经元结构和工作方式的计算模型,广泛用于机器学习和人工智能中,尤其擅长处理图像识别、语音识别、自然语言处理等复杂任务。
通俗理解:
可以把神经网络看成是一种"黑盒子"系统,它通过输入一些数据,不断学习其中的规律,并给出相应的输出结果。就像人类通过经验不断学习和改进一样,神经网络也通过大量的数据训练自己。
组成结构
神经网络通常由以下几个部分组成:
- 输入层(Input Layer):接收原始数据,比如图片的像素值或文本的向量表示。
- 隐藏层(Hidden Layers):中间若干层神经元节点,每一层都会对数据进行处理和特征提取。
- 输出层(Output Layer):输出最终结果,比如分类标签或预测数值。
每一层都包含多个“神经元”,它们通过**权重(weight)和偏置(bias)连接,并经过一个激活函数(activation function)**进行非线性变换。
举个简单的例子:
比如你要训练一个神经网络来识别猫和狗的图片:
- 输入层:接收图片的像素数据。
- 隐藏层:提取特征,比如耳朵形状、毛发颜色、眼睛位置等。
- 输出层:给出结果,例如“这是一只猫”或“这是一只狗”。
常见的算法
前馈神经网络(Feedforward Neural Network, FNN
)、卷积神经网络(Convolutional Neural Network, CNN
)、循环神经网络(Recurrent Neural Network, RNN
)、生成对抗网络(Generative Adversarial Network, GAN
)等。
前馈神经网络(FNN)
- 描述:最基本的神经网络结构,信息从输入层单向流向输出层,没有循环。
- 用途:图像分类、特征提取、函数拟合等。
- 核心算法:前向传播 + 反向传播(Backpropagation)
卷积神经网络(CNN)
- 描述:专门用于处理图像等具有空间结构的数据,利用卷积层提取局部特征。
- 组成:卷积层、池化层、全连接层
- 用途:图像识别(如人脸识别、物体检测)、视频分析、医疗图像等。
- 代表网络:LeNet, AlexNet, VGG, ResNet
循环神经网络(RNN)
- 描述:具有“记忆”能力,适用于序列数据,通过隐藏状态传递前一时刻信息。
- 用途:自然语言处理(NLP)、时间序列预测、语音识别
- 变种:
- LSTM(Long Short-Term Memory)
- GRU(Gated Recurrent Unit)
生成对抗网络(GAN)
- 描述:由生成器(Generator)和判别器(Discriminator)组成,进行对抗训练。
- 用途:图像生成、风格迁移、数据增强、超分辨率
- 代表算法:DCGAN、StyleGAN、CycleGAN
前馈神经网络(FNN)
前馈神经网络(Feedforward Neural Network, FNN
)是一种人工神经网络,其中信息单向流动——从输入层流向输出层,中间经过一个或多个隐藏层,没有环路或反馈连接。
网络结构组成
一个典型的 FNN 包括:
-
输入层
接收原始特征输入(如图像像素、文本向量、数值特征等) -
隐藏层(1个或多个)
每层包含多个神经元,执行线性加权和 + 激活函数 -
输出层
给出最终结果,如分类概率、回归数值等。
通常会根据任务选用不同激活函数(如 softmax、sigmoid、linear)
前向传播(Forward Propagation)
基本流程
假设有一个简单的前馈神经网络(Feedforward Neural Network),它由以下几部分组成:
- 输入层(Input Layer)
- 一个或多个隐藏层(Hidden Layers)
- 输出层(Output Layer)
每一层的神经元通过权重(weights)和偏置(biases)连接。
对于第
-
加权求和
其中:
:第 层的权重矩阵 :上一层的输出(或输入层的原始输入) :第 层的偏置向量 :未激活的线性组合结果
-
激活函数
其中
是激活函数(如 ReLU、Sigmoid、Tanh 等),用于引入非线性。
这个过程从输入层一直进行到输出层,最终输出预测值
简单例子
假设我们有一个两层神经网络(一个隐藏层),用于二分类:
- 输入:2个特征
- 隐藏层:3个神经元,使用 ReLU 激活
- 输出层:1个神经元,使用 Sigmoid 激活
向前传播过程:
-
计算隐藏层:
-
计算输出层:
作用
-
前向传播是预测过程的一部分。
-
在训练中,它是损失函数计算的前提。
-
在反向传播(backpropagation)中会用到中间的
和 值。