AI 绪论 & 基础
🦀

AI 绪论 & 基础

 

绪论

notion image
  • 人工智能(Artificial Intelligence):是指模拟或增强人的智能的计算机程序。它是计算机科学的一个分支,旨在开发智能的系统。
  • 机器学习(Machine Learning):是人工智能的一个子领域,是通过程序从数据中学习,不断提高自身精准度的过程。
  • 深度学习(Deep Learning):是机器学习的一种方法,利用深层神经网络处理数据,模拟人脑的学习过程。深度学习主要用于图像识别、语音识别、自然语言处理等领域。

一、人工智能

逻辑演绎 VS 归纳总结

notion image
人工智能中包括逻辑演绎和归纳总结是两种不同的推理方法。
  1. 逻辑演绎(Logical Deduction):是从已知的结论和定理推出新的结论的方法。逻辑演绎系统通过推导过程检验证明的正确性,可以得出精确的结论。
  1. 归纳总结(Inductive Generalization):是根据观察和经验得出一般性规律的方法。归纳总结系统不能保证得出的结论绝对正确,但可以基于统计概率得出可信的结论。
简而言之,逻辑演绎是基于精确证明得出结论,而归纳总结是基于统计数据得出结论。

知识工程/专家系统 VS 机器学习

notion image
notion image
专家系统和机器学习是人工智能的两种重要技术。专家系统强调精确推理和可解释性,机器学习强调大量数据分析和自动学习。

专家系统(Expert System):

  • 基于专业知识:专家系统通过获取专业人员的知识,来解决复杂的问题。
  • 精确推理:专家系统采用逻辑推理的方法,能够得出精确的结论。
  • 可解释性强:专家系统的推理过程是可解释的,可以方便用户理解。

机器学习(Machine Learning):

  • 基于大量数据:机器学习通过对大量数据的分析,来得出模型。
  • 自动学习:机器学习系统能够自动地从数据中学习,不断提高精准度。
  • 难以解释:机器学习模型的内部工作原理难以解释,不便于用户理解。

人工智能应用

① 计算机视觉

人脸识别、图像分类、目标检测、图像搜索、图像分割、视频监控
  1. 人脸识别:使用人工智能技术来识别和识别图像中的人脸。这种技术通常使用深度学习模型,例如卷积神经网络(CNN),在大量人脸数据集上进行训练。
  1. 图像分类:使用人工智能算法训练的模型,可以将图像分类为不同的类别,例如动物、食物、植物等。这种技术在图像数据库中的搜索和管理方面有很大的用处。
  1. 目标检测:通常是使用深度学习技术,在图像中识别并定位特定目标,例如人、车、动物等。这种技术在自动驾驶、安防监控、图像分析等领域有广泛的应用。
  1. 图像搜索:通常是使用深度学习技术,识别图像的内容,并返回与其相似的图像结果。这种技术可以帮助用户更快、更方便地找到所需的图像。
  1. 图像分割:通常是使用深度学习技术,将图像分成不同的部分,以便进一步分析或处理。这种技术在医学影像分析、卫星图像分析等领域有广泛的应用。
  1. 视频监控:人工智能在视频监控中也得到了应用,例如,在视频监控系统中识别特定目标,如人脸识别。

② 语音技术

语音识别、语音合成、声纹识别
  1. 语音识别:人工智能在语音识别方面的应用非常广泛,常见的应用包括语音识别系统(如 Siri、Google Assistant 等)、语音输入设备(如智能家居)、语音控制的车载系统等。
  1. 语音合成:人工智能在语音合成方面的应用也很广泛,常见的应用包括语音合成系统、TTS(Text-to-Speech)应用、语音合成技术在残疾人士服务等方面的应用。
  1. 声纹识别:人工智能在声纹识别方面的应用也非常广泛,常见的应用包括声纹识别系统、身份认证系统、手机加锁系统等。

③ 自然语言处理

文本分类、机器翻译、知识图谱、自动问答、信息检索、文本生成
  1. 文本分类: 自然语言处理中的文本分类指的是将文本分为不同的类别,例如新闻分类、邮件分类、情感分析等。这通常是通过使用机器学习算法,如逻辑回归、支持向量机、朴素贝叶斯等来实现的。在文本分类中,需要对文本进行特征提取,并训练一个分类模型,然后在新的文本上使用该模型进行预测。
  1. 机器翻译: 机器翻译是将文本从一种语言自动翻译为另一种语言的技术。它通常使用神经网络技术,如编码器-解码器架构或注意力机制,来实现。机器翻译在不断发展,已经有了很大的进展,并且在许多场景中都有很好的应用。
  1. 知识图谱: 知识图谱是一种表示实体和实体之间关系的图形数据结构。它可以用于从大量文本数据中抽取有关实体和它们之间关系的信息,并将其存储在图谱中。知识图谱可以用于解决问答、知识推理等问题。
  1. 自动问答:通常应用在智能问答系统上,它们可以自动生成答案,回答用户的问题。这种系统的核心技术包括语义理解、信息检索和生成答案等。
  1. 信息检索:通常应用在搜索引擎上,它们可以帮助用户快速找到相关信息。主要技术包括语义分析、文本分类和信息抽取等。
  1. 文本生成:通常应用在自动文本生成系统上,它们可以自动生成文本,辅助人类写作。主要技术包括语言模型、文本生成技术和序列生成等。

二、机器学习

机器学习的模型、策略、算法是机器学习系统的三个重要组成部分,分别描述了机器学习系统的知识表示、学习方式和实现算法。
  1. 模型:模型是机器学习算法的表示,是根据数据学习到的知识的体现。机器学习有很多种不同的模型,如线性回归、决策树、神经网络等。(问题建模,明确假设空间)
  1. 策略:策略是指机器学习模型如何从数据中学习。策略可以是监督学习、非监督学习、半监督学习、强化学习等。(确认目标函数)
  1. 算法:算法是指用来实现机器学习的程序,是策略的具体实现。机器学习有很多不同的算法,如梯度下降法、K-Means聚类、随机森林等。(求解模型参数)

模型分类

① 数据标记

机器学习模型可以根据数据标记分为四类:监督学习、非监督学习、半监督学习和强化学习。
  1. 监督学习:监督学习是指在有标记的训练数据的情况下,学习如何从特征预测标签的学习方式。常见的监督学习算法有线性回归、决策树、随机森林等。
  1. 非监督学习:非监督学习是指在没有标记的数据的情况下,学习数据的隐藏结构的学习方式。常见的非监督学习算法有K-Means聚类、PCA降维、自编码器等。
  1. 半监督学习:半监督学习是指在部分标记的数据的情况下,学习如何从特征预测标签的学习方式。半监督学习算法常见于标签数据不足的情况。
  1. 强化学习:强化学习是指通过试错过程学习如何通过环境交互来实现目标的学习方式。常见的强化学习算法有Q-Learning、Sarsa算法、Deep Reinforcement Learning等。

② 数据分布

机器学习模型可以根据数据分布分为参数模型和非参数模型两类。
  1. 参数模型:参数模型是指假设数据服从一个已知的、固定的分布,并基于数据进行拟合,以估计模型的参数。常见的参数模型有线性回归、逻辑回归、感知机、K均值聚类、高斯混合模型等。
  1. 非参数模型:非参数模型是指不假设数据服从已知的分布,而是直接使用数据进行模型构建,不需要对参数进行估计。常见的非参数模型有K近邻法、SVM、决策树、随机森林等。
非参数不等同于无参数:非参数模型仍有内部参数需要估计,而无参数模型完全由数据决定。
无参数模型:无参数模型指的是没有任何内部参数需要估计,它的模型结构和表现完全由数据决定。例如,统计学习中的抽样分布是一种无参数模型。
 

③ 建模对象

根据建模对象,机器学习模型可以分为判别模型和生成模型两类。
  1. 判别模型:判别模型主要关注的是从输入变量到输出变量的决策边界。判别模型的建模目的是预测给定的输入变量的类别标签。它直接学习目标变量给定输入数据的条件概率分布。常见的判别模型有线性判别分析(LDA)、条件随机场(CRF)、逻辑回归、决策树和支持向量机(SVM)等。
  1. 生成模型:生成模型关注的是从输出变量到输入变量的过程,生成模型的建模目的是对数据生成过程建模,并使用该模型生成新的数据。它先从模拟输入数据和目标变量的联合概率分布中给定观察到的输入数据,模型使用贝叶斯定理推断目标变量。常见的生成模型有隐马尔可夫模型(HMM)、马尔科夫随机场(MRF)、生成对抗网络(GAN)和高斯混合模型(GMM)、朴素贝叶斯等。

机器学习模型时间线

时间线具体内容
  1. Logistic回归(1958):是一种统计分析方法,用于预测一个样本属于某一特定类别的概率,是二元分类问题的常用模型。
  1. 感知机(1960):是一种线性分类器,用于解决二元分类问题。通过对输入数据线性组合,确定其所属的分类。
  1. 隐马尔科夫模型(HMM,1966):是一种概率模型,用于对隐含状态的概率分布和观察数据的概率分布进行建模。常用于语音识别、文本生成等领域。
  1. K近邻算法(KNN,1967):是一种基于实例的学习方法,通过计算待分类样本与训练数据的距离,找出训练数据集中与该样本最近的K个样本,再确定该样本的分类。
  1. 分类和回归树(CART,1984):是一种基于树形结构的分类与回归方法,通过构建树形决策结构来对数据进行分类或回归。
  1. 反向传播算法(BP,1986):是神经网络学习算法中的一种,通过不断调整神经网络中各个节点的权值来实现模型的训练。BP算法利用梯度下降法,通过计算误差对权值的影响,不断更新权值以减小误差,从而达到模型训练的目的。
  1. 神经网络(ANN,1986):是一种模拟人类神经系统的结构来解决复杂问题的机器学习模型。它由多层节点组成,每层节点从前一层节点获取输入,再通过计算输出给下一层。
  1. 卷积神经网络(CNN,1989):是一种深度学习模型,主要用于图像识别、视频分析等领域。它利用卷积和池化操作提取图像中的重要特征,进行分类。
  1. 支持向量机(SVM,1995):是一种用于分类和回归的监督学习算法。它通过找到分割数据的最优超平面,使得分类的效果最佳。
  1. 递归神经网络(RNN,1997):是一种类似于人类大脑中的循环结构的神经网络,可以处理序列数据,如语音识别、文本生成等。
  1. 长短时记忆网络(LSTM,1997):是一种特殊的递归神经网络,可以解决普通递归神经网络无法处理长序列数据的问题。
  1. 1997:AdaBoost(1997):是一种强化学习算法,它可以将多个弱分类器组合成一个强分类器,并通过调整每个弱分类器的权重来提高分类准确率。
  1. 流形学习(2001):是一种旨在对复杂非线性数据进行建模和分析的机器学习方法。
  1. 随机森林(Random Forest,2001):随机森林是一种集成学习方法,它在训练数据上生成多棵决策树,然后用投票法来确定预测结果。
  1. AlexNet(2012):AlexNet 是一种卷积神经网络,用于图像识别,并在ImageNet比赛中取得了显著的成功。
  1. ZFNet(2013):ZFNet 是一种深度卷积神经网络,由Zeiler和Fergus在2013年提出。它是AlexNet的改进版本。
  1. 生成对抗网络(2014,GAN):生成对抗网络是一种生成模型,其中一个网络(生成器)生成假数据,而另一个网络(判别器)试图区分真假数据。
  1. GoogleNet(2014):GoogleNet是一种卷积神经网络,广泛应用于图像识别领域。
  1. ResNet(2015):ResNet是一种深度卷积神经网络,引入了残差连接的思想以解决深层网络的梯度消失问题。
  1. 全卷积网络(2015,FCN):全卷积网络是一种经典的图像分割算法,通过对图像的不同区域进行卷积,从而识别出其物体的边界。
  1. Transformer(2017):Transformer是一种自注意力模型,用于处理序列数据(如文本)。它允许并行处理,并且可以在没有循环结构的情况下对长序列进行编码。
  1. BERT(2021):BERT是一种预训练语言模型,旨在捕捉文本中的语义和语法特征。它使用双向注意力机制来读取文本中所有单词,以捕捉上下文。
  1. GPT-3(2021):GPT-3是一种自回归语言生成模型,它可以根据给定的输入生成合理的文本输出。它是最大的预训练语言模型之一,在许多NLP任务上表现出色。
  1. Reformer(2021):Reformer是一种自注意力模型,旨在为长序列数据提供高效的编码。它使用线性卷积代替标准自注意力机制,以提高效率。
  1. ELECTRA(2022):ELECTRA是一种预训练语言模型,旨在通过识别和替换文本中的生成词来捕捉语义和语法特征。它在BERT的基础上进行了改进,以实现更好的性能。
  1. CTRL(2022):CTRL是一种预训练语言生成模型,它可以生成文本输出并遵循多种语言。
💡
AlexNet有哪些特点?为什么可以比LeNet取得更好的性能?
AlexNet是一种卷积神经网络,其特点如下:
  1. 设计上是一个深度网络,共有8层,包括5个卷积层和3个全连接层。
  1. 使用了更大的卷积核,有的卷积核大小为11×11,有的卷积核大小为5×5,使得网络更强的捕捉了图像的结构特征。
  1. 引入了两个新的优化技巧:局部响应归一化(LRN)Dropout。 LRN在每一层都进行运算,从而避免了对于某些特征的过度依赖,保证了网络的泛化能力。Dropout则是一种正则化方法,在训练过程中随机丢弃一些神经元,从而避免了过拟合。
这些技术的结合使得AlexNet可以在数据量和模型复杂度都比LeNet大得多的情况下,仍然取得更优秀的性能。

三、神经网络 & 深度学习

深度学习算法的缺点(目前)

深度学习的缺点
  1. 稳定性低:算法输出不稳定,容易被“攻击”。
  1. 可调式性差:模型复杂度高,难以纠错和调试。
  1. 参数不透明:模型层级复合程度高,参数不透明。
  1. 机器偏见:人类知识无法有效引入进行监督,机器偏见难以避免。
  1. 增量型差:端到端训练方式对数据依赖性强,模型增量性差。
  1. 推理能力差:专注直观感知类问题,对开放性推理问题无能为力。

符号主义 VS 连接主义

符号主义
符号主义是指以符号和标记来表示语言和概念的理论,这些符号通过定义规则来表示意义。 符号主义着重于符号对于概念的映射关系,它的理论支持通过符号的表达解释和表示复杂的知识。
连接主义
连接主义则是指以联系和关系为核心的理论。连接主义重视的是各种概念的相互关系,它的理论支持通过关系网络来解释和表示复杂的知识。
符号主义 + 连接主义
当前符号主义和连接主义的结合是深度学习中的神经网络。神经网络中,符号主义通过神经元和权重的模型,表示了符号对于概念的映射关系;而连接主义则通过多个神经元的连接,表示了各种概念之间的相互关系。通过符号主义和连接主义的结合,神经网络能够通过权重的调整实现学习和推理。

神经网络基础 ✨

1、生物神经元

notion image
  • 每个神经元都是一个多输入单输出的信息处理单元;
  • 神经元具有空间整合时间整合特性;
  • 神经元输入分兴奋性输入抑制性输入两种类型;
  • 神经元具有阈值特性

2、激活函数

激活函数是深度学习神经网络中的一个重要组成部分,它主要作用是对神经元的输入进行非线性变换,以确定神经元是否被激活。这个非线性变换的作用是使网络的表示能力更强,避免了线性组合的局限。常见的激活函数包括Sigmoid函数、ReLU函数和tanh函数等。
  1. Sigmoid函数:Sigmoid函数是一种S型函数,其特点是输入数据越大,输出数据越接近1;输入数据越小,输出数据越接近0。
  1. ReLU函数:ReLU函数是一种修正线性单元函数,其特点是简单、计算快速,适用于大量稀疏数据。
  1. tanh函数:tanh函数是双曲正切函数,其特点是数据在-1~1之间,使用广泛。
除此之外,还有Leaky ReLU、Softmax函数等。选择不同的激活函数对神经网络的模型效果有较大影响,需要根据具体的任务选择最合适的激活函数。
💡
激活函数在神经网络中有什么作用?
激活函数在神经网络中有以下几个作用:
  1. 添加非线性:激活函数允许神经网络从线性函数转化为非线性函数,从而解决非线性问题。
  1. 增加表达能力:激活函数通过映射输入数据到空间中的非线性表示来增加数据可分性,增强神经网络的表达能力,使其能够学习到更加复杂的特征和模式,从而提高分类和回归的准确性。
  1. 防止梯度消失:在多层神经网络中,激活函数的选择对梯度的消失有很大的影响,适当的激活函数可以避免梯度消失。
  1. 实现输出的范围控制:激活函数可以对神经元的输出进行限制,使其在一定范围内变化。
💡
为什么要使用 Softmax?
Softmax 函数是用于多分类问题的激活函数,其主要功能是将多个输入的数值映射到概率空间,即对于多个分类结果,每个结果的可能性,也就是每个类的概率。Softmax函数的优点在于它的输出易于解释,即可以轻松的求出每个类的概率,进而计算出每个类的置信度,并且它是对称的,比较容易梯度下降法更新参数。因此,Softmax函数通常作为神经网络模型的输出层激活函数,用于处理多分类问题。
Softmax函数的计算公式是:
其中,xi是你想要计算的值,K是可能的结果数。

3、M-P神经元

M-P(McCulloch-Pitts)神经元是二元神经元模型,是最早的神经元模型之一,于1943年提出。它模拟了生物神经元的两个基本特征:接收输入信号(由多个输入单元代表)并通过积极性(也称为阈值)产生输出。
输出公式如下:
其中,w_1,w_2,…,w_n是权重,θ是阈值,f是激活函数。当权值和输入乘积之和大于阈值时,输出为1;否则为0。这个模型对于简单的二元分类问题已经足够有效,但难以处理多元分类问题。

4、单层感知器 & 多层感知器

单层感知器是人工神经网络的一种最简单的形式,它的基本结构是一个输入层和一个输出层。输入数据通过一组权值与输入层中的神经元相连,再经过一个激活函数计算得到最终的输出。
💡
单层感知器怎么进行自主学习?
单层感知器的学习通过对输入数据的线性组合进行预测,然后利用误差反向传播来调整权值和偏置项,以达到最小化误差的目的。该学习过程是通过梯度下降算法实现的,该算法通过计算误差的导数值来调整权值和偏置项,从而最小化误差。
多层感知器在学习能力上更加强大,更适用于解决复杂的学习任务,这是与单层感知器的主要区别。
多层感知器的特点
  1. 容量:多层感知器的容量大大高于单层感知器,更适用于解决复杂的学习任务。
  1. 模型复杂度:多层感知器可以学习非线性关系,因为它通过构建非线性层级结构来实现。
  1. 稳定性:多层感知器通过隐藏层来抵消每层间的影响,使得模型稳定。
  1. 泛化能力:多层感知器更具有泛化能力,因为它通过隐藏层的学习结果来形成一个映射。
💡
在线可视化工具:http://playground.tensorflow.org/
notion image
 
💡
单隐层神经网络和多层感知器有什么区别吗?
单隐层神经网络,也就是所谓的多层感知器,是一种具有学习能力的神经网络模型。它由输入层隐藏层输出层组成。隐藏层的存在,使得模型具有了对非线性关系的学习能力,进而可以解决非线性问题。隐藏层中的神经元可以通过复合不同的线性组合来学习非线性关系,从而达到拟合非线性数据的目的。
💡
没有隐层的单层感知器不也有非线性激活函数吗,为什么还是无法解决非线性问题?
没有隐层的单层感知器也可以使用非线性激活函数,但是非线性激活函数只能实现简单的非线性变换,并不能解决复杂的非线性问题。加入单隐层后,多层感知器能够通过多层非线性变换来解决复杂的非线性问题。因为隐层的加入可以使得多层感知器的表达能力更加强大,能够拟合更加复杂的函数。

5、万有逼近定理

如果一个隐层包含足够多的神经元三层前馈神经网络(输入-隐层-输出)能以任意精度逼近任意预定的连续函数
💡
为什么线性分类任务组合后可以解决非线性分类任务?
线性分类任务是指在二维平面上将样本分为两个或多个不同类别的问题。如果将多个线性分类任务组合在一起,则可以在高维空间内进行分类,这个高维空间可以被视为一个复合特征,这个复合特征可以解决非线性分类任务。在深度学习中,多个线性分类任务通常可以通过多层神经网络实现,每层神经网络构造一个线性分类器,最终的输出分类结果是通过这些线性分类器的复合得到的。
当隐层足够宽时,双隐层感知器(输入-隐层1-隐层2-输出)可以逼 近任意非连续函数:可以解决任何复杂的分类问题。
万有逼近定理常用于多层感知器模型的设计,它提供了理论支持:通过添加更多的隐层,我们可以使多层感知器模型在计算能力方面更加强大,因为它可以近似任意的复杂的函数。
神经网络学习就是利用矩阵的线性变换加上激活函数的非线性变换,从而将原始输入空间投影到一个线性可分的空间去分类/回归。在节点数上的增加相当于增加维度,也就是增加了线性变换的能力。增加层数,意味着增加了激活函数的次数,从而增加了非线性转换的次数。这样,线性变换和非线性变换的结合使得神经网络更加灵活、更具有拟合能力。
💡
神经网络是更宽好还是更深好?
深度和宽度对于函数复杂度的贡献是不同的,深度的贡献是指数增长的,而宽度的贡献是线性增长的。所以相同神经元总数情况下,增加网络深度能过比增加网络宽度带来更强的网络表示能力。但是,过多的增加网络深度会带来梯度消失问题,因此,最终选择神经网络的宽度和深度要根据数据的特征和任务的需求来确定。

6、误差反向传播 & 梯度消失问题

多层神经网络可看成是一个复合的非线性多元函数F(·): X→Y
梯度指的是多维函数的导数向量,表示在多维空间内的方向导数的变化最快的地方,与自变量的每一维的增长率有关。
梯度下降是一种在机器学习中常用的优化算法,目的是通过不断更新模型参数,使损失函数最小化。它通过计算损失函数的梯度并以负梯度方向为搜索方向不断更新模型参数,来不断降低损失函数的值。
残差:损失函数在某个节点的偏导。
BP 误差反向传播的原理是基于复合函数链式求导。BP 算法通过利用链式法则在每一层中从后向前计算每个参数的误差梯度,然后利用这些梯度对参数进行更新。这就是 BP 反向传播的基本思想。
梯度消失是指深层神经网络训练过程中,梯度值在每一层经过连乘后逐渐变小,以至于在反向传播无法传递到最前面的层,从而使得神经网络很难学习到有用的特征,最终导致网络无法学习。
增加深度会导致梯度消失,误差无法传播。
  • 三层神经网络是主流。
多层网络容易陷入局部极值,难以训练。
  • 预训练、新激活函数使深度成为可能。
💡
20世纪末,支持向量机(SVM)为什么完胜神经网络?
支持向量机(SVM)在20世纪末之前被认为胜过神经网络是因为它有如下几个优点:
  1. 数据易处理:SVM适用于小数据集,且处理数据的速度较快。基于支持向量,小样本训练
  1. 可解释性:SVM算法具有很高的可解释性,结果易理解,无需调参
  1. 高准确率:SVM在处理二分类任务时,准确率较高,全局最优解凸二次规划)。
  1. 可解决高维数据:SVM算法能够通过核函数对高维数据进行分类。
神经网络此时面临训练困难参数多算力不足数据不够等问题。
然而,随着数据量的不断增加,神经网络取得了显著的进展,并逐渐取代了SVM。因为神经网络能够在大数据集上更好地进行模型训练,并具有更高的拟合和泛化能力
支持向量机(Support Vector Machine, SVM)是一种二分类模型,用于解决线性或非线性分类问题。SVM通过寻找一个最优决策边界(也称为最大边距超平面),将训练样本分为两类。该决策边界被认为是最佳分类模型,因为它在最大程度上离训练样本的两类有足够的间隔。

逐层预训练(2006-2012 )🎯

① 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)

受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一种生成式模型,用于模拟和生成数据的分布。它通常由一个简单的隐藏层和一个可见层组成,隐藏层的节点之间相互独立,隐藏层与可见层之间有双向联系。RBM 的学习过程是通过梯度下降优化损失函数来实现的,其目的是模拟观测数据的生成过程,RBM能够从观测数据中学习潜在因子,使得生成的概率分布最大。
深度信念网络(Deep Belief Network, DBN)模型由若干个受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)堆叠而成, 最后加一-个监督层,每个RBM被训练得到一个概率分布,并且这些RBM在后向传播阶段串联起来,作为一个更深的网络。与其他生成式模型不同,DBN不仅生成新的样本,还可以用于分类任务。在训练DBN的过程中,隐藏层的节点学习到了输入数据的潜在表示,然后,这些潜在表示可以被用作训练其他分类器的特征。
DBM(Deep Boltzmann Machine)不同于DBN(Deep Belief Networks),它没有监督层,是由若干个受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)直接堆叠而成,是一种无监督的无向图模型,主要用于生成模型的任务。它可以在一个初始的随机数据上学习到复杂的分布,并且对于后续的模型训练和计算过程有很好的初始化。
一般玻尔兹曼机(Boltzmann machine,BM),它的可见层和隐层内部结点之间可连接(全连接图),具有很强大的无监督学习能力,能够学习数据中复杂的规则,随机神经网络和递归神经网络的一种,是Hinton等于1985年发明出来的。

② 自编码器(Autoencoder)

自编码器(Autoencoder)是一种用于降维的无监督学习模型,由编码器和解码器两个部分组成。编码器将原始输入数据映射到一个低维表示,称为编码;解码器将编码重建为原始输入数据的近似值。自编码器学习的目标是使用最小的代价来重建原始数据,从而学习到数据的有效表示。
自编码器是一种网络结构,可配合其他结构搭建深度网络(如卷积、池化等)
自编码器的训练策略是使用最小化重建误差的代价函数(例如平方误差),通过优化代价函数来更新编码器和解码器的参数。在训练过程中,自编码器通过不断学习更好的表示,从而自动获得了降维的效果。
自编码器 (Autoencoder) 和受限玻尔兹曼机 (RBM) 在原理、结构、训练优化上存在一定的差异:
  1. 原理:自编码器是一种无监督学习模型,通过一个编码器将输入的高维数据编码为低维的隐层特征表示,再通过解码器从低维的特征表示重构高维的数据受限玻尔兹曼机是一种生成式模型,通过简单的高斯随机过程,在输入和隐层之间建立一个无向概率图模型
  1. 结构:自编码器一般由编码器和解码器组成,有输入层、隐层和输出层。而受限玻尔兹曼机只有一个输入层和隐层,包括共享权重矩阵和两个偏置向量,没有输出层,。
  1. 训练优化:自编码器一般通过最小化重构误差来训练,并且常常通过对比输入数据和重构数据进行BP误差反向传播受限玻尔兹曼机是基于最大似然,一般通过降低自然算法的目标函数来训练,并通过Gibbs采样进行参数优化估计
正则自编码器(Regularized Autoencoder)是在自编码器的基础上加入了正则化项的模型,目的是避免过拟合并促进数据的学习。常见的正则化项包括L1正则化L2正则化、Dropout、Early Stopping等。正则自编码器在损失函数上加入正则化项,通过最小化损失函数来对模型进行训练。
稀疏自编码器是一种自编码器的变体,通过引入稀疏约束来使得隐藏层的激活单元数量最小化。这种稀疏性帮助编码器进行更好的数据压缩,防止过拟合的同时保留数据的关键特征。
去噪自编码器(Denoising Autoencoder, DA)是一种带有去噪功能的自编码器,其目的是学习鲁棒于噪声的数据的特征表示。其工作原理是先通过加入噪声的方式将原始数据变得不清晰,然后使用自编码器对变得不清晰的数据进行编码-解码操作,最终再对得到的结果与原始数据进行比较,使用误差作为损失函数,来训练网络。这样训练出的网络可以更好地提取数据的特征,并且能够更好地应对噪声,因此对于原始数据有更好的表示能力。
逐层预训练无法本质上解决梯度消失等问题,新的激活函数 + 优化方法 + 更大量的标注训练数据 → 预训练很少被使用。
DNN相较于DBN在以下几个方面进行了优化:
  1. DNN是前馈神经网络,采用反向传播算法(BP)进行训练,DNN的训练更加精细,收敛更快。
  1. 隐层激活函数使用ReLU来改善梯度消失问题,输出层激活函数是softmax,目标函数是交叉熵+大量标注数据从而避免差的局部极小值
  1. 正则化和 dropout 防止过拟合的方法
  1. 没有使用逐层预训练
💡
深层网络的局部极小值是非凸的激活函数导致的么?如果是,为什么不用凸激活函数?
深层网络的局部极小值主要是多个隐层复合导致的;ReLU就是凸激活函数,但多个凸激活函数的复合也不一定是凸的。
💡
逐层预训练真的是为了找到更好的局部极小值么?
深度网络参数太多,梯度下降在非常高维空间进行,很难得到在所有维度上都是局部最小的局部极小值;大多数情况参数落在了鞍点处:某些维度上是最低点,某些维度上是最高点→增加扰动很容易跳出鞍点

四、数学基础

🚧
暂未整理完毕,感觉上面的视频说的有点杂,改天换个教程再整理。

1、优化问题

函数及其优化过程

函数是数学中的重要概念,它将一个或多个输入值映射为一个输出值。函数的映射概念表示在某种意义下两个或多个元素的关系,即将输入映射为输出
机器学习的优化通常是通过寻找最优的函数来解决问题。通过构建一个适当的模型并将它映射到问题空间,机器学习算法就可以在数据上执行优化,并在最终预测中产生最佳结果。在机器学习的模型中,函数是通过参数化来表示的,因此优化也就变成了寻找最佳参数。这个过程可以通过使用不同的优化算法来实现,比如梯度下降算法、随机梯度下降算法等。

梯度下降方法(一阶优化方法)

  1. 定义目标函数模型:在机器学习中,我们需要定义一个目标函数模型来描述问题,该模型用于预测输出。
  1. 误差函数定义:通过误差函数,可以评估目标函数模型的预测结果和实际观测结果之间的差异。
  1. 计算梯度:通过误差函数,我们可以计算每个权值的偏导数,即梯度,梯度表示在每个点处的误差函数变化率。
  1. 权值更新:利用梯度变化曲线定向更新权值,并不断调整权值,以期使误差函数值最小。
  1. 迭代进行优化:通过重复上述步骤,不断迭代,以获得最小的误差值,从而获得最优的解。

牛顿法(二阶优化方法)

💡
二阶导数优化相对于一阶导数优化有什么优点?
二阶导数优化(Second Order Optimization)相对于一阶导数优化(First Order Optimization)有以下优点:
  1. 加速收敛:二阶导数优化能更快地收敛到最优解,因为它考虑到了斜率和曲率的信息。
  1. 减小波动:二阶导数优化能更加稳健地降低误差,而不容易受到局部最小值的影响。
  1. 解决更多的问题:二阶导数优化能解决更多的问题,包括更复杂的问题,例如高维问题。
牛顿法(Newton's method)是一种用于求解方程的数值解法,通过迭代的方式来逼近函数的根。它是基于牛顿迭代公式的,该公式描述了曲线与x轴的交点的近似值。牛顿法在机器学习中也广泛用于优化问题,特别是在求解高维函数最小值问题时,牛顿法效果非常好。
牛顿法的两种具体方法是牛顿迭代法(Newton's iteration method)牛顿最优化法(Newton's optimization method)
牛顿迭代法是一种用于求解方程的数值解法,它需要求出函数的一阶导数和二阶导数。该方法在迭代过程中逼近根。
牛顿最优化法是一种优化算法,它可以快速求解函数的最小值,并在求解最小值的过程中进行更新。该方法基于牛顿迭代法的思想,利用二阶导数矩阵的信息来求解最小值。
雅可比矩阵是一个矩阵,它表示了多元函数在一维中的一阶偏导数。在优化中,雅可比矩阵用于对参数的一阶估计,它可以帮助我们判断函数是否是上升还是下降的。
海森矩阵是一个矩阵,它表示了多元函数在一维中的二阶偏导数。在优化中,海森矩阵用于对参数的二阶估计,它可以帮助我们判断函数的凸性和弯曲程度。
总的来说,雅可比矩阵和海森矩阵是对多元函数进行偏导数和二阶偏导数估计的工具,它们在优化中起到了重要的作用,因为它们可以帮助我们更好地理解函数的形态和趋势,从而更好地对参数进行优化。
💡
SGD 和 Adam 分别是什么,哪个更有效?
SGD(Stochastic Gradient Descent)是一种随机梯度下降优化算法,其在每一次训练时仅使用一个样本来计算梯度,然后更新参数。
Adam(Adaptive Moment Estimation)是一种自适应的优化算法,其同时利用了梯度的一阶动量和二阶动量信息,以调整学习率。
效果上,一般情况下Adam优于SGD,因为Adam结合了动量法和 RMSProp,并自适应调整学习率,对于不同的参数可以设置不同的学习率。SGD通常要预先设定一个固定的学习率,在迭代中不会根据当前的损失函数做出调整。
在线性回归、逻辑回归和简单的卷积神经网络等简单模型中,SGD 通常表现良好,而对于复杂的深度学习模型,Adam 通常表现得更好。因此,选择 SGD 还是 Adam 取决于模型的复杂度和数据的分布情况

2、向量

向量、矩阵 & 张量

向量、矩阵和张量是数学上的基本概念,也是机器学习中经常使用的数据结构。
  1. 向量:向量是一维张量,通常用于表示数据的单个样本或特征。它在机器学习中通常作为输入数据或参数的形式,比如在线性回归、逻辑回归等模型中。
  1. 矩阵:矩阵是多个向量的集合,也是二维张量,通常用于表示多个数据样本或特征。在机器学习中,矩阵通常用于组织训练数据,也可以作为参数或权值。矩阵是很多机器学习模型中的重要组成部分,比如线性回归、矩阵分解等。
  1. 张量张量是一个多维数组,它可以表示高维数据。张量通常在深度学习模型(如卷积神经网络和循环神经网络)中使用,因为它可以适应不同的数据形状。例如,图像数据是一个三维张量,颜色通道的数量、图像的长和宽是三个维度。

矩阵线性变换 & 特征向量 & 秩

对于给定的矩阵A,假设其特征值为 λ 特征向量为 X,则它们之间的关系如下:
输出空间的旋转变换和空间向量的特征向量相关;输出空间的放大/缩小变换和空间向量的特征值相关。
矩阵的秩,表示矩阵的线性无关列(或行)的数量。更具体地,一个矩阵的秩是其线性无关列(或行)所组成矩阵的列(或行)数。

向量范数

向量范数(Vector Norm)是对向量长度进行约束和限制的数学概念,又称为向量大小或向量长度。一般而言,向量范数可以用来表示一个向量的强度和大小。常见的向量范数包括:欧几里得范数(Euclidean Norm)、曼哈顿范数(Manhattan Norm)和切比雪夫范数(Chebyshev Norm)。在机器学习中,向量范数常常用于确定数据的范围和规模,以及进行数据的归一化处理。

L1 范数(曼哈顿范数) & L2 范数(欧式范数)

L1 范数(曼哈顿范数): 是指矩阵中各元素绝对值之和
L2 范数(欧式范数): 是指矩阵中各元素的平方和再开根号。
其中 x 是一个长度为 n 的向量
在机器学习中,L1 范数和 L2 范数都被用来衡量模型参数的强度或大小。 L1 范数(也称为 Manhatten 函数)是每个参数值的绝对值相加,它会稀疏模型并使参数更简单。L2 范数(也称作Euclidean函数)则会让模型参数不易过拟合,用于强迫模型的收敛。当采用L1正则化时,模型会简化参数并限制模型的复杂度,使其能够更容易收敛到局部最优解。 L2 正则化假设所有参数的权重相等,能够帮助模型逃避局部最优解以及防止过拟合。

3、神经网络

4、降维

5、概率

边际概率

边际概率是指一个单独的结果的概率值。它也可以被称为单个事件的概率。它的公式可以表示为:

条件概率 & 联合概率

条件概率是指给定已知条件(A)下发生事件(B)的概率,用符号 P(B∣A) 表示。公式为
联合概率用来表示多个事件发生的概率,用符号 P(A,B) 表示。如果不考虑关联性,那么联合概率就等于多个单独概率的乘积:

贝叶斯定理(公式)

贝叶斯定理概述了从已知给定条件到未知概率的转换
其中,P(A|B) 是条件后概率(posterior probability);P(B|A) 是条件前概率(prior probability);P(A),P(B) 是无条件概率。

朴素贝叶斯分类器

朴素贝叶斯分类器是一种有效的监督学习技术,它使用贝叶斯原理(以概率的方式表达发生事件的条件间的依赖关系)来解决二类或多类分类问题。它利用所有已知特征变量特征向量 x 进行预测并分配一个类别 y。构建朴素贝叶斯分类器的步骤如下:
  1. 数据收集和预处理:将您要用于训练模型的数据收集并准备好进行处理。这意味着,我们将需要清楚地定义特征,然后使用这些特征来识别我们要检测的内容。
  1. 特征选择:对于朴素贝叶斯,我们需要找出哪些特征可以最好地表示我们要检测的类。因此,我们将利用算法,例如信息增益,来弄清楚哪些特征最有用,也就是哪些特征可以最有效地帮助我们区分不同类。
  1. 建立模型:我们将利用从步骤2收集的特征来建立我们的模型。告诉模型它应该用哪个特征来分类样本,并运行数据集的训练数据。
  1. 评估和优化模型:分析训练数据以优化模型的精度,使用分类图来定位哪些带有特定特征值的类别被错误预测,并评估模型的整体性能,归结为两个重要参考指标:准确度和召回率。

6、超参数优化

7、隐狄利克雷模型

8、深度Q学习

9、量子计算

 
 
 
 
 
 
 
 
 

🧐 Question