面包屑图标 当前位置: 首页
AI资讯
热点详情

深度学习基础知识第三部分

AI热点日报
AI热点日报时间:2026-07-11
热点解读

系统介绍了多维数组与矩阵乘法在神经网络中的应用,详细实现了三层神经网络的前向传播过程,包括隐藏层的sigmoid激活函数及输出层设计,其中回归问题使用恒等函数,分类问题使用sigmoid或softmax函数,并讲解了softmax防止数值溢出的技巧。

本教程将带你系统学习多维数组运算与神经网络前向传播的核心知识。从矩阵乘法的基本操作入手,逐步实现一个三层神经网络的推理过程,并深入讲解输出层的设计原理与激活函数的选用策略。内容通俗易懂,配合代码示例与示意图,助你快速掌握这些关键概念。

一、多维数组与矩阵运算

在深度学习中,数据通常以多维数组(NumPy数组)的形式呈现。掌握数组的维度与形状是学习的第一步。

1.1 获取数组的维数与形状

  • np.ndim():返回数组的维数(轴的数量)。例如,二维数组将返回2。
  • np.shape():返回一个元组,表示数组每个维度的大小。例如,形状 (3,4) 表示3行4列。

提示:形状元组中的元素个数即为维数。例如 shape=(5,) 表示一维数组(向量),shape=(2,3) 表示二维数组(矩阵)。

1.2 矩阵乘法(点积)

神经网络中最重要的运算之一就是矩阵的点积。使用 np.dot(A, B) 计算两个矩阵的乘积。

规则:A(m × n) · B(n × k) = C(m × k)。即第一个矩阵的列数必须等于第二个矩阵的行数。

import numpy as np
A = np.array([[1,2], [3,4]])   # 2×2
B = np.array([[5,6], [7,8]])   # 2×2
C = np.dot(A, B)
print(C)  # 结果: [[19, 22], [43, 50]]

1.3 神经网络中的内积示例

如下图所示,一个简单的神经网络:输入 X 是一维数组(2个元素),权重 W 是二维数组(2×3),输出 Y 是一维数组(3个元素)。计算公式为:X(2) · W(2×3) = Y(3)

注意:这里的 X 是行向量(1×2),W 是2×3,点积得到1×3的行向量 Y,实际代码中可以直接用 np.dot(X, W)。

常见问题:为什么神经网络中要用矩阵乘法,而不是逐元素乘法?

答:矩阵乘法可以一次性完成所有神经元之间的加权求和,效率极高。例如,输入有2个特征,隐藏层有3个神经元,通过一次点积就能同时计算3个神经元的加权和,从而避免显式循环。


二、三层神经网络的实现

下面我们实现一个包含两个隐藏层和一个输出层的全连接神经网络。目前权重和偏置是手动赋值的(后续将用学习算法自动更新)。整个过程称为前向传播

2.1 从输入到第一个隐藏层

输入 X 是一维数组(2个元素),权重 W1 是形状 (2,3) 的二维数组,偏置 B1 是一维数组(3个元素)。计算公式:

A1 = np.dot(X, W1) + B1

这里的 A1 是加权和(3个元素)。然后通过激活函数 sigmoid 得到第一个隐藏层的输出 Z1:

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

Z1 = sigmoid(A1)

2.2 从第一个隐藏层到第二个隐藏层

将 Z1 作为输入,使用权重 W2(形状 (3,2))和偏置 B2(2个元素):

A2 = np.dot(Z1, W2) + B2
Z2 = sigmoid(A2)

2.3 从第二个隐藏层到输出层

最后,使用权重 W3(形状 (2,2))和偏置 B3(2个元素),输出层激活函数选择恒等函数(回归问题常用):

def identity_function(x):
    return x

A3 = np.dot(Z2, W3) + B3
Y = identity_function(A3)

提示:代码中的 W1、W2、W3 和 B1、B2、B3 需要提前定义。例如:W1 = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])

常见问题:为什么第一层权重 W1 的形状是 (2,3)?

答:因为输入有2个特征,第一隐藏层有3个神经元。权重矩阵的行数等于输入特征数,列数等于该层神经元数。偏置的长度等于神经元数。后续各层同理。


三、输出层的设计

输出层激活函数的选择取决于问题的类型:

  • 回归问题(预测连续数值):使用 恒等函数,即 y = x。
  • 二元分类问题(如判断是/否):使用 sigmoid 函数,输出在0~1之间,可解释为概率。
  • 多元分类问题(如识别数字0~9):使用 softmax 函数

3.1 softmax 函数

softmax 将输出层的每个值转换为0~1之间的概率,且所有输出之和为1。公式如下:

yk = exp(ak) / Σi=1n exp(ai)

其中 n 是输出层神经元的个数(即类别数量)。

由于指数函数可能造成数值溢出(例如 exp(1000) 非常大),需要对分子分母同时减去一个常数。通常减去输入中的最大值:

def softmax(a):
    C = np.max(a)          # 获取最大值
    exp_a = np.exp(a - C)  # 减去最大值,避免溢出
    sum_exp_a = np.sum(exp_a)
    y = exp_a / sum_exp_a
    return y

重要特性:

  • 输出值在0~1之间。
  • 所有输出值的总和为1,因此可以解释为概率。
  • 因为指数函数是单调递增的,输出值最大的神经元对应的类别就是概率最高的分类结果。

在分类任务中,输出层神经元的数量就是类别的数量。例如手写数字识别有10个类别(0~9),输出层就有10个神经元,每个神经元代表该数字的概率。

常见问题:为什么 softmax 要减去最大值?

答:防止数值溢出。如果输入中有很大的正数(如1000),exp(1000) 会超出计算机浮点数的表示范围。减去最大值后,最大的指数项变成 exp(0)=1,所有指数项都在可控范围内,且函数值不变(因为分子分母同除以一个常数 exp(C))。


通过本教程,你已经掌握了多维数组运算、三层神经网络的实现,以及输出层激活函数的选择与 softmax 函数的细节。这些知识是构建和训练神经网络的基础。下一阶段可以尝试用真实数据训练网络,并学习反向传播算法来自动更新权重和偏置。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:深度学习基础知识第三部分要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://m.elecfans.com/article/2083620.html
深度学习

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-11 19:40
Mango SEO AI:AI驱动的SEO优化工具

MangoSEOAI是一款面向小型企业和创业者的AI驱动SEO工具,通过批量生成内容、程序化SEO、关键词分析及内容策略等功能,帮助提升搜索引擎排名和自然流量,快速建立主题权威,操作简便且支持WordPress集成与实时数据调用。

AI热点2026-07-11 19:40
免费无限聊天GPT语言模型插件

一款无对话次数与主题限制的AI工具,支持Slack、FacebookMessenger及浏览器插件,提供无限聊天、个性化回应、多语言及隐私保护功能,适用于头脑风暴、信息查询与日常闲聊。

AI热点2026-07-11 19:40
Cognify AI 人工智能驱动的智能平台

CognifyAI内容创作工具是一个AI驱动的在线平台,可在几分钟内生成博客文章、深度文章及社交媒体文案。用户注册后输入主题和提示指令即可自动产出内容,无需技术背景。核心功能涵盖高质量内容、博客、文章及社交媒体帖子的AI生成。

AI热点2026-07-11 19:40
Seekvectors精选海量高清在线矢量Logo图标资源搜索引擎

Seekvectors是一款专为设计师和开发者打造的矢量Logo搜索引擎,收录全球品牌及初创公司标志,免费下载。提供EPS、SVG、JPG、PNG、AI五种格式,适用于网页、印刷、移动端设计,支持商业用途,有效节省素材搜寻时间。

延伸阅读