人工智能
人工智能的起点
1956年 达特茅斯会议“如何创造出一种可以不断学习并模拟人类智能的机器”
智能的本质
针对不同情境给出针对性的输出反应(如草履虫实验)
人工智能的定义
人工搭建的一个根据不同的环境信息给出针对性的输出和回应的系统(黑箱)。输出可以是动作、语言、一种判断和预测(如GPT根据上文的问题和任务,针对性的输出答案)
数学层面的定义
找到情景信息的输入,和我们想要的聪明的行为输出之间的函数对应关系。情景x→黑盒→输出y。f(x) = y
。
人工智能的流派
符号主义
符号主义认为人类的推理和思考,都可以从符号和规则中计算出来,人工智能就源于数理逻辑。符号主义注重知识表示和推理,旨在让机器像人一样理解和运用符号。(如专家系统)
例子:A:阴天。B:湿度>70%。T:将要下雨。如果A和B都为真,则T为真。
联结主义
联结主义主张通过模拟人脑神经元的连接方式来实现人工智能。它强调从大量的数据中学习并优化网络连接,以实现智能行为。
机器学习、深度学习、强化学习都是联结主义的典型应用。通过数据训练使其自动从经验中学习,从而学会解决某种任务的智能。无需专家的知识来人为搭建黑箱内部的结构,仅需一个强大且有学习能力的黑箱,以及足够多的数据。
神经网络
神经网络的由来
模式识别-感知机(单层神经网络模型)
一种神经网络的基本单元,它模拟了人类神经元的工作方式,主要用于二分类问题。它由输入层、权重、激活函数和输出层组成,可以根据输入的特征值和权重进行线性运算,产生一个输出值。如果输出值超过某个阈值,则将结果判定为一类,否则判定为另一类。
概念补充-计算机视觉:旨在使计算机能够“看见”并理解图像或视频中的内容,模仿人类视觉的功能。计算机并不能直接“看见”图像,而是将图像视为一组数值数据来进行处理和分析。计算机图像由像素(pixel)组成,图像的每个像素都表示一个颜色或亮度值。一般情况下,彩色图像使用RGB(红、绿、蓝)通道来存储,每个通道的取值范围通常是 0 到 255。计算机将图像转化为数字矩阵,通过图像处理和特征提取识别出图像中的对象,再结合机器学习模型或深度学习模型进行分类或识别。这种方式使得计算机可以在特定场景下“理解”图像中的内容。
例:将水果的特征作为输入,考虑每个特征是否像那个水果(乘以系数)。符合的特征乘以正数,不符合的乘以负数,然后将每个特征乘以对应的系数,再相加,得到一个水果的得分,得分越高越像那个水果。再设置一个得分的阈值b,如果得分高于b,则机器激活,判断是正确的水果。
w₁x₁ + w₂x₂ + w₃x₃ + w₄x₄ + w₅x₅ - b > 0 ?
通过调整连接的系数,表示不同的概念。
但感知机无法完成异或问题。感知机的基本公式是: w₁ ⋅ x + w₂ ⋅ y − b
这里的 w₁ 和 w₂ 是权重,用来控制每个输入在总和中的重要性;b 是偏置,用于控制输出结果的“门槛”。最后,我们通过一个判断条件:
- 如果 w₁⋅x+w₂⋅y−b>0,输出为1(表示真、成立)。
- 如果 w₁⋅x+w₂⋅y−b≤0,输出为0(表示假、不成立)。
1、与(AND)运算:AND 的输出只有在两个输入都为1时才会为1,其余情况下为0。
设置 w₁=1、w₂=1,和 b=1.5。如果 x=1 且 y=1,有 1⋅1+1⋅1−1.5=0.5,满足大于0,因此输出为1。其他情况下,计算结果小于等于0,因此输出为0。
2、或(OR)运算:OR 的输出在任意一个输入为1时就为1,只有当两个输入都为0时才输出0。
设置 w₁=1、w₂=1,和 b=0.5。如果 x=1 或 y=1,例如 x=1,y=0,计算得 1⋅1+1⋅0−0.5=0.5,满足大于0,输出为1。只有当 x=0 且 y=0 时,计算结果小于等于0,因此输出为0。
3、非与(NAND)运算:NAND 的输出在两个输入都是1时为0,其他情况都为1。NAND 是 AND 的反向逻辑。
设置 w₁=−1、w₂=−1,和 b=−1.5。当 x=1 且 y=1 时,计算得 −1⋅1+−1⋅1+1.5=−0.5,小于等于0,因此输出为0。其他情况计算结果大于0,因此输出为1。
4、异或问题:当两个输入相同(0,0 或 1,1)时,输出为0;而当两个输入不同(0,1 或 1,0)时,输出为1。
对于异或问题,在二维空间中是无法通过一条直线来将输出为 1 和输出为 0 的样本点分开的。具体来说:
- 输入 (0,0) 和 (1,1) 对应的输出是 0。
- 输入 (0,1) 和 (1,0) 对应的输出是 1。
这四个点在二维空间中并不是线性可分的,无法通过一条直线将它们完全分开。
多层感知机MLP
多层感知机能够实现异或(XOR)运算,这是因为它增加了隐藏层,从而可以处理非线性可分的问题。通过引入隐藏层,MLP 能够构建一个更复杂的决策边界,以解决 XOR 的非线性关系。
1、MLP 网络结构:实现 XOR 的 MLP 网络结构通常包含三层
- 输入层:输入 x 和 y 两个节点。
- 隐藏层:包含两个神经元,用于处理非线性关系。
- 输出层:一个节点,输出 XOR 运算的结果。
下面是一个典型的 MLP 网络结构:
输入层 (x, y) → 隐藏层(2个神经元)→ 输出层(1个神经元)
2、权重和偏置的设置
通过适当设置隐藏层的权重和偏置来实现 XOR 运算的逻辑。
隐藏层神经元计算
- 隐藏层神经元1:
- 权重:w₁₁=1, w₁₂=-1(分别作用于输入 x 和 y)偏置:b₁=0.5
- 隐藏层神经元2:
- 权重:w₂₁=-1, w₂₂=1偏置:b₂=0.5
这两个隐藏层神经元会分别“激活”不同的特征模式。当输入为 (1,0) 时,h₁=1,大于0.5,隐藏层神经元1激活;当输入为 (0,1) 时,h₂=1,大于0.5,隐藏层神经元2激活。
输出层神经元计算
输出层从隐藏层接收输入 h₁ 和 h₂,并进行如下计算:
- 输出层神经元:
- 偏置:b=0
当o大于b时激活。
3、计算过程
使用上述设置,MLP 的 XOR 运算过程如下:
- 当输入为 (0,0) 或 (1,1) 时,输出层神经元输出0。
- 当输入为 (0,1) 或 (1,0) 时,输出层神经元输出1。
神经网络的结构
多层感知机MLP
卷积神经网络CNN(Convolutiona Neura Network)
残差网络ResNet
DenseNet
Transformer:基于 Attention (注意力机制)的一种深度学习模型架构
神经网络结构设计
神经网络结构设计是深度学习中的一项重要任务,涉及如何选择合适的层、节点数、激活函数等,以使网络能够有效地学习数据中的模式。神经网络的设计是一个迭代的过程,通常需要根据问题的具体性质进行调试和优化。
如何训练神经网络
智能的本质
给出一堆点,用一个函数拟合它们之间的关系。x和y为任何我们关心的两个量,只要学会一个可以刻画这些点趋势的函数,就可以获得任何一个输入所对应的合理的输出。
如何找到这些点的规律
拟合函数:通过线性组合常数x,x²,x³,x⁴,x⁵,这几个简单的单项式模块,组成一个5次多项式,刻画这些点(数据)变化的规律。
y(x) = k₀ + k₁x + k₂x² + k₃x³ + k₄x⁴ + k₅x⁵
输入是x,输出是y,我们需要找到k₀到k₅这六个参数最好的组合。
拟合函数类似泰勒级数。用一个多项式来逼近一个函数在某一点附近的值。简单来说,泰勒级数是通过函数在某点的导数信息来构造一个无限的多项式近似,越高阶的导数信息,逼近就越精确。
如何找到一个好的组合
损失函数:通过一种定量的方式,来度量一组系数所对应的多项式拟合的好不好。
对每个数据点,函数的预测和实际结果都有偏差,将函数预测的数值和实际数据点的数值误差平方相加,获得该函数的损失函数。当函数的预测越贴合数据点的趋势时,损失函数就越小。
损失函数的输入是拟合函数多项式的六个系数,接收到系数后,先构造出拟合的曲线函数,然后比对计算在所有数据点上的偏差,将它们的平方相加后,得到损失函数的输出。
我们需要找到使损失函数很低的输入参数组合k₀到k₅,就可以找到一个出色的拟合函数。通过这个拟合函数,可以输入任何一个关心的x,得到符合数据规律的合理的y。
如何找到一组最合适的参数,使得损失最小
反向传播算法
梯度下降算法
神经网络如何举一反三
泛化
GPT原理
Transformer