常见的分类算法
SVM、神经网络、随机森林、逻辑回归、KNN、贝叶斯
常见的监督学习算法
感知机、SVM、人工神经网络、决策树、逻辑回归
深度学习
深度学习是一种模仿人脑神经网络结构和功能的机器学习方法,通过构建多层神经网络模型,自动从大规模数据中学习复杂的特征表示。其核心原理包括层次化特征提取和端到端学习:
层次化特征提取:通过多层非线性变换,逐步提取数据的高级语义特征
端到端学习:直接学习输入与输出间的映射关系,无需人工干预
这种机制使深度学习能有效处理高维、非线性数据,在图像识别、语音识别和自然语言处理等领域展现出卓越性能
卷积神经网络(CNN)
卷积神经网络(Convolutional Neural Network, CNN)是一种专为处理网格状拓扑数据而设计的深度学习模型,尤其擅长处理图像和视频数据。其独特之处在于利用卷积层和池化层来高效地提取和学习图像特征,同时通过多层非线性变换实现复杂模式的识别。
CNN的核心组件包括:
卷积层:使用一组可学习的滤波器对输入图像进行卷积运算,生成特征图。这一过程能够捕捉图像中的局部特征,如边缘和纹理。
池化层:主要用于减小特征图的空间尺寸,同时保留最显著的特征。最常见的池化操作是最大池化,即选择区域中的最大值作为下采样后的特征。
全连接层:负责将卷积层和池化层提取的特征映射到最终的输出类别。全连接层的每个神经元都与前一层的所有神经元相连,实现了特征的全局整合。
CNN的一个关键特性是权重共享。在同一卷积层中,同一卷积核在不同位置使用相同的权重参数,这大大减少了模型的参数量,同时也体现了图像局部特征的重要性。
在实际应用中,CNN面临着一些挑战,如过拟合问题。为此,研究者们提出了多种优化策略:
- 数据增强 :通过对训练图像进行随机变换和扩充,增加训练样本的多样性,提高模型的泛化能力。
- 批量归一化 :通过对每个小批量输入进行归一化来规范化网络中的中间激活值,加速训练过程并提高网络的泛化能力。
- Dropout :在训练过程中随机将一部分神经元输出置为0,减少模型的过拟合风险。
CNN在计算机视觉领域展现出了卓越的性能,主要应用包括:
- 图像分类 :CNN可以学习从原始像素到类别标签之间的映射关系,通过在大量标注的图像数据集上进行训练,自动学习到用于图像分类的特征表示。
- 目标检测 :CNN可以通过在不同位置和尺度上滑动窗口,并对每个窗口进行分类来实现目标检测,实现在图像中识别和定位特定对象。
- 人脸识别 :CNN可以学习人脸的特征表示,并在图像中进行人脸检测和识别,用于身份认证和安全系统。
循环神经网络(RNN)
循环神经网络(Recurrent Neural Network, RNN)是一种专门设计用于处理序列数据的神经网络架构。与传统前馈神经网络不同,RNN具有循环连接,能够在处理序列数据时保留和利用之前的状态信息。这种独特的结构赋予了RNN强大的序列处理能力,使其成为自然语言处理、语音识别等领域的重要工具。
RNN的核心特性包括:
- 记忆能力 :RNN通过隐藏状态保留序列中的上下文信息,使得网络能够记住之前的状态。这种记忆机制使得RNN能够捕捉序列中的长期依赖关系,这对于理解自然语言等序列数据至关重要。
- 参数共享 :RNN在不同时间步之间共享参数,这不仅降低了模型的复杂度,还提高了模型在处理不同长度序列时的效率。
然而,RNN也面临一些挑战,主要包括:
梯度消失和梯度爆炸 :在训练过程中,RNN可能出现梯度消失或梯度爆炸问题,这会导致模型难以训练或收敛缓慢。特别是对于长序列数据,RNN难以有效地捕捉长距离依赖关系。
为了克服这些限制,研究人员提出了两种重要的RNN变体:
在自然语言处理领域,RNN展现了广泛的应用前景:
- 语言模型 :RNN能够理解文本序列的上下文关系,预测下一个单词,从而提升输入法的智能性和翻译工具的流畅度。
- 机器翻译 :RNN在seq2seq模型中发挥关键作用,通过编码器-解码器架构实现从一种语言到另一种语言的转换。
- 情感分析 :RNN通过逐字逐句处理文本,提取情感信息,实现对文本情感倾向的自动识别和分类。
- 语音识别 :RNN能够处理语音信号的时间序列数据,将语音信号准确转换为对应的文本。
- 文本生成 :RNN通过学习大量文本数据,理解语言结构和模式,实现高质量的自动文本生成。
这些应用充分展示了RNN在处理序列数据方面的强大能力,为自然语言处理等领域提供了有力的技术支持。
Transformer模型
Transformer模型是由Vaswani等人在2017年提出的革命性架构,彻底改变了自然语言处理(NLP)领域。其核心创新在于引入了自注意力机制,巧妙地解决了传统循环神经网络(RNN)在处理长距离依赖关系时面临的困境。
Transformer模型的架构由编码器-解码器组成,每个部分包含多个相同的层。这种设计允许模型并行处理输入序列,大幅提升了计算效率。具体而言,Transformer的架构特点包括:
- 自注意力机制 :通过计算输入序列中任意两个位置之间的关联度,捕捉全局依赖关系。这种方法使得模型能够并行处理输入序列中的每个位置,显著提高了计算效率。
- 多头注意力 :将自注意力机制分解为多个独立的“头”,每个头独立计算注意力权重,然后将结果拼接在一起。这种设计不仅增加了模型的表示能力,还有助于捕捉输入序列中的不同方面信息。
- 位置编码 :为解决模型缺乏固有位置概念的问题,Transformer引入了位置编码。这是一种特殊的向量,与单词嵌入向量相加,使得模型能够区分输入序列中词的位置。
- 残差连接和层归一化 :这些技术的引入有效解决了深层网络训练中的梯度消失问题,提高了模型的稳定性和性能。
在NLP任务中,Transformer模型展现出了卓越的性能。特别是在机器翻译任务中,Transformer不仅显著提高了翻译质量,还大幅缩短了训练时间。此外,Transformer在文本生成、文本分类、命名实体识别等任务中也取得了优异的成绩。
值得注意的是,Transformer的出现推动了预训练语言模型的发展。随后出现的BERT、GPT等模型都是基于Transformer架构的变体,进一步提升了NLP任务的性能水平。这些预训练模型通过在大规模未标注文本上进行无监督学习,获得了强大的语言理解能力,为下游任务提供了优秀的初始化参数。
生成对抗网络(GAN)
生成对抗网络(Generative Adversarial Networks, GAN)是一种革命性的深度学习模型,由Ian Goodfellow等人于2014年提出。GAN的独特之处在于其采用了一种新颖的训练方式,通过两个神经网络的对抗来学习数据分布,从而实现高质量的样本生成。
GAN的核心组成部分包括:
- 生成器(Generator) :负责将随机噪声转化为与真实数据相似的样本。
- 判别器(Discriminator) :用于判断输入样本是真实数据还是生成器生成的假样本。
GAN的训练过程可以概括为以下几个关键步骤:
生成器接收随机噪声作为输入,生成假样本。
判别器同时接收真实样本和生成样本,输出样本为真实的概率。
根据判别器的输出,计算损失函数并更新生成器和判别器的权重。
在这个过程中,生成器和判别器形成了一个动态的“博弈过程”:
生成器的目标是最大限度地欺骗判别器,使生成的样本尽可能接近真实样本。
判别器的目标是准确地区分真实样本和生成样本。
通过这种对抗训练,GAN能够逐步学习到真实数据的分布特征,并生成高度逼真的样本。
在实际应用中,GAN在图像生成领域展现出了卓越的性能。例如:
- 图像超分辨率 :GAN可以将低分辨率图像转化为高分辨率图像,显著提升图像质量。
- 图像风格迁移 :GAN能够将一幅图像的风格转移到另一幅图像上,创造出全新的视觉效果。
- 图像修复 :GAN可用于填补图像缺失的部分,重建完整的画面。
然而,GAN的训练过程也存在一些挑战,如模式崩溃等问题。为了解决这些问题,研究者们提出了多种改进方案,如Wasserstein GAN(WGAN)、Conditional GAN(CGAN)等变体,这些改进使得GAN在各种生成任务中表现出色,为人工智能领域带来了巨大的创新潜力。
通过构建多层网络,对目标进行多层表示,以期通过多层的高层次特征来表示数据的抽象语义信息,获得更好的特征鲁棒性。
鲁棒性 = 模型的 “抗干扰能力、稳定性”简单说:图片变了、环境变差,模型还能不能认对。
英文:Robust,也常被叫健壮性、容错性。
图像处理领域主要应用
- 图像分类(物体识别):整幅图像的分类或识别
- 物体检测:检测图像中物体的位置进而识别物体
- 图像分割:对图像中的特定物体按边缘进行分割
- 图像回归:预测图像中物体组成部分的坐标
语音识别领域主要应用
- 语音识别:将语音识别为文字
- 声纹识别:识别是哪个人的声音
- 语音合成:根据文字合成特定人的语音
自然语言处理领域主要应用
- 语言模型:根据之前词预测下一个单词。
- 情感分析:分析文本体现的情感(正负向、正负中或多态度类型)。
- 神经机器翻译:基于统计语言模型的多语种互译。
- 神经自动摘要:根据文本自动生成摘要。
- 机器阅读理解:通过阅读文本回答问题、完成选择题或完型填空。
- 自然语言推理:根据一句话(前提)推理出另一句话(结论)。
感知机
是神经网络和支持向量机的基础。(类似于现在说的神经元。?
多层感知机
多层感知机由感知机推广而来,最主要的特点是有多个神经元层,因此也叫深度神经网络。相比于单独的感知机,多层感知机的第i ii层的每个神经元和第i − 1 i-1i−1层的每个神经元都有连接。
输出层可以不止有11个神经元。隐藏层可以只有11层,也可以有多层。
人工神经网络由神经元模型 构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
前向传播(foward propagation, FP)作用于每一层的输入,通过逐层计算得到输出结果;反向传播(backward propagation, BP)作用于网络的输出,通过计算梯度由深到浅更新网络参数。
超参数,在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。超参数具体来讲比如算法中的学习率(learning rate)、梯度下降法迭代的数量(iterations)、隐藏层数目(hidden layers)、隐藏层单元数目、激活函数( activation function)都需要根据实际情况来设置,这些数字实际上控制了最后的参数和的值,所以它们被称作超参数。
激活函数(Activation functions)对于人工神经网络 模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。**引入激活函数是为了增加神经网络模型的非线性。**没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
梯度下降算法
前向计算过程与反向传播过程。前向计算过程,是指通过我们预先设定好的卷积层、池化层等等,按照规定的网络结构一层层前向计算,得到预测的结果。反向传播过程,是为了将设定的网络中的众多参数一步步调整,使得预测结果能更加贴近真实值。
参数应该是朝着目标损失函数下降最快的方向更新,更确切的说,要朝着梯度方向更新
三种最基本的梯度下降算法:SGD、BGD、MBGD,他们各有优劣。
- 1)调整学习率,使得优化更稳定;
- 2)梯度估计修正,优化训练速度。
随机梯度下降法 SGD每次迭代(更新参数)只使用单个训练样本
批量梯度下降法 BGD每次迭代更新中使用所有的训练样本
量梯度下降法 (Mini-Batch Gradient Descent,MBGD),折中了 BGD 和 SGD 的方法,每次迭代使用 batch_size 个训练样本进行计算,
Adagrad
Adadelta
RMSprop 优化器
Momentum 动量梯度下降
Adam 优化器