pytorch 神经网络

神经网络

  • [1 感知神经网络](#1 感知神经网络)
    • [**2. 人工神经元**](#2. 人工神经元)
      • [2.1 构建人工神经元](#2.1 构建人工神经元)
      • [2.2 组成部分](#2.2 组成部分)
      • [2.3 数学表示](#2.3 数学表示)
      • [2.4 对比生物神经元](#2.4 对比生物神经元)
    • [3. 深入神经网络](#3. 深入神经网络)
      • [3.1 基本结构](#3.1 基本结构)
      • [3.2 网络构建](#3.2 网络构建)

我们要学习的 深度学习 (Deep Learning)是神经网络的一个子领域,主要关注更深层次的神经网络结构,也就是 深层神经网络 (Deep Neural Networks,DNNs)。所以,我们需要先搞清楚什么是神经网络!

1 感知神经网络

神经网络(Neural Networks)是一种模拟人脑神经元网络结构的计算模型,用于处理复杂的模式识别、分类和预测等任务。生物神经元如下图:

生物学:

人脑可以看做是一个生物神经网络,由众多的神经元连接而成

  • 树突:从其他神经元接收信息的分支
  • 细胞核:处理从树突接收到的信息
  • 轴突:被神经元用来传递信息的生物电缆
  • 突触:轴突和其他神经元树突之间的连接

人脑神经元处理信息的过程:

  • 多个信号到达树突,然后整合到细胞体的细胞核中(输入层)
  • 当积累的信号超过某个阈值,细胞就会被激活(隐藏层)
  • 产生一个输出信号,由轴突传递。(输出层)

神经网络由多个互相连接的节点(即人工神经元)组成

2. 人工神经元

​ 人工神经元(Artificial Neuron)是神经网络的基本构建单元,模仿了生物神经元的工作原理。其核心功能是接收输入信号,经过加权求和和非线性激活函数处理后,输出结果。

2.1 构建人工神经元

人工神经元接受多个输入信息,对它们进行加权求和,再经过激活函数处理,最后将这个结果输出。

2.2 组成部分

  • 输入(Inputs): 代表输入数据,通常用向量表示,每个输入值对应一个权重。
  • 权重(Weights): 每个输入数据都有一个权重,表示该输入对最终结果的重要性。
  • 偏置(Bias): 一个额外的可调参数,作用类似于线性方程中的截距,帮助调整模型的输出。
  • 加权求和: 神经元将输入乘以对应的权重后求和,再加上偏置。
  • 激活函数(Activation Function): 用于将加权求和后的结果转换为输出结果,引入非线性特性,使神经网络能够处理复杂的任务。常见的激活函数有Sigmoid、ReLU(Rectified Linear Unit)、Tanh等。

2.3 数学表示

如果有 n 个输入 x 1 , x 2 , ... , x n x_1, x_2, \ldots, x_n x1,x2,...,xn,权重分别为 w 1 , w 2 , ... , w n w_1, w_2, \ldots, w_n w1,w2,...,wn,偏置为 b b b,则神经元的输出 y y y 表示为:
z = ∑ i = 1 n w i ⋅ x i + b y = σ ( z ) z=\sum_{i=1}^nw_i\cdot x_i+b \\ y=\sigma(z) z=i=1∑nwi⋅xi+by=σ(z)

其中, σ ( z ) \sigma(z) σ(z) 是激活函数。

例如:

线性回归:
y = ∑ i = 1 n w i ⋅ x i + b y=\sum_{i=1}^nw_i\cdot x_i+b \\ y=i=1∑nwi⋅xi+b

线性回归不需要激活函数

逻辑回归:
z = ∑ i = 1 n w i ⋅ x i + b y = σ ( z ) = s i g m o i d ( z ) = 1 1 + e − z z=\sum_{i=1}^nw_i\cdot x_i+b \\ y=\sigma(z)=sigmoid(z)=\frac{1}{1+e^{-z}} z=i=1∑nwi⋅xi+by=σ(z)=sigmoid(z)=1+e−z1

  • 一个神经网络就是将数据输入(输入层)通过某个函数计算(隐藏层)最终得到一个新数据(输出层)的过程

2.4 对比生物神经元

人工神经元和生物神经元对比如下表:

生物神经元 人工神经元
细胞核 节点 (加权求和 + 激活函数)
树突 输入
轴突 带权重的连接
突触 输出

3. 深入神经网络

神经网络是由大量人工神经元按层次结构连接而成的计算模型。每一层神经元的输出作为下一层的输入,最终得到网络的输出。

3.1 基本结构

神经网络有下面三个基础层(Layer)构建而成:

  • 输入层(Input): 神经网络的第一层,负责接收外部数据,不进行计算。

  • 隐藏层(Hidden): 位于输入层和输出层之间,进行特征提取和转换。隐藏层一般有多层,每一层有多个神经元。

  • 输出层(Output): 网络的最后一层,产生最终的预测结果或分类结果

3.2 网络构建

我们使用多个神经元来构建神经网络,相邻层之间的神经元相互连接,并给每一个连接分配一个权重,经典如下:

注意:同一层的各个神经元之间是没有连接的。

相关推荐
乌恩大侠30 分钟前
自动驾驶的未来:多模态传感器钻机
人工智能·机器学习·自动驾驶
光锥智能2 小时前
AI办公的效率革命,金山办公从未被颠覆
人工智能
GetcharZp2 小时前
爆肝整理!带你快速上手LangChain,轻松集成DeepSeek,打造自己的AI应用
人工智能·llm·deepseek
猫头虎2 小时前
新手小白如何快速检测IP 的好坏?
网络·人工智能·网络协议·tcp/ip·开源·github·php
GeeJoe3 小时前
凡人炼丹传之 · 我让 AI 帮我训练了一个 AI
人工智能·机器学习·llm
小和尚同志3 小时前
Dify29. 为你的 Dify API 穿层衣服吧
人工智能·aigc
不会学习的小白O^O3 小时前
神经网络----卷积层(Conv2D)
人工智能·深度学习·神经网络
bastgia3 小时前
Transformer终结者?Google DeepMind新架构实现2倍推理速度和一半内存占用
人工智能·llm
努力一点9483 小时前
ubuntu22.04系统入门 linux入门(二) 简单命令 多实践以及相关文件管理命令
linux·运维·服务器·人工智能·gpu算力