笔者注
这两节课主要介绍了神经网络的大的轮廓。而神经网络基本上是在模拟人类大脑的工作模式,有些仿生学的意味。为了便于理解,搜集了一些脑神经的资料,这部分是课程中没有讲到的。
首先要了解一下大脑神经元之间结构。
- 细胞体:处理输入信号。
- 树突:接收来自其他神经元的信号。
- 轴突:将信号传递给其他神经元。
- 突触:连接两个神经元的接口,信号通过化学物质(神经递质)传递。
人类脑部的神经元之间的信息传说关键点在于突触。树突接收到足够强的信号时,细胞体通过电脉冲(动作电位)将信号沿轴突传递。信号是否触发取决于输入总和是否超过阈值。
而神经网络中所谓的"神经元",实际上是数学模拟,关键点在于激活函数。
- 输入:接收多个信号(类似树突)。
- 权重:每个输入的重要性系数(类似突触强度)。
- 激活函数:决定是否输出信号(类似阈值机制)。
生物神经元通过化学和电信号传递,具有可塑性(突触强度随学习改变)。人工神经元纯数学计算,依赖算法调整参数,速度快但缺乏生物复杂性。两者不要等同。
预测 T 恤是否畅销为例
1. 逻辑回归作为单个神经元
- 问题设定:通过 T 恤的价格预测其是否会成为畅销品。
- 输入特征:价格 X。
- 输出结果:逻辑回归模型输出概率 a=σ(wX+b),其中 σ 是 Sigmoid 函数,将线性组合转换为 0-1 之间的概率值。
- 类比神经元:将逻辑回归单元类比为大脑中的单个神经元,输入价格后计算并输出 "激活值"(即概率)。
2. 扩展到多特征输入
- 新增特征:价格、运输成本、营销量、材料质量。
- 问题复杂度:畅销与否可能受多个因素综合影响,需更复杂的模型。
3. 构建多层神经网络
网络结构设计
- 输入层:4 个原始特征(价格、运输成本、营销量、材料质量)。
- 隐藏层 :
- 第一层 :3 个神经元,分别处理不同特征组合:
- 可负担性:价格 + 运输成本。
- 认知度:营销量。
- 感知质量:价格 + 材料质量(隐含 "高价 = 高质量" 的假设)。
- 输出:三个激活值 a1,a2,a3。
- 第一层 :3 个神经元,分别处理不同特征组合:
- 输出层:1 个神经元,综合三个激活值,输出最终概率 afinal。
关键术语
- 激活(Activation):每层神经元的输出值,类似生物神经元的 "电信号强度"。
- 隐藏层(Hidden Layer):中间层,其输出值在训练数据中不可见,需通过模型自动学习。
4. 神经网络的优势:自动特征工程
- 传统方法:需手动设计特征(如 "价格 + 运输成本")。
- 神经网络 :
- 隐藏层自动学习特征组合(如可负担性、认知度)。
- 无需人为干预,直接从数据中提取更有效的特征。
5. 网络架构示例
- 单隐藏层网络:输入层 → 隐藏层(3 神经元) → 输出层(1 神经元)。
- 多隐藏层网络 :
- 输入层 → 第一层隐藏层(3 神经元) → 第二层隐藏层(2 神经元) → 输出层。
- 每一层的输出作为下一层的输入,形成深度网络。
6. 设计决策
- 隐藏层数量:层数越多,模型越复杂,需权衡计算成本和性能。
- 每层神经元数量:根据问题复杂度调整,影响模型拟合能力。
7. 应用扩展
- 计算机视觉:如人脸识别,输入层为图像像素,隐藏层逐步提取边缘、纹理、形状等抽象特征。
- 其他领域:语音识别、自然语言处理等,均通过多层网络自动学习层次化特征。
总结
- 神经网络本质:通过多层非线性变换,将原始输入映射到目标输出。
- 核心优势:自动特征学习,减少人工特征工程的依赖。
- 术语对应 :
- 输入层 → 原始数据。
- 隐藏层 → 中间特征表示。
- 输出层 → 最终预测结果。
这种结构,一般会应用在图像、语音、文本等领域。
以人脸识别为例
1. 图像数据的表示
- 输入形式 :
- 1000×1000 像素的彩色图像 → 转换为 1000×1000×3 的三维矩阵(RGB 三通道)。
- 展开为一维向量:1000×1000×3 = 3,000,000 个像素强度值(每个值 0-255)。
- 挑战:直接处理百万级特征的复杂度极高,需依赖神经网络的层次化特征提取能力。
2. 神经网络架构设计
网络结构
- 输入层:3,000,000 个神经元(对应像素值)。
- 隐藏层 :
- 第一层:检测边缘和纹理(如垂直 / 水平线)。
- 第二层:组合边缘形成面部部件(如眼睛、鼻子)。
- 第三层:整合部件为整体脸型(如椭圆脸、方脸)。
- 输出层:预测人脸身份(分类任务,输出概率向量)。
关键机制
- 局部连接:每个神经元仅连接输入图像的局部区域(如 11×11 像素窗口),降低参数数量。
- 权值共享:同一层的神经元使用相同的权重检测相同模式,提升平移不变性。
3. 分层特征学习过程
第一层(边缘检测)
- 学习目标:识别图像中的边缘和纹理。
- 示例神经元 :
- 神经元 1:检测垂直边缘(如人脸轮廓)。
- 神经元 2:检测水平边缘(如眉毛)。
- 神经元 3:检测 45° 斜线(如下颌线)。
第二层(部件检测)
- 学习目标:将边缘组合为面部部件。
- 示例神经元 :
- 神经元 A:检测眼睛区域(结合水平和垂直边缘)。
- 神经元 B:检测鼻子轮廓(结合斜线和曲线)。
- 神经元 C:检测嘴唇形状(结合曲线和闭合区域)。
第三层(整体特征检测)
- 学习目标:整合部件为整体脸型或身份特征。
- 示例神经元 :
- 神经元 X:识别椭圆脸型(结合额头、颧骨、下巴)。
- 神经元 Y:识别方脸型(结合下颌角和直线轮廓)。
- 神经元 Z:识别特定人物(如结合眼睛间距、鼻子形状等独特特征)。
4. 网络的自动适应性
- 无需人工干预 :
- 网络通过反向传播自动调整权重,从数据中学习分层特征。
- 第一层无需人为设计 "边缘检测器",而是通过训练自动发现。
- 泛化能力 :
- 同一网络结构可迁移到不同任务:
- 训练数据为汽车 → 第一层检测车轮边缘,第二层检测车灯 / 车门,第三层检测车型。
- 训练数据为手写数字 → 第一层检测笔画方向,第二层检测数字形状(如 "8" 的环形)。
- 同一网络结构可迁移到不同任务:
5. 深层网络的优势
- 层次化抽象 :
- 浅层(靠近输入层):学习低层次特征(边缘、颜色)。
- 中层:学习中层次特征(纹理、部件)。
- 深层:学习高层次特征(整体结构、语义信息)。
- 抗干扰性 :
- 通过多层非线性变换,提取不变性特征(如旋转、缩放不变)。
6. 技术实现细节
卷积神经网络(CNN)
- 卷积层 :
- 使用卷积核(如 3×3 矩阵)扫描图像,提取局部特征。
- 示例:第一层卷积核学习边缘检测,输出 "边缘特征图"。
- 池化层 :
- 下采样(如 2×2 最大值池化),减少维度并保留关键信息。
- 全连接层 :
- 整合全局特征,输出最终分类结果。
典型 CNN 架构(如 LeNet-5)
- 输入层:32×32 像素图像。
- 卷积层 1:6 个 5×5 卷积核 → 输出 28×28×6。
- 池化层 1:2×2 池化 → 输出 14×14×6。
- 卷积层 2:16 个 5×5 卷积核 → 输出 10×10×16。
- 池化层 2:2×2 池化 → 输出 5×5×16。
- 全连接层:5×5×16 → 120 → 84 → 10(数字分类)。
7. 应用扩展
- 目标检测 :
- 如 YOLO 算法,在 CNN 基础上添加边界框预测层。
- 图像分割 :
- 如 U-Net,通过编码器 - 解码器结构逐像素分类。
- 视频分析 :
- 结合 CNN 与循环神经网络(RNN)处理时间序列数据。
总结
神经网络在计算机视觉中的核心优势在于:
- 自动特征工程:从像素级输入自动学习分层特征,替代手工设计。
- 层次化抽象:通过多层网络逐步提取边缘→部件→整体结构,适应复杂模式。
- 端到端学习:输入原始图像,直接输出预测结果,无需中间预处理步骤。
这种机制,一般会在图像识别、医学影像分析、自动驾驶等领域。