00 深度学习知识体系

2024-03-08
3分钟阅读时长

近几年人工智能很火,很多人也想学习,但一看到数学那一堆公式就吓退不少人。事实上,想要入门的话,了解其原理,并不用多少数学基础。笔者以前买过很多相关的书籍看,忘了又忘,但最后发现其实用到的并不多。还是秉持陶渊明的那句 “好读书,不求甚解”。遇到不懂的,可以简单研究一下,但一定不要死扣不放,适时忽略跳过即可,等后面有了全局观,再回过头来看,就会更容易理解。

本文围绕着最近比较火自然语言大模型所需要的知识点,进行列举和简述其用途。希望可以让读者用最少的精力入门掌握原理。

  1. 数学基础

    • 向量/矩阵乘法

      在神经网络算法中几乎处处充斥着向量内积,矩阵乘法其实就是批量向量内积

    • 导数/偏导

      神经网络优化算法——梯度下降就是利用导数的知识,网络中那么多参数需要优化其实是利用了偏导的思想。

      • 雅可比矩阵/黑塞矩阵

        这个是矩阵一阶偏导数二阶偏导数,直接按矩阵批量反向传播。

    • 误差与近似

      在这个世界,误差无处不在,即使用最精确的尺子衡量依旧是存在误差的,我们不能消灭误差,只能减少误差,求其近似值,神经网络就是在通过优化算法减少误差近似求解。

      • 牛顿法、泰勒公式展开

        一种简易的巧妙的方式求解近似值,你有想过计算机时如何开根号的吗?

    • 距离

      • 余弦相似度、欧式距离、切比雪夫距离

        距离可以衡量向量之间差异,有很多可以计算距离的算法,但常用的只有欧式距离余弦相似度

      • 范数(向量模(长度)这一概念的推广)

        神经网络的 Module 中可能会看到 $L_1$ 正则化,$L_2$ 正则化,其实就是这个范数,它是用来约束权重向量值要平稳些,不要太离散。

    • 信息论

      • 信息熵、交叉熵

        大名鼎鼎的多分类损失函数交叉熵,了解这个你更知道为什么用它。

    • 概率论

      这里仅简单提一下,其实只要知道 0~1 之间代表什么。

  2. 深度学习基本概念

    深度神经网络号称是可以拟合任意的函数。下面就是其支撑其核心的七大基本概念。

    • 神经元/输入层/隐藏层/输出层

      一个神经网络的基本组成部分,数据从输入层进入,再到隐藏层,最后到输出层预测结果。

    • 激活函数

      有了非线性的激活函数,所以神经网络可以很深,且不能被简化成一个 $Y=WX$。还有一些概念如:梯度消失与梯度爆炸。

    • 损失函数/目标函数

      损失函数和目标函数可以基本等同,损失函数是描述模型输出值与我们期望的标签值的距离

    • 反向传播

      梯度下降算法就是反向传播中的重要优化算法。

    • 学习率

      用来控制模型训练过程的参数更新速度快慢的。

    • 权重初始化

      模型权重的初始化很重要,一般采用随机初始化,这样每个神经元就有不同的导数了。

    • 批量归一化

      一个非常重要的算法,假如模型参数偏离原点(激活函数大多都在原点工作的比较好)太过分,这个算法可以拉回原点。

  3. 自然语言大模型(Large Language Model, LLM)/ChatGPT

    • 词向量

      自然语言文本时如何转成词向量。

    • Seq2Seq

      这是一个可以实现输入和输出的序列长度不一样的算法,典型的应用就是语言翻译。

    • 注意力

      这是模仿人可以关注一段文本的关键内容的算法,也可用于计算机视觉,关注图像前景而忽略背景。

    • Transformer 以及其他流行的类 Transformer 大模型。千问/Llama/百川。

    • 自然语言文本生成 自然语言大模型中生成文本最常见的几个参数,及其生成原理。

      • 采样

        有三种采样方法:贪婪搜索/集束搜索/穷举搜索。

      • 温度

        用于控制某些词元(Token)被采样到概率。

      • TopK/TopP

        用于控制模型采样候选词元(Token)的范围。

    • 提示词工程(Prompt Engineering)

      提示工程是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型用于各场景和研究领域。

Avatar

YISH

这个人很懒,什么都没有