人工智能入门-第一周

人工智能入门-第一周

神经网络

什么是神经网络?

神经网络(Neural Network)是一种模拟生物神经系统的计算模型由大量相互连接的人工神经元组成

这些神经元通过权重连接成多个层次,从而可以学习和处理复杂的非线性关系。

神经网络的基本结构

神经元通常包含三层:

  1. 输入层(Input Layer):接受外部输入数据,每一个输入对应一个神经元。
  2. 隐藏层(Hidden Layers):位于输入层和输出层之间,可以有一个或多个隐藏层,每一层的每一个神经元都接收前一层所有神经元的输出信号,并且通过激活函数进行非线性变换。
  3. 输出层(Output Layer):生成最终输出结果,每个输出对应一个神经元。

神经元

什么是神经元?

神经元(Neuron)是神经网络的基本构建单元,模拟了生物神经系统的神经细胞。每一个神经元接收其他神经元的输出信号,通过计算生成输出信号,并传递给下一个神经元或网络的输出层。

神经元的基本结构

典型的人工神经元包含以下部分:

  1. 输入(Inputs):
    1. 接收前一层神经元的输出,或者从神经网络的输入层直接获得原始数据
    2. 输入通常用向量表示,如\(x=\left[x_1,x_2,...,x_n\right]\)
  2. 权重(Weights):
    1. 每一个输入连接都有一个权重,与输入信号进行加权求和。
    2. 权重用向量表示,如\(w=\left[w_1,w_2,...,w_n\right]\)
  3. 偏置(Bias):
    1. 每个神经元还有一个偏置项(bias),用于调整加权和的输出
    2. 偏置通常表示为\(b\)
  4. 加权和(Weighted Sum):
    1. 神经元对输入信号和权重进行加权求和,加上偏置项。
    2. 计算公式:\(z=w\bullet x+b\)
  5. 激活函数(Activation Function):
    1. 加权和通过激活函数进行非线性变换,生成神经元输出。
    2. 常见激活函数有Sigmoid,Tanh和ReLU
  6. 输出(Output):
    1. 激活函数的输出即为神经元的输出信号
    2. 输出可以作为下一层神经元的输入,或作为最终输出结果。

神经元工作流程

  1. 接收输入信号:接收上一层神经元的输入或从输入层接收输入信号。
  2. 加权求和:将输入信号与对应的权重相乘,然后求和,并加上偏置。
  3. 激活函数:将加权和传递给激活函数,生成非线性输出。
  4. 传递输出信号:将激活函数的输出传递给下一层神经元或输出层。

神经元的数学表示

一个神经元的数学表示如下

\(z=w\bullet x+b\)

\(a = \sigma(z)\)

其中\(z\)是加权和,\(w\)是权重向量,\(x\)是输入向量,\(b\)是偏置,\(\sigma\)是激活函数,\(a\)​是激活函数的输出。

单个神经元简易计算过程的示例代码

示例代码

激活函数

什么是激活函数?

激活函数(Activation Function)是神经网络中的一个重要组成部分。

主要作用是引入非线性变换,使神经网络能够学习和表示复杂的非线性关系。

激活函数通过将线性组合的输入信号转变为非线性输出,从而使得神经网络可以逼近任意复杂函数。

常见的激活函数

Sigmoid函数

  • 特点:输出范围为 (0, 1),常用于二分类问题的输出层。
  • 优点:输出值在 (0, 1) 之间,适合处理概率问题。
  • 缺点:容易导致梯度消失问题,特别是在深层网络中。

Tanh(双曲正切)函数

  • 特点:输出范围为 (-1, 1),常用于隐藏层。
  • 优点:输出均值为0,相对于Sigmoid,梯度消失问题有所减缓。
  • 缺点:仍然可能导致梯度消失问题。

ReLU(Rectified Linear Unit)函数

  • 特点:输出范围为 [0, ∞),常用于隐藏层。

  • 优点:计算简单,不会出现梯度消失问题。

  • 缺点:可能导致神经元“死亡”问题,即某些神经元可能永远不会被激活(输出为0)。

Leaky ReLU函数

特点:输出范围为 (-∞, ∞)。

优点:解决ReLU的“死亡”问题,通过引入一个很小的负斜率。

缺点:需要手动调整负斜率参数。

Softmax函数

  • 特点:将输入向量转换为概率分布,常用于多分类问题的输出层。
  • 优点:输出为概率分布,所有值之和为1。
  • 缺点:计算量较大,特别是在大规模分类任务中。

激活函数简单使用代码

示例代码

全连接神经网络

什么是全连接神经网络?

全连接神经网络(Fully Connected Neural Network,FCNN),是一种基础的神经网络模型。

特点是每一层中的每一个神经元都与下一层中的每一个神经元相连。

典型的神经网络训练过程

  1. 生成标签数据
  2. 将标签数据数值化
  3. 将数值化后的标签数据标准化(一般用归一化),构成数据向量
  4. 权重矩阵与数据向量(+偏置)做矩阵乘法,得到结果向量
  5. 将结果向量通过激活函数(Sigmod、Relu、Tanh)得到logits
  6. 对logits做oftmax,得到概率分布
  7. 如果预测错误,使用损失函数计算损失(LOSS)
  8. 再通过求梯度等方法,使用损失去调整权重矩阵

PS

  1. 神经网络的计算只有浮点数的加减乘除

卷积神经网络

posted @ 2024-06-16 23:36  Texley  阅读(82)  评论(0)    收藏  举报