神经网络基础:深度学习的第一课
今日学习
今天系统学习了深度学习入门的第一课——神经网络。作为深度学习的核心算法,神经网络通过学习权重(Weights)和偏置(Bias),将我们人类眼中的原始数据(图片、文字、表格)转化为计算机能够理解的特征表达。
为了更好地理解神经网络是如何“思考”的,推荐大家配合这个超赞的可视化工具一起阅读:
👉 ConvNetJS 2D Classification Demo
(在这个网页里,你可以实时看到神经网络如何通过增加层数和改变激活函数,把杂乱的数据点完美分开。)

一、 神经网络的基本结构
神经网络模拟了生物神经元的传递过程,其结构主要分为三层:
-
输入层 (Input Layer):负责接收原始数据。
-
隐层 (Hidden Layer):
-
这是模型最核心的部分。
-
通过全连接(Fully Connected)结构和激活函数提取特征。
-
视觉直觉:在上面的 ConvNetJS 演示中,隐层其实是在对坐标空间进行“扭曲”,直到能用一条线把不同颜色的点分开。
-
-
输出层 (Output Layer):将提取到的特征映射到最终的分类概率或数值结果上。
二、 训练机制:前向传播与反向传播
神经网络的“学习”本质上是一个不断纠错、寻找最优参数的过程:
-
前向传播 (Forward Propagation):数据从输入层出发,经过每一层权重的加权求和与非线性变换,最终计算出预测值。
-
损失函数 (Loss Function):
-
利用 Softmax 算法将输出转化为预测概率。
-
通过 对数损失/交叉熵 来量化预测值与真实标签之间的差距(即“损失”值)。
-
-
反向传播 (Backpropagation):
-
这是神经网络的“纠错灵魂”。利用链式法则计算损失对每个权重的偏导数,确定每个参数该为错误负多少责。
-
-
梯度下降 (Gradient Descent):
-
根据反向传播计算出的梯度,更新权重。
-
学习率决定了修正的步长。学习率太大会跳过最优解(演示页面中你会看到色块剧烈跳动),太小则会导致训练异常缓慢。
-
三、 激活函数:打破线性禁锢
如果没有激活函数,再多层的网络也只是在做简单的线性运算,无法处理复杂的曲线边界。
-
Sigmoid:早期的主流,但容易导致深层网络梯度消失。
-
ReLU (Rectified Linear Unit):目前最常用的激活函数。它计算极其简单,且能有效缓解梯度消失问题,是隐层的首选。
-
Softmax:主要用于输出层,将结果归一化为概率分布(总和为1)。
四、 实战优化:如何让模型更健壮?
在实际训练中,我们经常会遇到过拟合(Overfitting)——即模型在训练集上表现完美,但在新数据上翻车。常用的解决方法包括:
-
正则化惩罚 (Regularization):通过 L1/L2 惩罚项限制权重过大,防止模型走极端。
-
Dropout (随机失活):训练时随机让部分神经元“休息”,迫使网络学习更稳健的特征,而不是死记硬背。
-
数据预处理与初始化:
-
标准化:将数据缩放到统一量级,加快收敛。
-
参数初始化:绝对不能全设为0!合理的随机初始化(如 He 初始化)能让模型有一个良好的开端。
-
💡 个人感悟:神经网络到底是什么?
学习完今天的课程,并玩了 Karpathy 的 Demo 后,我对手中的神经网络有了新的认识:
-
它是一个万能拟合器:只要给它足够多的神经元和正确的数据,它可以拟合现实世界中任何复杂的逻辑。
-
它把“直觉”量化了:以前我们很难告诉计算机为什么这张图是猫,现在神经网络通过数以亿计的参数,把这种模糊的“视觉直觉”变成了一场精确的矩阵运算。
📅 下次课预告
掌握了全连接神经网络的基础后,接下来我们将学习:
-
卷积神经网络 (CNN):专为图像而生的结构。
-
Transformer:目前大模型(LLM)时代最耀眼的架构。
如果你也正在学习深度学习,强烈建议去那个 Demo 链接 动手点一点,观察一下增加 Layer 后分类边界的变化!
欢迎在评论区一起讨论学习心得!点赞收藏不迷路,我们下期见!
更多推荐

所有评论(0)