news 2026/4/29 6:03:34

Day 17:神经网络入门(MLP、激活函数、反向传播、优化器)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 17:神经网络入门(MLP、激活函数、反向传播、优化器)

Day 17:神经网络入门(MLP、激活函数、反向传播、优化器)

📋 目录

  1. 神经网络概述
  2. 感知机与多层感知机(MLP)
  3. 激活函数详解
  4. 前向传播与反向传播
  5. 优化器与学习率
  6. 过拟合与正则化

第一部分:神经网络概述

1.1 什么是神经网络?

人工神经网络(ANN)是受生物神经系统启发而设计的计算模型,由大量相互连接的神经元组成。

生物神经元 vs 人工神经元

生物神经元人工神经元
树突(接收信号)输入x i x_ixi
细胞体(处理)加权和 + 激活函数
轴突(输出)输出y yy
突触(连接强度)权重w i w_iwi

1.2 神经网络的发展历程

时间里程碑贡献者
1958年感知机Rosenblatt
1986年反向传播算法Rumelhart, Hinton
2006年深度学习Hinton
2012年AlexNetKrizhevsky
2017年TransformerVaswani

1.3 为什么需要神经网络?

传统机器学习 vs 神经网络

特性传统ML神经网络
特征工程需要手动构造自动学习特征
非线性需核技巧天然非线性
大数据性能饱和随数据增长
可解释性较好较差

第二部分:感知机与多层感知机(MLP)

2.1 单层感知机

结构:输入层 → 输出层(无隐藏层)

数学形式
y = sign ( w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b ) y = \text{sign}(w_1x_1 + w_2x_2 + \dots + w_nx_n + b)y=sign(w1x1+w2x2++wnxn+b)

局限性:只能解决线性可分问题(如XOR问题无法解决)

2.2 多层感知机(MLP)

结构:输入层 → 隐藏层 → 输出层

输入层 隐藏层 输出层 x₁ ────→ h₁ ────→ y₁ x₂ ────→ h₂ x₃ ────→ h₃ ...

数学形式

h = f ( W ( 1 ) x + b ( 1 ) ) h = f(W^{(1)}x + b^{(1)})h=f(W(1)x+b(1))

y = g ( W ( 2 ) h + b ( 2 ) ) y = g(W^{(2)}h + b^{(2)})y=g(W(2)h+b(2))

其中f ffg gg是激活函数。

2.3 MLP的表示能力

万能近似定理:一个具有足够神经元的单隐藏层MLP可以逼近任意连续函数。


第三部分:激活函数详解

3.1 为什么需要激活函数?

没有激活函数:多层线性变换等价于单层线性变换

W 2 ( W 1 x + b 1 ) + b 2 = W x + b W_2(W_1x+b_1)+b_2 = Wx+bW2(W1x+b1)+b2=Wx+b

有了激活函数:引入非线性,可以学习复杂模式

3.2 常用激活函数对比

函数公式导数优点缺点
Sigmoidσ ( x ) = 1 1 + e − x \sigma(x) = \cfrac{1}{1+e^{-x}}σ(x)=1+ex1σ ( x ) ( 1 − σ ( x ) ) \sigma(x)(1 - \sigma(x))σ(x)(1σ(x))平滑,输出[0,1]梯度消失,非零中心
Tanhtanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x) = \cfrac{e^x - e^{-x}}{e^x + e^{-x}}tanh(x)=ex+exexex1 − tanh ⁡ 2 ( x ) 1 - \tanh^2(x)1tanh2(x)输出[-1,1],零中心梯度消失
ReLUReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x)ReLU(x)=max(0,x)0或1计算快,缓解梯度消失神经元死亡
Leaky ReLUmax ⁡ ( 0.01 x , x ) \max(0.01x, x)max(0.01x,x)0.01或1解决神经元死亡参数固定
Softmaxe x i ∑ e x j \cfrac{e^{x_i}}{\sum e^{x_j}}exjexi特殊输出概率多分类专用

3.3 激活函数选择指南

层类型推荐激活原因
隐藏层ReLU计算快,缓解梯度消失
隐藏层(备选)Leaky ReLU, ELU解决神经元死亡
输出层(二分类)Sigmoid输出概率
输出层(多分类)Softmax输出概率分布
输出层(回归)Linear输出连续值

3.4 Sigmoid和Tanh的梯度消失问题

# ReLU vs Sigmoid 梯度对比# Sigmoid在|x|>3时梯度接近0# ReLU在x>0时梯度=1,x<0时梯度=0

第四部分:前向传播与反向传播

4.1 前向传播(Forward Propagation)

过程:输入 → 逐层计算 → 输出

# 单层前向传播defforward_pass(X,W,b,activation):z=np.dot(X,W)+b a=activation(z)returna

损失函数:衡量预测与真实值的差距

任务损失函数公式
回归MSE$ L = \frac{1}{n}\sum(y - \hat{y})^2 $
二分类二元交叉熵$ L = -[y\log\hat{y} + (1 - y)\log(1 - \hat{y})] $
多分类分类交叉熵$ L = -\sum y_i\log\hat{y}_i $

4.2 反向传播(Backpropagation)

核心思想:利用链式法则计算损失函数对每个参数的梯度。

链式法则
$ \frac{\partial L}{\partial w} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial z} \cdot \frac{\partial z}{\partial w} $

步骤

  1. 计算输出层误差δ L \delta_LδL
  2. 逐层反向传播误差δ l = δ l + 1 ⋅ W l + 1 T ⊙ σ ′ ( z l ) \delta_l = \delta_{l+1} \cdot W_{l+1}^T \odot \sigma'(z_l)δl=δl+1Wl+1Tσ(zl)
  3. 计算梯度∂ L ∂ W l = a l − 1 T δ l \frac{\partial L}{\partial W_l} = a_{l-1}^T \delta_lWlL=al1Tδl
  4. 更新参数W l : = W l − α ∂ L ∂ W l W_l := W_l - \alpha \frac{\partial L}{\partial W_l}Wl:=WlαWlL

4.3 反向传播示例(手算)

# 简化示例:单隐藏层网络# 输入: x = [x1, x2]# 隐藏层: h = σ(W1·x + b1)# 输出: y = σ(W2·h + b2)# 损失: L = (y - y_true)²# 梯度计算:# dL/dW2 = dL/dy * dy/dz2 * dz2/dW2# dL/dW1 = dL/dy * dy/dz2 * dz2/dh * dh/dz1 * dz1/dW1

第五部分:优化器与学习率

5.1 梯度下降变体

优化器特点更新公式
BGD使用全部样本$ \theta := \theta - \alpha \nabla J(\theta) $
SGD每次一个样本快但不稳定
Mini-batch每次一个batch速度和稳定性平衡

5.2 自适应优化器

优化器核心思想特点
Momentum加入惯性加速收敛,减少震荡
RMSprop自适应学习率适合非平稳目标
AdamMomentum + RMSprop最常用,默认选择
AdamWAdam + 权重衰减更好的正则化

5.3 Adam优化器详解

Adam (Adaptive Moment Estimation)

  • 一阶矩估计(均值):$ m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t $
  • 二阶矩估计(未中心化方差):$ v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 $
  • 偏差校正后更新:$ \theta_{t+1} = \theta_t - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} $

推荐配置:

  • $ \alpha = 0.001 $(学习率)
  • $ \beta_1 = 0.9 $
  • $ \beta_2 = 0.999 $
  • $ \epsilon = 10^{-8} $

5.4 学习率调度

学习率衰减策略

# 1. 阶梯衰减# 2. 指数衰减# 3. 余弦退火# 4. 循环学习率

第六部分:过拟合与正则化

6.1 神经网络的过拟合

原因

  • 模型参数远多于样本数
  • 训练时间过长
  • 网络结构过复杂

6.2 正则化方法

方法原理效果
L1/L2正则化权重大小惩罚防止权重过大
Dropout随机丢弃神经元集成效果
早停验证集监控防止过度训练
Batch Normalization层间标准化稳定训练
数据增强增加训练样本提高泛化

6.3 Dropout详解

原理:训练时以概率p pp随机丢弃神经元

效果

  • 防止神经元共适应
  • 相当于训练多个子网络的集成
  • Dropout比率通常取 0.2-0.5

6.4 Early Stopping

fromsklearn.neural_networkimportMLPClassifier# 使用早停mlp=MLPClassifier(hidden_layer_sizes=(100,50),early_stopping=True,validation_fraction=0.1,n_iter_no_change=10)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 6:01:34

Delphi老项目福音:用PaddleOCRSharp封装DLL搞定验证码识别(附完整源码)

Delphi传统项目现代化改造&#xff1a;基于PaddleOCRSharp的验证码识别实战指南 在维护传统Delphi项目时&#xff0c;开发者常常面临一个尴尬局面&#xff1a;既需要保持现有系统的稳定性&#xff0c;又不得不应对日益复杂的业务需求。验证码识别就是这样一个典型场景——现代验…

作者头像 李华
网站建设 2026/4/29 6:01:31

AI智能文档扫描仪算法优势:相比深度学习更可控的处理逻辑

AI智能文档扫描仪算法优势&#xff1a;相比深度学习更可控的处理逻辑 1. 项目概述&#xff1a;重新定义文档扫描的智能方式 AI智能文档扫描仪是一个基于计算机视觉算法的办公生产力工具&#xff0c;它采用纯粹的OpenCV图像处理技术&#xff0c;实现了文档自动扫描和智能矫正功…

作者头像 李华
网站建设 2026/4/29 5:50:34

腾讯与香港科大联手:让AI智能体像人类一样主动探索未知世界

这项由腾讯AI实验室与香港科技大学&#xff08;广州&#xff09;联合开展的研究&#xff0c;以预印本形式发布于2026年4月&#xff0c;论文编号为arXiv:2604.18131。有兴趣深入了解技术细节的读者&#xff0c;可以通过该编号在arXiv平台查阅完整原文。---一个让人有些不舒服的现…

作者头像 李华
网站建设 2026/4/29 5:48:24

Spring Boot自动配置原理探秘

Spring Boot自动配置原理探秘 在Java开发领域&#xff0c;Spring Boot凭借其"约定优于配置"的理念&#xff0c;大幅简化了Spring应用的初始搭建和开发过程。其核心特性之一——自动配置&#xff08;Auto-Configuration&#xff09;&#xff0c;能够根据项目依赖和环…

作者头像 李华
网站建设 2026/4/29 5:46:22

如何免费在线生成高质量法线贴图?5分钟快速上手指南

如何免费在线生成高质量法线贴图&#xff1f;5分钟快速上手指南 【免费下载链接】NormalMap-Online NormalMap Generator Online 项目地址: https://gitcode.com/gh_mirrors/no/NormalMap-Online 想要为你的3D模型添加逼真表面细节&#xff0c;却不想学习复杂的建模软件…

作者头像 李华