机器学习与数据挖掘第一周

前言

学习推荐

对于机器学习,作者听过李宏毅老师的两节课,感觉很牛逼。剩下的老师推荐:周志华、吴恩达、林轩田、张志华等老师,“西瓜书”等书籍。

顶会

人工智能顶会:IJCAI/AAAI

数据库顶会:SIGMOD/VLDB/ICDE

计算机视觉顶会:CVPR/ECCV/ICCV

自然语言处理顶会:ACL/EMNLP/NAACL

机器学习顶会:NeurIPS/ICML/AAAI


机器学习概述

机器学习是一种人工智能技术,它使用算法和统计模型来分析和学习数据,从而使计算机系统能够自动学习和改进。机器学习的目标是构建能够自动从数据中学习和进行智能决策的计算机系统。机器学习是数据挖掘的重要工具。

Mitchell

Tom Mitchell名言:“在一个任务T和性能度量P的前提下,计算机程序可以从经验E中学习,如果针对任务T的性能P在经验E的基础上得到了提高,那么我们就可以说这个程序对任务T进行了学习”。

这句话揭示了机器学习的本质,即通过对经验数据的学习和模型优化,提高计算机程序在特定任务中的性能表现。

机器学习本质上属于应用统计学,更多地关注如何用计算机统计地估计复杂函数,不太关注为这些函数提供置信区间。从数据中挖掘有价值的信息。

机器学习分为三个层次:

        数据获取以及特征的提取

        数据处理与分析

        智能与认知,即智能的目标

Deep Learning --->  Machine Learning --->  AI算法

三者之间是包含与被包含的关系。

AI算法指的是所有能够模拟人类智能并且解决特定问题的算法,包括但不限于机器学习和深度学习。而机器学习是AI算法的一种,是指让计算机数据经验中自动学习规律和模式,并根据学习结果进行预测和决策的方法。而深度学习是机器学习的一种,是基于人工神经网络的一类算法,通过多层次的非线性变换来学习数据的特征表示和分布模型,目前已被广泛应用于计算机视觉、自然语言处理、语音识别等领域。

DeepLearning需要算力+算法+数据。

数据处理过程

Raw Data ---Pre-Processing--->  Structured Data  --- Learning Algorithm+Candidate Model候选模型迭代---> Training --- Model Selection --- Testing --- Deployment ---> Inference

数据处理包括数据预处理和特征工程两部分。首先,原始数据需要进行预处理,包括数据清洗、数据转换、数据规范化等,以便于后续数据分析和建模。接着,需要进行特征工程从原始数据中选取重要的特征,进行特征选择和特征提取等操作,以便于机器学习算法建模。

在特征工程完成后,需要选择在训练数据集上运行的机器学习算法及其参数。这通常涉及选择候选模型,训练模型并进行模型选择,以获得较好的性能。然后,可以使用测试数据对模型进行评估和调优。

最后,经过测试和优化后的模型可以进行部署和推理。在推理过程中,模型将应用于新的数据集,以进行预测或分类等任务。


机器学习模型及方法

Supervised Learning(监督学习)

Classification+Regression

监督学习是指从标注有正确答案的数据中学习规律和模式,然后应用到新的数据中进行预测和分类。在监督学习中,每个数据样本都有一个标签或者答案,模型根据这些标签来学习,以便在未来对新数据进行正确的预测和分类。

MachineLearning:有监督学习。

Unsupervised Learning(无监督学习)

无监督学习是指在没有正确答案的情况下,从数据中发现有价值的模式和规律。它通常用于数据聚类、数据降维、特征提取等任务。

DataMining:主要侧重于无监督/聚类。

Reinforcement Learning(强化学习)

强化学习是指在不断尝试和反馈的过程中,通过奖励和惩罚来训练智能体(agent)做出正确的决策。强化学习常用于游戏、机器人、自动驾驶等领域,它能够在不断学习的过程中逐步提高智能体的性能和策略。

Neural Network and Deep Learning(神经网络和深度学习)

神经网络是一种受到人类神经系统启发的计算模型,它由多层神经元组成,通过学习数据中的特征和模式,最终实现对新数据的正确预测和分类。

深度学习则是一种神经网络的扩展,它是指多层神经网络的组合,可以处理更加复杂的数据和任务。

Ensemble Learning(集成学习)

集成学习是指将多个不同的模型组合起来,以获得更好的性能和预测能力。常见的集成学习方法有bagging、boosting、stacking等。集成学习能够减少单个模型的偏差和方差,提高模型的泛化能力和可靠性。

目前强大的技术几乎都是“黑盒子”神经网络、支持向量机、集成学习。


常见模型算法

RNN循环神经网络

RNN(Recurrent Neural Network,循环神经网络)是一种特殊的神经网络结构,它具有记忆功能,能够处理序列数据,比如时间序列、文本序列等。相比于传统的前馈神经网络,RNN不仅能够处理当前的输入数据,还能够利用之前的信息来进行决策和预测

尽管RNN具有记忆功能,但它也存在梯度消失或梯度爆炸的问题,这个问题被称为“长期依赖性”问题。为了解决这个问题,出现了许多RNN的变种和优化方法,如LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)等。

RNN是一种处理序列数据的重要神经网络模型,它的优化和变种为序列数据的处理提供了更加有效和可靠的方法。

梯度、梯度消失、梯度爆炸

梯度(Gradient)指的是函数在某个点处的变化率。在机器学习中,梯度经常用于表示损失函数对模型参数的偏导数,也称为梯度向量。梯度方向表示损失函数下降最快的方向,可以用于更新模型参数,使损失函数最小化。

梯度消失(Gradient Vanishing)指的是在深度神经网络中,由于链式法则的影响,导致梯度在传递过程中逐渐变小,最终变得非常小甚至为0,导致深度神经网络无法收敛

梯度爆炸(Gradient Exploding)指的是在深度神经网络中,由于链式法则的影响,导致梯度在传递过程中逐渐变大,最终变得非常大,导致数值溢出或无法优化。梯度爆炸经常出现在过度连接的深度神经网络中。

PLA、MLP、BP

PLA、MLP和BP都是用于机器学习中的神经网络模型。

PLA(Perceptron Learning Algorithm)是最简单的线性神经网络,可以用于二分类任务。它通过对样本进行线性分类,通过梯度下降法来更新权重参数,使得分类结果尽可能正确。

MLP(Multi-Layer Perceptron)是一种由多个神经元组成的多层前馈神经网络,可以用于多分类和回归任务。它通过多层神经元相互连接,并使用非线性激活函数来增强模型的复杂度和表达能力。MLP可以通过反向传播算法BP来更新权重参数,使得损失函数最小化。

BP(Back Propagation)是一种用于训练神经网络的算法,几乎是所有深度学习算法的基础。BP算法基于误差反向传播,通过计算输出层的误差和每一层的梯度,并使用梯度下降法来更新权重,使得损失函数最小化BP算法通常用于训练MLP等深度神经网络。

GAN、VAE、DAE、贝叶斯

GAN(Generative Adversarial Networks)是一种生成式模型由生成器和判别器两个神经网络组成。生成器负责生成假样本,判别器负责判断样本真假。它们通过对抗学习的方式不断更新自己的权重参数,使得生成器能够生成更逼真的假样本,而判别器则变得更加准确。

VAE(Variational Autoencoder)是一种生成式模型,由编码器和解码器两个神经网络组成。编码器将真实样本映射到一个低维潜在空间,解码器将潜在向量还原成原始样本。VAE的训练过程涉及到一个重参数技巧,能够在保持生成样本多样性的同时,限制生成样本的分布范围,并提高生成样本的质量。

DAE(Denoising Autoencoder)是一种无监督学习算法,用于去除数据中的噪音。它通过训练一个编码器-解码器网络,使得网络能够学习如何从加入噪音的样本中还原出无噪音的样本。DAE通常与卷积神经网络一起使用,用于图像去噪和语音文本处理等领域

贝叶斯是一种基于概率的推理方法,用于处理不确定性问题。在机器学习中,贝叶斯方法常用于参数估计、模型选择和不确定性推理等问题。

例如,高斯过程回归(GPR)是一种基于贝叶斯方法的回归算法,能够对预测结果的不确定性进行建模。贝叶斯神经网络(BNN)是一种基于贝叶斯方法的神经网络,可以通过对网络权重引入先验分布来避免过拟合,并对网络的不确定性进行建模。

分类与聚类

分类就是把不同的分在一起,聚类就是寻找相似网

分类的目的是将不同的数据或样本划分到已知的类别中,而聚类的目的是通过计算数据或样本之间的相似性或距离,将它们自动分组或分类。

在分类中,我们已经知道要将数据分成哪些类别,并具有已知的标签或类别。而在聚类中,我们不知道要将数据分成哪些类别,并且通常也没有已知的标签或类别。聚类通常用于对数据进行探索性分析,以发现其中潜在的结构和模式。

Computer vision、NLP

计算机视觉是一种研究如何让计算机处理和理解图像和视频内容的技术。这种技术可以应用于人脸识别、图像分类、目标检测、图像生成等领域。常用的算法包括卷积神经网络、循环神经网络等。

自然语言处理是一种研究如何让计算机理解和处理人类语言的技术。这种技术可以应用于自动翻译、文本分类、情感分析、问答系统等领域。常用的算法包括循环神经网络(RNN)、长短期记忆网络(LSTM)等。

泛化、过拟合、欠拟合

泛化(Generalization)是指模型从训练集中学到的特征和规律能够适应新的数据集,并且能够产生准确的预测结果,就是拟合得好。泛化能力是衡量机器学习模型优劣的重要指标之一。一个好的模型应该具有高泛化能力,即在新的数据集上也能够有较好的预测性能。

过拟合(Overfitting)是指机器学习模型在训练集上表现得非常好,但在新的数据集上表现得不好,缺乏泛化能力的现象。这通常是由于模型过度拟合训练数据集中噪声和随机误差所导致的。过拟合的解决方法包括采用更多的训练数据、正则化、早停、降低模型复杂度等。

欠拟合(Underfitting)是指机器学习模型在训练集和测试集上的表现都不好,无法捕捉训练数据集中的规律和特征的现象。这通常是由于模型过于简单或者数据集太小等原因所导致的。欠拟合的解决方法包括增加模型的复杂度、增加特征数量、减少正则化等。


机器学习三要素:模型、策略、算法

模型 :生成模型、判别模型

生成模型以对样本数据的分布建模为主要目标,这意味着该模型可以从数据中学习到概率分布函数,并能够生成类似于输入数据的新数据。生成模型的代表性算法包括GAN(生成式对抗网络),VAE(变分自编码器),RNN(循环神经网络),和潜在向量自编码器等。

判别模型则是在训练数据中寻找最优的决策边界,主要用于对给定的数据进行分类并预测它们的类别。判别模型的代表性算法包括逻辑回归,支持向量机(SVM),决策树和神经网络等。

判别模型比生成模型更为常用,因为它们通常具有更高的准确性,并且在很多实际应用中,我们只需要进行分类和预测而不需要生成新的数据。

策略:损失函数Loss Function、风险函数Risk Function

在机器学习中,我们需要定义策略来优化模型。策略通常包括两个要素:损失函数和风险函数。

损失函数(Loss Function)是指模型对于单个样本的预测误差,通常用于衡量模型的准确性。常见的损失函数包括均方误差(Mean Squared Error)、交叉熵(Cross-Entropy)等。损失函数越小,模型的预测越准确。

风险函数(Risk Function)是指模型在整个数据集上产生的平均损失,用于衡量模型的泛化能力。通常采用所有样本误差的平均作为风险函数,即损失函数的平均。风险函数越小,模型的泛化能力越强。

基于风险函数的定义,我们可以将机器学习算法的优化目标转化为最小化风险函数的过程。这种方法被称为经验风险最小化(Empirical Risk Minimization,ERM)。

然而,当模型过于简单时,往往会出现欠拟合的问题,即模型在训练集上的表现不好。此时,我们需要增加模型的复杂度,以提高模型的表现。增加模型复杂度的同时,也需要加入正则化项来避免过拟合。这种方法被称为结构风险最小化(Structural Risk Minimization,SRM)。

算法:最小二乘、梯度下降

最小二乘(Least Squares)是一种线性回归算法,目标是最小化观测值与拟合值的差的平方和。在最小二乘中,我们首先需要选择一个线性模型,然后使用训练数据对模型进行拟合,得到模型的参数。这些参数可以使模型的预测值与训练数据的真实值之间的差异最小化。

梯度下降(Gradient Descent)是一种迭代优化算法,用于最小化一个函数的值。梯度下降的基本思想是对目标函数沿着梯度方向进行下降,不断更新参数值,直到达到最小值。在机器学习中,我们通常将损失函数作为目标函数,使用梯度下降算法来更新模型的参数,以使损失函数最小化。

最小二乘算法和梯度下降算法都是常用的机器学习算法。一般来说,当数据集较小,模型包含少量参数时,最小二乘算法更容易计算,并且可以直接得到解析解。而当数据集较大,模型包含大量参数时,梯度下降算法可以更好地应对这种情况,并且可以进行批量处理,提高训练效率。

正则化、交叉检验

正则化是一种机器学习中常用的防止过拟合的方法。正则化通过增加模型复杂度的惩罚项,来约束模型的参数,使其不过度拟合训练数据。常见的正则化方法包括L1正则化和L2正则化。L1正则化实现特征选择的效果;L2正则化缓解过拟合的问题。

交叉检验是一种评估模型泛化能力的方法。在交叉检验中,我们将数据集分成若干个子集,每次使用其中一个子集作为测试集,其余子集作为训练集进行模型训练和测试,最终得到模型的平均预测性能。常用的交叉检验方法包括k折交叉验证和留一交叉验证。交叉检验可以更好地评估模型的泛化能力,避免模型过度拟合训练数据,提高模型的可靠性和稳定性。

过拟合处理步骤之一——降维

过拟合是指模型在训练集上表现较好,但在测试集上表现较差的现象,这是模型过于复杂,处理过少的训练数据或存在噪声数据等原因引起的。降维是一种有效解决过拟合的方法之一,它通过减少数据的维度,尽量保留数据的主要信息,从而使模型更加简单并且可以更好地泛化到测试集。

常见的降维方法包括主成分分析(PCA)线性判别分析(LDA)。PCA是一种无监督降维方法,它通过线性变换将高维数据映射到低维空间,使得数据在新的坐标系下方差最大,从而保留数据的主要信息;LDA是一种有监督降维方法,它通过将高维数据映射到低维空间,使得数据在新的坐标系下能够更容易地被分类,从而提高模型的泛化能力。

其他处理步骤

如果过拟合是由于训练数据量过少或存在噪声数据造成的,可以通过以下方法来解决:

1. 增加训练数据量:增加训练数据量可以使模型更好地学习数据的真实分布,从而减少过拟合的风险。

2. 数据清洗:对于存在噪声的数据,可以通过数据清洗的方式将其剔除,从而提高模型的准确性。

3. 正则化:正则化是一种常用的防止过拟合的方法,它通过在损失函数中加入正则项,对模型参数进行约束,从而避免模型过于复杂。

4. Dropout:Dropout是一种常用的正则化方法,它通过在训练过程中随机地将部分神经元设置为0,从而减少模型对某些特征的依赖,提高模型的泛化能力。

5. 集成学习:集成学习是一种将多个模型的预测结果进行组合,从而提高模型准确性的方法。通常采用Bagging和Boosting两种方法。

6. 减小模型复杂度:减小模型复杂度也是一种常用的防止过拟合的方法,可以通过调整模型的超参数,如网络层数、隐藏层神经元数、学习率等来实现。

分类问题评价指标:准确率、召回率

准确率和召回率是分类问题中常用的两个评价指标。

准确率是指分类器正确分类的样本数占总样本数的比例。即准确率 = (TP+TN)/(TP+TN+FP+FN),其中TP为真正例,TN为真负例(合在一起就是判断对了的所有样本)。FP为假正例,FN为假负例。

召回率是指分类器正确识别出的正样本的数量占所有实际正样本数量的比例。即召回率 = TP / (TP+FN)。

准确率和召回率的关系是一个典型的“精度-召回曲线”问题。在实际应用中,往往需要权衡准确率和召回率来选择最优的模型。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joy T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值