探索神经网络的奥秘

74 阅读4分钟

一、什么是模型?

模型其实就是一个数学公式,它的目标是用数据解决实际问题

打个比方:你用一个公式 y = 2x + 3 来表示“买 x 个苹果要花多少钱”,那这个公式就是一个模型。设计模型,就是设计这个“数据到结果”的转换过程。

二、模型到底要解决什么问题?

一句话:分类问题

比如:给你一张鱼的照片,要让模型告诉你——这是条什么鱼?

你把图片输入模型,模型会计算出这是“100种鱼”中每一类的概率,最后选出概率最大的那一类作为答案。

三、怎么设计一个模型?

设计模型 = 设计公式 + 找到最合适的常量(参数)。

比如 y = 3x + 5:

  • x 是输入,y 是输出;
  • 3 和 5 是控制输出结果的“常量”;
  • 换个常量,输出就变了。

一个真正的模型,可能有上亿个参数。像 GPT-3 模型,参数有 1750 亿个!这就好比一个超复杂的数学公式,里面藏着一堆待优化的数字。

四、神经网络是啥?

神经网络是受人脑启发的一种模型结构,核心是:分层处理数据

每一层里有很多“节点”,这些节点会对输入数据做处理,提取出某种“特征”,然后传给下一层。这个过程一层一层往下走,直到输出最终的结果。

每个节点之间的连接有“权重”(也就是参数),这些权重决定了数据在网络中的“流动方式”。

五、神经网络的通用数学公式

假设第 n 层有 m 个输入数据(向量),第 n+1 层有 r 个输出数据。
第 n+1 层中每一个输出 r[i] 的计算方式是:

r[i] = m[0] * w[0] + m[1] * w[1] + ... + m[m-1] * w[m-1]+w[m]

其中:

  • m[0]~m[m-1] 是上一层的输出;
  • w[0]~w[m] 是参数(权重);
  • 每一层的参数和结构都可以不同。

六、什么是机器学习

机器学习就是一个过程:通过大量的计算,找出最优参数组合,让模型尽可能准确。

也可以理解为:训练模型,让它更聪明

七、机器学习的过程

比如有公式:y = ax + b; 我们拿到一堆(x,y)的训练数据,要做的就是找到最合适的a和b,让这个公式尽量符合这些数据。 找对a和b,模型就能记住规律,遇到新数据时也能判断准确。

八、怎么找到最优数据

  • 一开始我们随便猜个a = 3,b = -5;
  • 把数据代进入,算出测试值,跟真实值比一比,得出误差;
  • 再换一组a和b,看看误差有没有变小;
  • 不断调试,直到误差最小。

九、什么叫损失函数

误差怎么算,就得靠损失函数

常见的损失函数形式:

  • 平方差:(预测值-真实值)的平方;
  • 绝对差:|预测值-真实值|;
  • 交叉熵、对数损失等等

损失函数的作用就是告诉我们:当前模型错的有多离谱。

十、什么是梯度下降

当我们试图最小化损失函数时,就要知道“往哪个方向调参数更好”; 梯度下降法就是帮我们自动找方向、自动调参数和的数学工具,让误差一步步下降。

十一、学习率是干什么的

学习率控件的是:每次更新参数的“步长”:

  • 步子太小:模型学的太慢;
  • 步子太大:模型容易冲过头,变得不稳定;

所以选对学习率非常关键。

十二、什么是偏导数

偏导数表示:我们只改变一个变量时,结果变化有多大;

在模型训练中,我们要知道:a变化一点点时,损失有多少;b变化一点点时,损失有多少? -- 这些都是由偏导数来告诉我们的。

十三、什么是过拟合

过拟合指的是:

  • 模型在训练数据上表示很好;
  • 但是换个数据就惨不忍睹;

就好比你死记硬背了一本书的答案,考试时换个题你就懵了。

过拟合的模型看起来很聪明,其实没学会真正的规律。