本文最后更新于24 天前,其中的信息可能已经过时,如有错误请发送邮件到zhangweihao22@outlook.com
无聊逛B站刷到了一个不错的科普神经网络的视频集,每个视频对应形象化解释了部分概念,具有梯度性质,适合新手学习
因此,这篇文章是本人基于一个科普视频的概念初步理解
Part 0 从函数到神经网络
从函数到神经网络【白话DeepSeek01】哔哩哔哩bilibili
- 科普AI的发展 从函数精确复合的符号主义转向接近答案的联结主义
- 举例线性函数拟合来示例如何猜测参数值 调整参数,直到获得的图像和已知数据差值达到预定范围
- 从线性函数拟合延伸到非线性函数的拟合,引入非线性的激活函数(线性函数外嵌套的非线性函数)
- 再从函数形式延伸到神经网络形式 提示:不要硬和生物的神经网络联系在一起,就把它看作一种数据处理的方式就行
- 示例神经网络从左到右计算得到结果的过程,引出前向传播
Part 1 如何计算神经网络的参数
如何计算神经网络的参数【白话DeepSeek02】哔哩哔哩bilibili
- 从误差损失分析提出损失函数的概念,并对应介绍作为其中一种的均方误差 为了使拟合误差更小,我们需要使得损失函数越小。因此根据值反向求出 w 和 b(参数)值
- 通过简单的线性回归的问题,发现可以直接令损失函数的导数为0直接求得 w 和 b
- 从线性回归到神经网络中的非线性函数,复杂性的暴增使得只能通过调参逼近真实答案,这个过程被称为梯度下降 神经网络的复杂性让我们没有办法直接得到 w 和 b 的解析解,只能一点点往偏导数【本人在看视频的时候没有接触这个数学计算,因此在听到这里的时候有些迷】反方向(调参来逼近真实答案
- 为了获得偏导数使用链式法则逐层求导并逐层更新参数,这个过程叫做反向传播
- 由前向传播和反向传播一起构成了神经网络的训练过程
Part 2 如何获得理想参数【避免过拟合】
调教神经网络咋这么难?【白话DeepSeek03】哔哩哔哩bilibili
- 通过对过拟合现象的举例,指出不是神经网络的规模越大效果越好。 因为神经网络在学习过程中会吧“噪声”和误差学习进去
- 举例数据集过小会导致训练的参数结果特殊化,引出数据增强。 举例在原有图片基础上进行裁剪、增加噪声、旋转等操作增加数据集内容
- 通过讨论如何抑制过拟合,引出惩罚项【向损失函数中添加权重(比如说参数变量的平方)】、正则化以及正则化参数多个概念【正则化就是指使用惩罚项训练】
- 又通过讨论如何避免过度依赖部分参数导致过拟合现象发生,引出Dropout概念 每次训练随机丢失部分参数
其它模型训练有关问题以及部分解决方法