前馈神经网络 - 应用举例(Logistic回归、Softmax回归)
前馈神经网络 - 应用举例(Logistic回归、Softmax回归)
前馈神经网络是机器学习领域的重要模型之一,广泛应用于各种分类任务。本文通过Logistic回归和Softmax回归两个具体例子,深入浅出地介绍了前馈神经网络的基本原理和应用方法。
一、前馈神经网络的基本原理
1. "万能函数"的比喻
神经网络就像一个"变形工具箱"。想象你有一个工具箱,里面有无数种形状的积木(对应神经网络的神经元)。只要积木足够多、形状足够丰富(足够的神经元和层),你可以拼出任何你想要的形状(逼近任何函数)。
为什么是"万能"?通用近似定理证明,无论目标函数是曲线、波浪线还是更复杂的形状(如预测房价、识别猫狗图片的规律),只要神经网络足够大,总能组合出足够接近的"积木拼图"。
注意"某种程度"的限制:
- 工具箱的"万能"是有条件的:需要足够多的积木(神经元)、正确的拼装方式(参数训练)、合适的工具类型(激活函数如ReLU/Sigmoid)。
- 它不能解决所有问题(比如需要无限资源),但理论上能逼近任何"合理"的函数(数学上连续的函数)。
2. "复杂特征转换"
神经网络是"自动特征工程师"。传统机器学习需要人工设计特征(比如从图片中提取边缘、颜色直方图),而神经网络通过隐藏层的非线性计算,自动将原始输入(如像素)转换为更高级的特征(比如从边缘→纹理→物体部件→完整物体)。
举个栗子:假设你要识别手写数字"7":
- 输入层:784个像素点(28x28的图片)。
- 隐藏层:可能先检测"横线"、"竖线"、"拐角"等局部特征。
- 更深层:组合这些局部特征,判断是否符合"7"的结构(比如顶部横线 + 中间斜线)。
- 输出层:给出概率"这是7的概率是90%"。
关键点:神经网络不需要你告诉它"横线、竖线"是什么,而是通过训练自动发现这些特征。
3. "逼近复杂条件分布"
概率视角:神经网络可以模拟"概率规则"。条件分布指在给定输入数据X时,输出Y的概率分布。例如:
- 输入一张图X,输出"是猫的概率为80%,是狗的概率为20%"。
神经网络如何逼近?通过Softmax输出层(分类任务)或概率建模(如回归+高斯分布),调整参数使得网络的输出分布尽可能接近真实数据的分布。
举个栗子:预测明天下雨的概率:
- 输入X:今天的温度、湿度、气压。
- 输出Y:下雨的概率(比如P(Y=下雨|X)=70%)。
- 神经网络:通过训练,学习从X到Y的复杂关系(非线性条件分布)。
4. 神经网络的三层角色
角色 | 功能 | 类比 |
---|---|---|
万能函数逼近器 | 拟合任意输入到输出的复杂映射关系 | 积木拼出任何形状 |
特征转换器 | 自动提取数据中的分层抽象特征 | 从像素→边缘→物体部件→完整物体 |
条件分布建模器 | 学习数据背后的概率规则 | 预测"可能性"而非绝对答案 |
5. 实际学习中的注意事项
- 理论≠实践:定理只证明存在这样的网络,但找到正确的参数需要好的优化算法(如梯度下降)、足够的数据和合理的超参数。
- "足够多神经元"的代价:网络过宽可能导致过拟合,实际中更倾向用"深度"网络(多层)而非无限宽的单一隐藏层。
- 不要神话"万能":神经网络仍然受限于数据质量、训练方法和计算资源。
二、前馈神经网络使用Logistic回归、Softmax回归举例
给定一个训练样本 (𝒙, 𝑦),先利用多层前馈神经网络将 𝒙 映射到 𝜙(𝒙),然后 再将 𝜙(𝒙) 输入到分类器 𝑔(⋅),其中 𝑔(⋅) 为线性或非线性的分类器,𝜃 为分类器 𝑔(⋅) 的参数,𝑦̂ 为分类器的输出。特别地,如果分类器𝑔(⋅)为Logistic回归分类器或Softmax回归分类器,那么 𝑔(⋅) 也可以看成是网络的最后一层,即神经网络直接输出不同类别的条件概率 𝑝(𝑦|𝒙)。在前馈神经网络中,Logistic回归和Softmax回归主要用于输出层,用以完成分类任务。
(一)使用Logistic回归的前馈神经网络
例子1:垃圾邮件检测
任务描述:判断一封邮件是否为垃圾邮件(0:正常邮件,1:垃圾邮件)。
网络结构:
输入层:对邮件进行特征提取(如关键词频率、邮件长度等)。
隐藏层:1-2层全连接层,采用ReLU激活函数。
输出层:1个神经元,使用Sigmoid激活函数输出概率。
工作流程:
- 邮件的特征经过前馈网络逐层处理,最终得到一个值 z。
- 经过Sigmoid函数映射为 σ(z)。
- 如果 σ(z)≥0.5则预测为垃圾邮件,否则为正常邮件。
训练过程:最小化预测概率与真实标签(0或1)的交叉熵。
例子2:疾病预测
任务描述:根据患者的临床指标预测是否患有某种疾病(例如糖尿病,0:无糖尿病,1:有糖尿病)。
网络结构:
输入层:接受患者的多个特征,如血糖水平、体重、年龄等。
隐藏层:多层全连接网络,采用ReLU或Tanh激活函数提取特征。
输出层:1个神经元,使用Sigmoid激活函数输出一个概率。
工作流程:
- 网络将输入特征通过前馈传递处理。
- 输出层计算线性组合 zz 并通过Sigmoid函数得到患病概率。
- 根据概率和设定的阈值(比如0.5或根据实际需求调整),判断是否预测患者患病。
训练过程:最小化预测概率与真实标签(0或1)的交叉熵。
(二)使用Softmax回归的前馈神经网络
原理说明
对于多分类问题,前馈神经网络的输出层通常设置为与类别数相等的神经元。每个神经元计算一个线性组合 z_i = w_i^T a + b_i,然后通过Softmax函数转换为概率分布:
这样,输出层为每个类别提供一个概率,模型最终预测概率最大的类别。
例子1:手写数字识别(MNIST)
任务描述:识别手写数字(0到9,共10个类别)。
网络结构:
输入层:28×28像素的图像展平成784维向量。
隐藏层:若干全连接层(或者卷积层+全连接层),采用ReLU激活函数。
输出层:10个神经元,使用Softmax激活函数输出10个类别的概率分布。
工作流程:
- 图像经过隐藏层提取特征,最后传递到输出层。
- 输出层每个神经元计算 z_i,然后 Softmax 将这些 z_i 转换成概率 P(y=i∣x)。
- 网络选择概率最高的类别作为预测结果。
训练过程:最小化预测分布与真实标签(One-Hot编码)的交叉熵。
例子2:新闻分类
任务描述:将新闻文本分为多个类别,如政治、娱乐、体育、科技等。
网络结构:
输入层:将文本数据通过词嵌入(Word Embedding)转换为向量。
隐藏层:可以使用卷积神经网络(CNN)或循环神经网络(RNN)提取文本特征。
输出层:设定神经元数目与新闻类别数相等,使用Softmax激活函数输出每个类别的概率。
工作流程:
- 文本输入经过嵌入层转换成向量,再通过CNN或RNN提取特征。
- 输出层对提取的特征进行线性变换,计算各类别的得分,并通过Softmax函数得到概率分布。
- 选择概率最高的类别作为新闻的最终分类。
训练过程:最小化预测分布与真实标签(One-Hot编码)的交叉熵。
总结
- Logistic回归用于二分类问题,在前馈神经网络中通常体现在输出层只有一个神经元,经过Sigmoid函数将线性组合映射为概率。
- Softmax回归用于多分类问题,在前馈神经网络中输出层有多个神经元,通过Softmax函数将各神经元的线性组合转换为概率分布。
通过这两个例子,我们可以直观地理解前馈神经网络如何利用Logistic回归和Softmax回归来解决不同类型的分类问题,以及它们在网络结构中的具体应用。