1. 引言
本博客剖析神经网络的核心概念、工作原理及其在深度学习领域的广泛应用。无论你是初学者还是有经验的研究者,这里都将为你提供深入理解神经网络的宝贵信息。让我们一同探索神经网络的奥秘,发现其在解决实际问题中的独特魅力。
1.1介绍神经网络
神经网络(Neural Networks)是机器学习中一类强大的模型,它们受到人脑神经元网络的启发。神经网络通常由多个层(Layers)组成,每个层包含多个神经元(Neurons),这些神经元通过连接权重(Weights)相互连接。神经网络通过学习数据之间的复杂关系来执行任务,例如分类、回归、聚类等。



1.2神经网络在解决复杂问题中的应用
神经网络在许多领域取得了显著的成功,包括计算机视觉、自然语言处理、语音识别等。深度学习的兴起使得神经网络能够处理大规模、复杂的数据,成为机器学习领域的重要技术。一些例子:
-
计算机视觉(CV):
- 图像分类:神经网络可用于对图像进行分类,例如识别猫和狗。
- 目标检测:神经网络能够检测图像中的多个物体并标注它们的位置。
- 人脸识别:神经网络在人脸识别领域取得了显著的成果。
-
自然语言处理(NLP):
- 文本分类:神经网络可用于对文本进行情感分析、主题分类等。
- 机器翻译:神经网络在机器翻译任务中取得了令人瞩目的效果。
- 文本生成:生成模型如循环神经网络(RNN)和变换器(Transformer)能够生成自然语言文本。
-
语音识别:
- 语音转文本:神经网络可以将语音信号转换为文本,应用于语音识别系统。
- 说话人识别:神经网络能够识别不同说话人的声音特征。
-
医学影像分析:
- 医学图像识别:神经网络可用于分析医学图像,如X射线、MRI和CT扫描,用于病灶检测和疾病分类。
- 生物医学信号处理:神经网络在处理生物医学信号(如心电图、脑电图)方面也表现出色。
-
游戏和娱乐:
- 游戏智能体:神经网络可用于训练游戏智能体,提高其在视频游戏中的表现。
- 影视特效:神经网络在图像生成和处理中可以用于创建逼真的特效和场景。
-
生物信息学:
- 蛋白质结构预测:神经网络在预测蛋白质结构方面取得了一些突破。
- 基因组学数据分析:神经网络可用于处理大规模基因组学数据,发现潜在的生物学模式。
2. 神经网络结构

神经元的结构和工作原理:
- 结构: 一个神经元包括输入层、权重和激活函数。输入层接收来自前一层的输入,每个输入都有一个相应的权重,而激活函数则决定了神经元的输出。
- 工作原理: 输入通过权重进行加权求和,然后经过激活函数得到输出。这个输出被传递到下一层,形成神经网络的信息传递过程。
以下是关键概念:
1.神经元: 神经元是神经网络中的基本单元,每个神经元接收来自上一层的输入,通过加权求和并应用激活函数产生输出。


2.层: 神经网络通常包含输入层、隐藏层和输出层。输入层接收原始数据,隐藏层进行复杂的特征变换,输出层生成模型的预测结果。输入层(Input Layer): 接收原始数据的层,每个神经元对应输入数据的一个特征。输入层的神经元数量由特征的维度决定。隐藏层(Hidden Layer): 位于输入层和输出层之间的一层或多层,负责学习输入数据的抽象特征表示。每个隐藏层包含多个神经元,每个神经元与上一层的所有神经元相连。输出层(Output Layer): 提供模型的最终输出,其神经元的数量取决于任务类型,如分类任务的输出层神经元数量对应类别数。
3.权重: 权重是连接神经元之间的参数,它们表示了每个连接的重要性。神经网络通过学习调整这些权重,以使模型更好地拟合数据。(神经元的输出为:接收到的每个输入a乘以权重w再求和,再叠加一个激活函数g后得到输出值z)

4.激活函数: 激活函数引入非线性性,使神经网络能够学习更复杂的函数。常见的激活函数包括Sigmoid、ReLU(Rectified Linear Unit)、sgn等。

5.前向传播: 在前向传播过程中,数据从输入层经过隐藏层到输出层,每一层的神经元计算和传递信号。
6.反向传播: 反向传播是通过最小化损失函数来调整神经网络权重的过程。它使用梯度下降等优化算法来更新权重,使得模型的预测更接近实际值。
9.深度学习: 当神经网络包含多个隐藏层时,被称为深度神经网络。深度学习是指通过训练深度神经网络来学习复杂的特征表示和数据的层次结构。
3. 损失函数和优化算法
1.损失函数(代价函数、残差函数):损失函数衡量了模型的预测值与真实标签之间的差异。通过最小化损失函数,我们能够使模型的预测更接近实际值。
交叉熵损失函数: 用于分类问题,特别适用于多类别分类。交叉熵损失函数对于不同类别之间的差异进行了更敏感的建模,有助于提高分类准确性。
均方误差(Mean Squared Error,MSE): 用于回归问题,衡量模型的预测值与实际值之间的平均平方差。MSE对大误差的惩罚较重,适用于连续数值的预测任务。(可以看我之前的笔记--线性模型)

2.优化算法: 优化算法用于调整神经网络的权重,以最小化损失函数。常见的优化算法包括梯度下降、随机梯度下降(SGD)、Adam等。
梯度下降(Gradient Descent): 通过计算损失函数对模型参数的梯度,以迭代的方式更新参数,使损失函数逐渐降低。梯度下降有多个变种,包括批量梯度下降、小批量梯度下降和随机梯度下降。定义学习率,用学习率、误差、权重来更新权重:


Adam优化算法: 结合了梯度的一阶矩估计和二阶矩估计,具有自适应学习率的特性,适用于不同类型的神经网络任务。
4. 常见神经网络(Artificial Neural Network)
6.1 感知机(单神经元模型)
感知机是用于分类的神经网络模型(其激活函数为阶跃函数sgn)。单层感知机只有输入层和输出层,仅适用于线性可分的模式。为了能解决更复杂的分类问题,在单层感知机的输出层和输出层之间增加多个隐藏层,便成为多层的感知机。

从几何角度说,感知机的学习目标是得到一个可以正确划分数据集(线性可分的)中正负样本的超平面,为超平面方程。其中,
为法向量,法向量指向的为正空间,反之为负空间。算法过程:
定义损失函数:
随机初始化w、b,代入已知标签样本数据集T找出误分类样本。因为这是一个只有正负样本的数据,所以误分类集M情况有①把原本应该分为正样本(1)的分为了负样本(<0标记为0),②反之把应该为负(0)的分为了正的(>1为1)。这样就有:对于两种误分类情况都有下面这个式子成立(可以代入验证一下):

所以,对于这个数据集T,定义损失函数如下:

损失函数非负;误分类越少,误分类点离这个超平面越近,损失函数值就越小;没有错误分类值就为0。
把(b)记作
就可以把原来的损失函数改写,最后就是最小化损失值:

然后使用随机梯度下降方法(随机选取一个误分类点让其梯度下降),更新权重:
损失函数对w求导,得到损失函数的梯度为:

更新:

这里的w解不唯一,类似地可能存在多个局部最小值。也可以从几何角度理解:可能存在不同倾斜角度的直线都可以把正负样本分开。
多层神经元可以解决非线性可分问题,参考西瓜书:

6.2 BP神经网络—误差反向传播算法(Error Back Propagation Training):
现实任务中使用神经网络时,大多是在使用 BP 算法进行训练。值得指出的是,BP 算法不仅可用于多层前馈神经网络还可用于其他类型的神经网络例如训练递归神经网络。但通常说“BP 网络”时,一般是指用 BP算法训练的多层前馈神经网络。
其主要的特点是:信号是正向传播的,而误差是反向传播的。误差用来调整参数
正向传播:

若神经网络的输出为,激活函数f为sigmoid函数。
则得到均方误差为:

反向传播:
使用随机梯度下降来更新参数:

其中的一些参数为:

本篇文章为学习笔记,可能存在错误,欢迎大家指正。此外,文中一些图片来自网络,一些笔记来自周志华老师的《机器学习》,以及【吃瓜教程】《机器学习公式详解》南瓜书(B站),详细解释可自行查阅。
本文深入解析神经网络的工作原理,涵盖其在各种领域的应用,包括计算机视觉、自然语言处理等,介绍了神经元、层、权重、激活函数等核心概念,以及深度学习、损失函数和优化算法的细节。
1274

被折叠的 条评论
为什么被折叠?



