第一周:神经网络基础——从感知机到多层网络

模块四 · 第 1/4 周 预计 3.5 小时

本周目标

从最简单的单个神经元开始,用 NumPy 实现前向传播。理解权重、偏置、激活函数。最终实现一个能学习 XOR 问题的 2 层网络。

本周里程碑:用 NumPy 实现一个能学习 XOR 的 2 层网络——不需要任何深度学习框架。

1. 核心概念讲解

1.1 什么是「神经网络」?——一堆旋钮

把神经网络想象成一个调音台:

🎛️

输入(声音)→ 经过一大堆旋钮(参数/权重)→ 输出(调制后的声音)。训练就是「根据输出和目标差多少,反方向微调每个旋钮」。

一个神经元做的事非常简单:

输入: x₁, x₂, x₃ (比如三个数字)
权重: w₁, w₂, w₃ (每个输入的重要性)
偏置: b (阈值)

计算: z = x₁·w₁ + x₂·w₂ + x₃·w₃ + b
输出: a = activation(z)  (比如 ReLU(z) = max(0, z))

就是一个加权求和 + 一个非线性函数。 无数个这种东西叠在一起,就能学会极其复杂的模式。

FLUX 生成:感知机到多层网络的进化
从单个神经元(左)到浅层网络(中)到深度网络(右)——每一层做一点点信息变换,层层堆叠就能学会极其复杂的模式。这就是「深度」的含义。
Nano Banana 2 生成:神经网络层结构
看!每一列是一个「层」,每一个圆是一个「神经元」。输入从左进入,逐层传递到右边输出。深度的「深」就是指层数多——GPT-3 有 96 层!

1.2 激活函数:给网络注入「非线性」

如果没有激活函数,多层网络等价于一层(全是矩阵乘法,可以合并)。激活函数打破了这种线性,让网络能学任意复杂的函数。

激活函数公式特点
ReLUf(x) = max(0, x)最常用,简单高效,但负数直接归零
Sigmoidf(x) = 1/(1+e⁻ˣ)输出0~1,适合概率,但梯度易消失
Tanhf(x) = (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ)输出-1~1,比Sigmoid好,但仍有梯度问题

1.3 前向传播:数据流过网络

前向传播图解
输入 x 经过权重 W₁ 变成隐藏层 h,再经过 W₂ 变成输出 ŷ。每一步都是矩阵乘法 + 激活函数。这就是「前向传播」——数据从输入流向输出。

2. 动手实践

实现一个迷你神经网络

创建 neural_net_numpy.py

import numpy as np

class MiniNeuralNet:
    def __init__(self, input_size, hidden_size, output_size):
        # 随机初始化权重(小的随机值)
        self.W1 = np.random.randn(input_size, hidden_size) * 0.01
        self.b1 = np.zeros((1, hidden_size))
        self.W2 = np.random.randn(hidden_size, output_size) * 0.01
        self.b2 = np.zeros((1, output_size))

    def relu(self, x):
        return np.maximum(0, x)

    def forward(self, X):
        """前向传播:X → h → ŷ"""
        # 第一层
        self.z1 = X @ self.W1 + self.b1  # 矩阵乘法
        self.h = self.relu(self.z1)       # 激活函数

        # 第二层(输出层)
        self.z2 = self.h @ self.W2 + self.b2
        self.y_hat = self.z2  # 回归问题不用激活

        return self.y_hat

# 测试:2个输入 → 3个隐藏神经元 → 1个输出
net = MiniNeuralNet(input_size=2, hidden_size=3, output_size=1)

# XOR 数据
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [1], [1], [0]])  # XOR 真值表

# 前向传播
predictions = net.forward(X)
print("预测值:")
print(predictions)
print("(现在还是随机的——下周学反向传播才能训练)")

数学就这么多

前向传播 = 矩阵乘法 + ReLU。就这两步,重复很多层。如果你能看懂 X @ W + b,你已经理解了神经网络 80% 的计算过程。

3. 三视角复盘

原理视角 · 三视角复盘

神经网络 = 大量矩阵乘法 + 非线性激活函数。前向传播从输入算到输出。参数量巨大(GPT-3 有 1750 亿个参数),但核心运算就是矩阵乘法——这就是为什么 GPU(擅长矩阵乘法)对 AI 如此重要。

变现视角 · 三视角复盘

理解神经网络原理让你能判断「要不要微调」「用什么模型」「成本估计」。你不知道怎么造发动机,但知道它怎么工作,才能做出明智的买车决策。同理,不需要自己训练 GPT-4,但理解了架构才知道该用 RAG 还是微调。

教育视角 · 三视角复盘

怎么给孩子讲神经网络?「你看过一个很长的多米诺骨牌吗?推倒第一个,它撞倒后面的,后面的继续撞。神经网络也是这样——信息从一头流进去,经过很多层传递,从另一头流出来。每一层都对信息做一点点改变,最后就变成了完全不同的东西。」

延伸资源

3Blue1Brown - Neural Networks

如果只看一套神经网络的视频教程,看这个。用动画把每个概念讲得清清楚楚。

下周预告

下周学「学习」本身——反向传播。你会亲手写出梯度下降算法,看 Loss 曲线一点点下降。这是整个 AI 学习中最让人兴奋的时刻。