机器学习笔记(一)

一、机器学习简介

1. 机器学习的定义与核心思想

定义:

机器学习是一种基于数据的方法,通过计算机算法来自动地分析数据、学习规律,并做出预测或决策。其核心在于让计算机从数据中学习,而不是通过硬编码的方式来实现任务。

简单来说:机器学习=寻找一种函数(模型)

核心思想

通过算法从数据中发现模式或规律,以便在未来对新的数据做出合理的判断。

2. 函数(模型)的寻找与落地

① 定义函数的集合(模型选择与设计)

  • 选择模型类型:首先,根据问题的性质选择合适的模型类型。例如,对于分类问题,可以选择逻辑回归、决策树、支持向量机或神经网络等;对于回归问题,则可以选择线性回归、岭回归、Lasso回归或神经网络等。

  • 确定模型复杂度:模型的复杂度(如神经网络的层数和每层神经元的数量)会影响其拟合数据的能力。过于复杂的模型可能导致过拟合,而过于简单的模型则可能无法捕捉数据的复杂结构。

  • 特征工程:根据模型的需要,对数据进行预处理和特征提取。这包括数据的清洗、标准化、归一化、特征选择或特征构造等。

判断函数的好坏(模型评估)

  • 划分数据集:将数据集划分为训练集、验证集和测试集。训练集用于训练模型,验证集用于调整模型的参数(如超参数调优),测试集则用于最终评估模型的性能。

  • 选择评估指标:根据问题的性质选择合适的评估指标。例如,对于分类问题,可以使用准确率、精确率、召回率、F1分数或AUC-ROC曲线等;对于回归问题,则可以使用均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)或R²分数等。

  • 交叉验证:为了更准确地评估模型的性能,可以使用交叉验证方法,如k折交叉验证,将训练集进一步划分为k个子集,然后轮流将其中一个子集作为验证集,其余子集作为训练集进行训练。

选择最好的函数(模型选择与优化)

  • 超参数调优:使用验证集对模型的超参数进行调整,如学习率、正则化参数、树的深度等,以找到最佳的模型配置。

  • 集成学习:通过结合多个模型的预测结果来提高整体的预测性能。常见的集成学习方法包括袋装(Bagging)、提升(Boosting)和堆叠(Stacking)等。

  • 模型选择:根据验证集上的性能选择最佳的模型。这通常意味着选择具有最低验证误差的模型。

  • 模型解释与验证:对选定的模型进行解释,确保其预测结果合理且符合业务逻辑。此外,还需要使用测试集对模型进行最终验证,以确保其在实际应用中的性能。

部署与监控

  • 模型部署将选定的模型部署到生产环境中,以便进行实时预测。

  • 性能监控:持续监控模型的性能,确保其在实际应用中保持稳定的性能。如果发现性能下降,可能需要重新训练模型或调整模型参数。

  • 模型更新:随着新数据的不断积累,可能需要定期更新模型以提高其性能。

3. 机器学习-学习路线

① 监督学习

定义:在有数据标注(即每个输入数据都对应一个输出标签)的情况下进行学习。目标是学习一个映射函数,能够将输入数据准确地映射到对应的输出标签。

详细分类

  • 回归:预测连续值的输出,如预测房价、股票价格等。

  • 分类:预测离散值的输出,如邮件分类(垃圾邮件/非垃圾邮件)、图像分类(猫/狗/其他)等。

  • 多标签分类:一个输入数据可能对应多个输出标签,如新闻分类(体育/政治/娱乐等)。

  • 序列标注:如自然语言处理中的词性标注,每个单词都被标注为特定的词性。

技术:支持向量机、决策树、随机森林、神经网络(包括深度学习)、K-近邻算法等。

半监督学习

定义:在训练数据中,带标记的数据不够多,但存在大量未标记的数据。目标是利用这些未标记的数据来提高模型的性能。

方法

  • 自训练:使用初始的有标记数据训练模型,然后用这个模型来预测未标记数据的标签,将预测结果可靠的样本加入到训练集中,重新训练模型。

  • 协同训练:将特征空间划分为两个或多个部分,分别训练多个模型,然后利用这些模型的预测结果来相互标记未标记数据。

  • 生成式模型:如高斯混合模型(GMM)或变分自编码器(VAE),可以生成新的带标记数据来增强训练集。

迁移学习

定义:利用在一个任务上学到的知识来帮助解决另一个任务,即使这两个任务看起来并不直接相关。

方法

  • 基于特征的迁移:将源任务学习到的特征表示用于目标任务。

  • 基于模型的迁移:直接使用源任务训练好的模型作为目标任务的初始模型,然后在此基础上进行微调。

  • 基于关系的迁移:学习源任务中不同数据之间的关系,并将这种关系应用到目标任务中。

应用场景:图像识别、语音识别、自然语言处理等。

④ 非监督学习

定义在没有具体标注数据的情况下进行学习,目标是发现数据中的隐藏结构或模式。

方法

  • 聚类:将数据分成多个组,使得组内数据相似度高,组间数据相似度低。如K-means、层次聚类等。

  • 降维:将高维数据转换为低维数据,同时尽可能保留原始数据的信息。如主成分分析(PCA)、线性判别分析(LDA)等。

  • 关联规则学习:发现数据项之间的有趣关系,如购物篮分析中的“啤酒+尿布”规则。

  • 生成式模型:如隐马尔可夫模型(HMM)、隐狄利克雷分布(LDA)等,用于生成新的数据样本或进行序列预测。

⑤ 结构化学习

定义:产生结构化的输出结果,如序列、树、图等,而不仅仅是简单的回归或分类结果。

方法

  • 序列标注与生成:如条件随机场(CRF)用于词性标注,序列到序列(Seq2Seq)模型用于机器翻译。

  • 结构化预测:如支持向量机结构化输出(SVM-struct)、条件随机场(CRF)等,用于图像分割、人体姿态估计等。

  • 图神经网络:用于处理图结构数据,如社交网络分析、分子结构预测等。

强化学习

定义:通过与环境进行交互来学习策略,以最大化某种奖励信号。

方法:Q-learning、策略梯度方法、深度强化学习(如DQN、A3C等)。

应用场景:游戏AI、机器人控制、自动驾驶等。

自监督学习

定义:利用数据本身的特性(如上下文、时间顺序等)来生成伪标签,从而进行类似于监督学习的训练。

方法:旋转预测、颜色化灰度图像、上下文预测等。

应用场景:图像识别、自然语言处理等。

联邦学习

定义:在保护数据隐私的前提下,通过多个参与方的协作来训练模型。

方法:纵向联邦学习、横向联邦学习、联邦迁移学习等。

应用场景:金融风控、医疗数据分析等。

二、 机器学习算法的类型

1. 有监督学习

有监督学习概念简介

有监督学习通常是利用带有专家标注的训练数据,学习一个从输入变量X到输出变量Y的函数映射。 Y=f(X)

训练数据通常是(n×x,y)的形式,其中n代表训练样本的大小,x和y分别是变量X和Y的样本值。

利用有监督学习解决的问题大致上可以被分为两类:

分类问题:预测某一样本所属的类别 (离散的)。比如给定一个人(从数据的角度来说,是给出一个人的数据结构,包括:身高,年龄,体重等信息),然后判断 性别,或者是否健康。

回归问题:预测某一样本的所对应的实数输出(连续的)。比如预测某一地区人的平均身高。

算法中线性回归,逻辑回归,分类回归树,朴素贝叶斯,K最近邻算法常涉及监督学习,要重点掌握。

集成学习也是一种有监督学习。它是将多个不同的相对较弱的机器学习模型的预测组合起来,用来预测新的样本。算法中如随机森林装袋法和XGBoost算法常涉及集成技术。

深度学习中的有监督学习

基本概念

在有监督学习中,数据集由输入数据和对应的标签组成。标签可以是类别标签(用于分类任务)或连续值(用于回归任务)。深度学习模型通过学习这些输入数据与标签之间的映射关系,以在新的数据上进行准确预测。这个映射函数通常是一个复杂的神经网络,如卷积神经网络(CNN)、循环神经网络(RNN)等。

主要方法
  1. 分类:深度学习中的分类任务通常使用卷积神经网络(CNN)等模型。CNN通过卷积层提取图像特征,并通过分类层进行预测。在文本分类任务中,RNN或LSTM等模型也被广泛使用。

  2. 回归:回归任务在深度学习中通常使用全连接神经网络(FCNN)或CNN等模型。这些模型通过多层全连接层或卷积层进行特征提取,并通过回归层进行预测。

  3. 目标检测:目标检测是计算机视觉中的一个重要任务,旨在识别图像中的目标物体并给出其位置信息。深度学习中的目标检测模型通常使用区域卷积神经网络(R-CNN)、YOLO、SSD等算法。

  4. 图像分割:图像分割任务旨在将图像划分为多个区域,每个区域对应一个特定的类别。深度学习中的图像分割模型通常使用全卷积网络(FCN)或U-Net等结构。

应用场景

  1. 计算机视觉:有监督学习在计算机视觉领域有广泛应用,如图像分类、目标检测、图像分割等。这些任务通常使用CNN等深度学习模型进行训练和预测。

  2. 文本分类和情感分析:已标记的文本数据可以用于训练模型,使其能够自动将新的文本数据分类为不同的类别或进行情感分析。

  3. 自然语言处理(NLP):有监督学习在自然语言处理领域也有广泛应用,如机器翻译、命名实体识别、问答系统、文本摘要等。这些任务通常使用RNN、LSTM或Transformer等深度学习模型进行训练和预测。

  4. 预测和回归分析:有监督学习可以用于预测和回归问题,如预测股票价格、信用评分、房价等。

  5. 语音处理:在语音识别、语音合成等语音处理任务中,有监督学习也发挥着重要作用。这些任务通常使用深度学习模型来提取语音特征并进行预测。

2. 无监督学习

无监督学习概念简介

无监督学习问题处理的是只有输入变量X没有相应的输出变量的训练数据。它利用没有专家标注训练数据,对数据的结构建模。

可以利用无监督学习解决主要三大类问题:

关联分析:发现不同事物之间同时出现的概率。在购物篮分析中被广泛地应用。如果发现买面包的客户有百分之八十的概率买鸡蛋,那么商家就会把鸡蛋和面包放在相邻的货架上。

聚类问题:将相似的样本划分为一个簇。与分类问题不同,聚类问题预先并不知道类别,自然训练数据也没有类别的标签。

维度约减:顾名思义,维度约减是指减少数据的维度同时保证不丢失有意义的信息。利用特征提取方法和特征选择方法,可以达到维度约减的效果。特征选择是指选择原始变量的子集。特征提取是将数据从高纬度转换到低纬度。广为熟知的主成分分析算法就是特征提取的方法。

算法如Apriori算法,K-means算法,PCA主成分分析都属于无监督学习。

深度学习中的无监督学习

基本概念

无监督学习依赖于未标注的数据,目标是从这些数据中发现隐藏结构或分布模式。在深度学习中,无监督学习广泛应用于解决数据标注困难和大量无标签数据存在的问题。它主要通过聚类、降维、特征学习和生成建模等方式,对数据进行组织和整理,从而发现数据中的隐藏规律和模式。

主要方法
  1. 聚类

    • K均值聚类(K-means Clustering):将数据点划分为K个簇,使簇内数据点之间的相似度最大化,簇间相似度最小化。

    • 层次聚类(Hierarchical Clustering):通过构建层次树状结构来划分数据,包括自下而上的凝聚层次聚类和自上而下的分裂层次聚类。

    • DBSCAN:基于密度的空间聚类方法,它可以根据邻域内的数据点密度来判断是否是一个真正的簇,以及这个簇的大小。

  2. 降维

    • 主成分分析(PCA):通过线性变换,将高维数据映射到低维空间,保留最大方差方向的信息。

    • 自编码器(Autoencoder):一种神经网络结构,通过压缩和解压缩数据,学习数据的低维表示。自编码器在图像处理、自然语言处理等领域都有广泛的应用。

  3. 生成模型

    • 生成对抗网络(GANs):由生成器和判别器组成,生成器学习生成逼真的数据样本,判别器学习区分真实数据和生成数据。GANs在无监督学习中扮演了重要角色,尤其在图像生成、数据增强和风格迁移等方面。

    • 变分自编码器(VAE):一种概率生成模型,通过最大化证据下界(ELBO)来学习数据的概率分布,并生成新样本。

  4. 其他方法

    • 高斯混合模型(GMM):假设数据由多个高斯分布组成,通过期望最大化(EM)算法估计模型参数,进行数据密度估计。

    • 孤立森林(Isolation Forest):通过构建随机树来识别异常数据点,进行数据的密度估计和异常检测。

应用场景

  1. 数据聚类:在市场细分、图像分类、文档组织等场景中,通过聚类方法对数据进行分组,发现数据内在结构。

  2. 数据降维:在高维数据可视化、噪声消除、特征提取等场景中,通过降维方法简化数据表示,提高处理效率。

  3. 特征学习:在计算机视觉、自然语言处理等领域,通过无监督特征学习方法,获取数据的有效表示,提高下游任务的性能。

  4. 生成建模:在图像生成、数据增强、风格迁移等场景中,通过生成模型生成逼真的新数据样本,扩展数据集和增强模型能力。

  5. 异常检测:在网络安全、金融风控、设备监控等场景中,通过无监督学习方法识别异常数据,进行异常检测和预警。

3. 强化学习

通过学习可以获得最大回报的行为,强化学习可以让agent(个体)根据自己当前的状态,来决定下一步采取的动作。

强化学习算法通过反复试验来学习最优的动作。这类算法在机器人学中被广泛应用。例如在与障碍物碰撞后,机器人通过传感收到负面的反馈从而学会去避免冲突。又如在视频游戏中,我们可以通过反复试验采用一定的动作,获得更高的分数。agent能利用回报去理解玩家最优的状态和当前他应该采取的动作。


机器学习笔记(一)
http://localhost:8090//archives/ji-qi-xue-xi-bi-ji-yi
作者
杨永达
发布于
2024年11月11日
许可协议