更新时间:作者:小小条
深度学*看起来神秘,本文通过一个最基础的单神经元模型,用公式 + 代码 + 流程图直观展示整个训练过程,让你快速理解前向传播、反向传播和梯度下降。
我们要解决一个简单预测任务:
• 输入 :一个数• 输出 :0 或 1• 模型:单神经元(单层感知机)模型表达式:

其中:
• :权重• :偏置• :Sigmoid 激活函数损失函数:
目标:最小化损失,得到最优的 和 。
输入 x │ ▼ z = w*x + b │ ▼ y_hat = σ(z) (前向传播) │ ▼ L = 0.5*(y_hat - y)^2 (计算损失) │ ▼ 反向传播: 计算梯度 ∂L/∂w, ∂L/∂b │ ▼ 参数更新: w := w - η∂L/∂w b := b - η∂L/∂b │ ▼ 重复迭代
说明:流程图中每一步对应公式和代码实现,直观展示深度学*训练核心流程。
import numpy as np# 数据x = np.array([0.5, 2.0, 3.0, 4.0])y = np.array([0, 0, 1, 1])# 初始化参数w, b = 0.0, 0.0lr = 0.1epochs = 1000def sigmoid(z): return 1 / (1 + np.exp(-z))for epoch in range(epochs): # 前向传播 z = w * x + b y_hat = sigmoid(z) # 损失 loss = 0.5 * np.mean((y_hat - y) ** 2) # 反向传播 dL_dyhat = y_hat - y dyhat_dz = y_hat * (1 - y_hat) dL_dz = dL_dyhat * dyhat_dz dL_dw = np.mean(dL_dz * x) dL_db = np.mean(dL_dz) # 参数更新 w -= lr * dL_dw b -= lr * dL_db if epoch % 100 == 0: print(f"Epoch {epoch}, Loss: {loss:.4f}, w: {w:.4f}, b: {b:.4f}")y_pred = sigmoid(w * x + b)print("预测结果:", y_pred)
数学公式代码实现说明 z = w * x + b线性变换y_hat = sigmoid(z)Sigmoid激活函数loss = 0.5 * np.mean((y_hat - y) ** 2)均方误差损失dL_dz = (y_hat - y) * y_hat * (1 - y_hat)损失对z的梯度dL_dw = np.mean(dL_dz * x)损失对w的梯度dL_db = np.mean(dL_dz)损失对b的梯度w -= lr * dL_dw权重w更新b -= lr * dL_db偏置b更新
符号说明:
• :权重参数,代码中的 w• :偏置参数,代码中的 b• :输入特征• :真实标签• :预测值,代码中的 y_hat• :学*率,代码中的 lr• :Sigmoid函数版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除