一、生物神经网络

——单个神经元

                        

二、神经网络NN

人工神经网络(Artificial Neural Network, 简写为ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的计算模型

——单个神经元

                        ​​​​​​​        ​​​​​​​        

——多个神经元

                ​​​​​ 

目的

深度学习中神经网络的目的就是为了自动提取特征

任务

主要是针对有监督学习(更多的是分类问题

使用神经网络:只做特征提取,不会改变输入的样本数

组成

        ​​​​​​​        ​​​​​​​        ​​​​​​​      

神经网络:

1. 输入层(Input Layer)
  • 接收原始输入数据(如图像像素、文本向量、传感器数值等)。
  • 每个节点对应一个特征(feature),不进行计算,只传递数据。
2. 隐藏层(Hidden Layers)
  • 位于输入层和输出层之间,可以有多个。
  • 每个神经元对上一层的输出做加权求和 + 偏置,然后通过激活函数产生输出。
  • 是网络“学习特征”的核心部分。
3. 输出层(Output Layer)
  • 输出最终结果,比如类别概率、连续值等。
  • 输出节点数取决于任务:
    • 二分类:1个节点(Sigmoid)
    • 多分类:N个节点(Softmax)
    • 回归:1或多个节点(线性激活)

三、单个神经元

        ​​​​​​​        ​​​​​​​        ​​​​​​​                

组成

  • 加权求和(内含初始化参数)
  • 激活函数

1.初始化参数

背景:输入的数据也就是特征,实际是有一定规律的,初始化参数是为了让模型有“能力”去“学习并保存”这些规律,将规律复用

方法:

初始化类型 PyTorch 函数 适用场景
全零初始化 nn.init.zeros_(tensor) 一般不用于权重;可用于偏置(bias)初始化
全一初始化 nn.init.ones_(tensor) 多用于偏置或特定约束层
固定值初始化 nn.init.constant_(tensor, val) 自定义常数初始化,如设为 0.1、-1 等
均匀分布初始化 nn.init.uniform_(tensor, a, b) 通用初始化,需指定范围
正态分布初始化 nn.init.normal_(tensor, mean, std) 微调或自定义分布初始化
Kaiming 正态初始化 nn.init.kaiming_normal_(tensor) ReLU 及其变体激活的层,深层网络推荐
Kaiming 均匀初始化 nn.init.kaiming_uniform_(tensor) 同上,使用均匀分布
Xavier 正态初始化 nn.init.xavier_normal_(tensor) Sigmoid 或 Tanh 激活的层,浅层网络常用
Xavier 均匀初始化 nn.init.xavier_uniform_(tensor) 同上,使用均匀分布

权重:主选 Kaiming初始化,Xavier初始化。

2.激活函数

背景:线性关系很难拟合现实关系,将线性关系变为非线性关系,引入非线性因素

方法:

函数 用途
Sigmoid 二分类输出
Tanh 隐藏层(均值为0)
ReLU 最常用隐藏层激活函数
Softmax 多分类输出层

主选:

对于隐藏层:

  • ReLU>Leaky ReLu>tanh>sigmoid(少使用)

对于输出层:

  • 二分类问题:sigmoid
  • 多分类问题:softmax
  • 回归问题:identity(恒等)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐