多特征神经网络与分类问题
约 1246 字大约 4 分钟
多特征神经网络与分类问题
一、从单特征到多特征预测
1.1 核心观点
- 现实世界的预测问题通常依赖于多个特征,而非单一特征。
- 例如:判断痘痘的毒性,不仅与大小有关,还与颜色深浅有关。
1.2 特征与维度的关系
- 单特征(1维):预测函数为
一元一次函数,在二维坐标系中表现为一条直线。 - 双特征(2维):预测函数为
二元一次函数,在三维坐标系中表现为一个平面。 - 多特征(n维):预测函数为
n元一次函数,需要在n+1维空间中描述(人类难以直观可视化)。
二、二元输入下的神经元模型
2.1 模型变化
- 输入:从1个(大小)变为2个(大小、颜色深浅)。
- 线性部分:
Z = W1*X1 + W2*X2 + B - 非线性激活:通过 Sigmoid 函数将平面扭曲为 S型曲面。
2.2 决策边界与分类
- 预测曲面表示:给定大小和颜色深浅时,痘痘有毒的概率。
- 0.5等高线:在三维空间中,预测值为0.5的点连成的线。
- 俯视时,这条线即为分类分割线。
- 一侧预测值 > 0.5(有毒),另一侧 < 0.5(无毒)。
- 在单特征二维模型中,0.5等高线退化为一个分割点。
三、线性不可分问题与解决方案
3.1 问题定义
- 当数据分布呈复杂形态(如弯曲边界或环形分布)时,单个神经元(其决策边界为直线)无法进行有效分类。
- 这就是线性不可分问题。早期的罗森布拉特感知器即受限于此。
3.2 解决方案:引入隐藏层
- 核心原理:通过添加隐藏层神经元,组合多个线性平面,可以扭曲最终的预测曲面。
- 效果:0.5等高线(决策边界)可以从直线被扭曲为曲线,从而拟合复杂的数据分布。
- 思考题:若要分割一个“圈内有毒、圈外无毒”的环形数据,至少需要多个隐藏层神经元来将分割线扭曲成圆形。
四、高维特征与数学抽象
4.1 特征维度(数据维度)
- 提取的特征越多,观察问题的维度就越高,通常能带来更好的预测效果。
- 类比:判断一个人,应从品格、学识等多维度综合评估,而非仅看身高、体重。
4.2 数学工具的必要性
- 当输入特征维度增加时,权重参数随之激增,手动编写函数表达式变得繁琐。
- 引入向量和矩阵作为处理多维数据的数学工具,至关重要。
五、编程实验:实现双输入神经元
5.1 数据与目标
- 数据:
X为二维数组(100个样本,每样本含大小和颜色深浅两个特征)。 - 标签:
Y为一维数组(0表示无毒,1表示有毒)。 - 目标:实现前向传播与反向传播,训练模型对两类痘痘进行分类。
5.2 关键步骤
- 数据准备:将二维输入
X切片为X1(大小)和X2(颜色深浅)。 - 前向传播:
- 线性部分:
Z = W1*X1 + W2*X2 + B - 激活部分:
A = sigmoid(Z)
- 线性部分:
- 反向传播(梯度计算):
- 需分别计算误差
E对W1、W2、B的梯度。 - 应用链式法则:
dE_dW1 = dE_dA * dA_dZ * dZ_dW1dE_dW2 = dE_dA * dA_dZ * dZ_dW2dE_dB = dE_dA * dA_dZ * dZ_dB
- 需分别计算误差
- 参数更新:使用随机梯度下降法更新
W1、W2、B。
5.3 数据结构的对应关系
- 数学概念:一维数组 -> 向量;二维数组 -> 矩阵;三维及以上数组 -> 张量。
- 编程概念:统一称为数组(一维、二维、N维数组)。
六、后续方向:向量、矩阵与框架
- 手动编码多特征、多层的神经网络非常繁琐。
- 下节课将引入向量和矩阵运算,并开始使用 Keras 等深度学习框架。
- 框架将封装前向/反向传播、梯度下降等细节,但向量和矩阵的操作是工程人员必须掌握的核心基础。
总结
本节课的核心是将神经网络从单特征预测推广到多特征预测。我们认识到:
- 多特征问题需要在高维空间中构建模型(平面、曲面等)。
- 单个神经元的决策边界是线性的,无法解决线性不可分问题。
- 通过增加隐藏层,可以组合出复杂的非线性决策边界(如曲线),以应对更复杂的数据分布。
- 随着特征维度的增加,向量和矩阵成为必要的数学工具,也是后续使用高级框架进行高效开发的基础。
- 通过双输入神经网络的编程实践,巩固了前向传播、反向传播及梯度下降在多特征场景下的应用。
