吃瓜笔记 第5章 - 神经网络

本文概述了深度学习中的关键概念,如神经元模型、激活函数(Sigmoid、tanh和ReLU)、感知机、多层网络的结构及其训练方法(误差逆传播)。文章讨论了全局最小和局部极小问题,以及如何通过策略如随机初始化、动量法和学习率调整来优化训练过程。
摘要由CSDN通过智能技术生成

吃瓜笔记目录

吃瓜笔记 第1章 绪论 + 第2章 模型评估
吃瓜笔记 第3章 线性模型
吃瓜笔记 第4章 决策树



1. 深度学习

1.1 神经元模型

神经网络的基础构成单元是神经元模型,其设计灵感来源于生物神经系统。一个神经元接收来自多个其他神经元的输入信号,这些输入信号通过神经突触(在人工神经网络中对应于权重)传递给神经元。

一个神经元可以用以下数学模型表示:
y=f(w1x 1+w 2x 2+⋯+w nx n +b)

神经元训练:
神经元的训练涉及调整权重和偏置的值,以便于当给定一组输入时,神经元产生期望的输出。这通常通过一个叫做反向传播的训练过程和一个优化算法(如梯度下降)来实现。

神经元模型意义:
神经元模型的重要性在于它提供了一种简单但强大的方式来模拟人类大脑中神经元的功能。通过这种模拟,我们可以构建能够执行复杂任务(如图像和语音识别、自然语言处理等)的人工神经网络。

1.1.1 基本结构

输入信号:
每个神经元可以接收多个输入信号,这些信号代表其他神经元或外部源的输出。
权重:
每个输入信号都有一个权重,表示该信号的重要性。权重决定了输入信号对神经元激活程度的影响大小。
加权求和:
神经元内部将所有输入信号加权求和,得到一个总的输入值。
激活函数:
总输入值通过激活函数处理,激活函数的作用是引入非线性,使得网络能够学习复杂的模式。常见的激活函数包括Sigmoid、双曲正切(tanh)和修正线性单元(ReLU)。

1.1.2 激活函数

激活函数在神经网络中扮演着至关重要的角色。它决定了一个神经元是否应该被激活,从而影响信号的传递。

Sigmoid函数:
Sigmoid函数的输出范围在0到1之间,它能够将输入值映射到一个平滑的概率分布上。
双曲正切函数(tanh):
tanh函数的输出范围在-1到1之间,相较于Sigmoid函数,它的输出更接近于真实的神经元输出。
修正线性单元(ReLU):
ReLU函数在输入为正时输出该输入,否则输出0。它解决了Sigmoid函数在激活值非常高或非常低时的梯度消失问题。

1.2 感知机和多层网络

感知机是最早的神经网络模型之一,由Rosenblatt于1957年提出。它是一种线性分类器,也是神经网络和深度学习的基础。

1.2.1 感知机模型

基本概念:
感知机是一个单层神经网络,由输入层和输出层组成,适用于二分类问题。
数学表示:
感知机通过计算输入向量和权重向量的点积,再加上偏置项来决定输出。
感知机的局限性:

  • 线性可分问题: 感知机只能处理线性可分的数据集。对于非线性可分的数据,感知机无法收敛。
  • XOR问题: 感知机无法解决异或(XOR)问题,这一发现促使了多层神经网络的发展。

1.2.2 多层网络

为了克服感知机的局限性,引入了多层神经网络,也称为多层感知机(MLP)。
结构:
MLP由一个输入层、若干隐藏层和一个输出层组成。
非线性激活函数:
隐藏层的引入使得网络能够学习非线性关系,常用的非线性激活函数包括ReLU、sigmoid和tanh。
解决复杂问题:
MLP能够解决复杂的非线性问题,如图像识别、语音识别等。
多层网络的训练:

  • 误差逆传播: MLP通常使用误差逆传播算法进行训练,算法通过计算输出误差并将误差信息反向传播到网络中,以更新权重和偏置。
  • 梯度消失问题: 在深层网络中,梯度可能随着层数增加而迅速减小,导致训练困难。使用ReLU等激活函数可以部分缓解这一问题。

多层网络的应用:
多层网络在众多领域都有广泛应用,特别是在复杂任务如图像处理、自然语言处理和语音识别等领域。

1.3 误差逆传播算法

误差逆传播算法(Backpropagation,简称BP)是一种用于训练多层前馈神经网络的核心算法。它在1986年由Rumelhart, Hinton和Williams提出,标志着深度学习的重要进步。

1.3.1 基本原理

误差逆传播算法是一种监督学习方法,它通过调整神经网络的权重来最小化预测输出和真实标签之间的误差。
前向传播:
输入信号从输入层开始,经过隐藏层,最终到达输出层,形成网络的预测输出。
计算误差:误差是预测输出与真实标签之间的差异,通常使用均方误差(MSE)或交叉熵损失函数来计算。
反向传播:
误差从输出层反向传播回输入层,过程中计算每个权重对输出误差的影响(即梯度)。
关键步骤:

  • 梯度计算: 对于网络中的每一个权重,计算损失函数相对于该权重的偏导数。这一步骤使用链式法则来计算。
  • 权重更新: 使用梯度下降或其他优化算法来更新权重。

1.3.2 算法优化

学习率调整:
固定学习率可能导致训练过程缓慢或不稳定。使用自适应学习率可以改善这一问题。
动量项(Momentum):
在梯度下降中加入前一步的梯度,以加速训练过程并减少震荡。
正则化:
加入L1或L2正则化项可以减少过拟合。

1.3.3 误差逆传播的挑战

梯度消失:
在深层网络中,梯度可能会随着层数的增加而迅速减小,导致训练停滞。
计算复杂度:
BP算法需要大量的矩阵运算,对计算资源要求较高。
局部最小点:
BP算法可能会陷入局部最小点,而非全局最小点。

1.4 全局最小和局部极小

在神经网络训练过程中,一个重要的挑战是区分并处理全局最小点和局部极小点。这个问题在优化理论中十分关键,特别是在训练复杂的深度学习模型时。

1.4.1 全局最小点

定义:
全局最小点是损失函数在整个参数空间中能达到的最低点。
特点:
在全局最小点,模型将达到可能的最佳性能。
挑战:
在高维和复杂的参数空间中,找到全局最小点是非常困难的。

1.4.2 局部极小点

定义:
局部极小点是损失函数在参数空间的某个局部区域内的最低点,但不是整个空间的最低点。
问题:
在局部极小点,模型的性能可能不是最佳的。训练过程可能会在这些点停滞,导致模型未能充分学习数据中的模式。

1.4.3 避免局部极小的策略

随机初始化:
通过随机初始化权重,可以增加找到更好全局最小点的可能性。
动量法(Momentum):
动量法可以帮助优化算法跳出局部极小点,更有可能接近全局最小点。
学习率调整:
自适应学习率算法如AdaGrad或Adam,可以根据训练过程中的梯度变化自动调整学习率。
正则化:
加入正则化项(如L1或L2)可以减少过拟合,有时也有助于避开局部极小点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值