机器学习(一) ----------机器学习概述

目录

概述

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构,使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。

一、人工智能三大概念

人工智能(Artificial Intelligence)

人工智能(AI)是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科。

机器学习(Machine Learning)

  • 机器学习(ML)是研究计算机怎样模拟和实现人类的学习行为,以获取心得知识或技能,重新组织已有的知识知识结构使之不断完善自身的性能。

  • ML是实现人工智能的一种途径

  • 分类

    传统机器学习

    深度学习

深度学习(Deep Learning)

        深度学习(DL)的概念来源于人工神经网络(Artificial Neural Network,ANN),又称为深度神经网络(Deep Neutral Network,DNN)。
        人工神经网络主要使用计算机的计算单元和存储单元模拟人类大脑神经系统中大量的神经元细胞(神经元)通过神经纤维传导并相互协同工作的原理。深度学习网络一定程度上等同于多层或者深层神经网络。

二、机器学习应用领域和发展史

发展史

1.起步发展期(1956年-20世纪60年代初)

机器定理证明、跳棋程序

2、反思发展期(20世纪60-70年代初)

机器翻译闹出笑话、无法用机器证明两个连续函数之和还是连续函数

3.应用发展期(20世纪70年代初-80年代中)

专家系统

4.低迷发展期(20世纪80年代中-90年代中)

专家系统存在的应用领域窄、缺乏常识性知识、知识获取困难、推理方法单一、缺乏分布式功能、难与现有数据库兼容等问题暴露

5.稳步发展期(20世纪90年代中-2010年)

IBM深蓝超级计算机战胜国际象棋世界冠军卡斯帕罗夫

6.蓬勃发展期(2011年至今)

三大流派

1.符号主义学派(基于数理逻辑)

  • 启发式算法
  • .专家系统
  • 知识工程理论与技术
  • 知识图谱(Knowledge Graph)
  • 自然语言理解(Natural Language Processing,NLP)

2.连接主义学派(认为神经网络和神经网络间的连接机制和学习方法能够产生智能)

  • 反向传播算法(Back Propagation,BP)
  • 卷积神经网络(Convolutional Neural Networks,CNN)
  • 深度神经网络(Deep Neutral Network,DNN)

3.行为主义学派(控制论)

  • 波士顿动力机器人

三、机器学习常用术语

AI发展三要素

  • .数据
    数据决定模型的上限
  • 算法
    算法逼近这个上限
  • 算力

样本(sample)

一行数据为一个样本

特征(feature)

一列数据位一个特征,特征是从数据中提取出来的,对结果预测有用的信息

标签/目标(label/target)

模型要预测的那一列数据

训练集(training set)

用于训练模型的数据样本集合

  • x_train
    训练集中的特征
  • y_train
    训练集中的标签

测试集(testing set)

用于评估模型准确性的样本集合

  • x_test
    测试集中的特征
  • y_test
    测试集中的标签

注:训练集样本数和测试集样本数比例一般为: 训练集:测试集 = 8:3 - 7:3

四、机器学习算法分类

1.有监督学习(Supervised Learning)

1.1定义

有监督学习(Supervised Learning)使用带有已知标签的数据集来训练模型。在有监督学习中,算法会学习如何从输入特征映射到输出标签。通过比较模型的预测输出与实际的已知标签,算法能够不断地调整其内部参数以减小误差,从而改进对未来数据点的预测性能。

1.2 分类

  • 分类问题(标签值离散)
  • 回归问题(标签值连续)

1.3常见的有监督学习算法

  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 支持向量机(Support Vector Machines, SVMs)
  • 决策树(Decision Trees)和随机森林(Random Forests)
  • 神经网络(Neural Networks)

2.无监督学习(Unsupervised Learning)

2.1定义

无监督学习(Unsupervised Learning)在训练过程中使用的数据没有人为标记的标签或目标。与有监督学习相反,无监督学习模型需要通过探索数据的内在规律和结构,自行发现数据的模式和特征。

2.2常见应用

  • 聚类
  • 降维
  • 异常检测

2.3常见的无监督学习算法

  • K-means聚类
  • 层次聚类
  • DBSCAN聚类
  • 主成分分析(Principal Component Analysis,PCA)
  • 自编码器(Autoencoder)

3.半监督学习(Semi-supervised Learning)

3.1定义

半监督学习(Semi-supervised Learning)是一种机器学习的方法,它介于监督学习和无监督学习之间。在半监督学习中,训练数据部分被标记(带有标签),部分未被标记(没有标签)。这种方法的目标是利用大量的未标记数据,在结合少量标记数据的情况下,训练出性能更好的模型。

3.2常见方法

  • 自训练(Self-Training):首先使用有标签的数据来训练一个初始模型,然后用这个模型来预测无标签数据的标签。接着,选择一部分预测置信度较高的数据加入到训练集中,并重新训练模型。这个过程可以反复进行,以逐步提高模型的性能。
  • 直推学习(Transductive Learning):直推学习是一种特殊的半监督学习方法,它只关注如何对给定的无标签数据进行分类,而不关心如何建立一个适用于新数据的模型。在直推学习中,我们通常会使用一种基于图的方法,通过计算数据点之间的相似度来推断无标签数据的标签。
  • 协同训练(Co-Training):协同训练是一种基于多视图的方法,它假设数据可以从多个不同的角度或特征集(即视图)来描述。在每个视图上,我们都可以训练一个分类器,并使用一个分类器来预测另一个分类器无法确定的数据的标签。通过这种方式,我们可以逐步扩大训练集并提高模型的性能。

3.3重要意义

它允许我们使用更广泛的数据集进行训练,而不需要对所有数据进行标记。标记数据通常需要耗费大量的人力、时间和金钱,因此半监督学习提供了一种更经济高效的方法来利用数据。

4.强化学习(Reinforcement Learning)

4.1 定义

强化学习(Reinforcement Learning,RL)又称再励学习、评价学习或增强学习,是机器学习的一种范式和方法论。它用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

4.2四个要素

  • agent
  • 环境状态
  • 行动
  • 奖励

4.3常用的无监督学习算法

  • Q-learning
  • SARSA
  • DQN
  • A3C
  • TRPO
  • PPO
  • SAC

五、机器学习建模流程

1.获取数据

2.数据基本处理(预处理)

3.特征工程

4.机器学习(训练模型)

5.模型评估

六、特征工程概念入门(Feature Engineering)

1.概念

对原始数据进行预处理和转换,以便更好地适应机器学习算法的需求

2.特征提取(Feature Extraction)

2.1定义

指的是从原始数据中提取出有意义的信息或特征,这些特征能够表示原始数据的某些重要方面或属性,并可以用于后续的机器学习或分析任务。

2.2常用方法

  • 统计特征:基于数据的统计信息(如平均值、中位数、众数、标准差、偏度、峰度等)提取特征。
  • 文本特征:对于文本数据,可以使用词袋模型(Bag of Words)、TF-IDF(词频-逆文档频率)、n-gram(n元组)、word2vec(词嵌入)等方法提取特征。
  • 图像特征:对于图像数据,可以使用SIFT(尺度不变特征变换)、SURF(加速鲁棒特征)、HOG(方向梯度直方图)、CNN(卷积神经网络)等方法提取特征。
  • 时间序列特征:对于时间序列数据,可以提取基于时间的统计特征(如时间戳、时间差、时间窗口内的统计量等)。

3.特征预处理(Feature Preprocessing)

3.1定义

将数据输入机器学习模型之前,对数据进行清洗、转换、缩放等操作,以提高模型的性能和稳定性

3.2常用方法

  • 数据清洗和处理:处理缺失值、异常值和噪声,确保数据的完整性和准确性。常见的方法包括填充缺失值(如使用均值、中位数、众数或插值法)、平滑噪声(如通过滤波技术)、剔除异常值(如使用IQR方法或Z-score方法)等。
  • 特征缩放:将不同尺度的特征缩放到相似的范围,以避免某些特征对模型的影响过大。常见的特征缩放方法有标准化(Z-score标准化)和归一化(Min-Max缩放)。标准化是将数据转换为均值为0、标准差为1的分布,而归一化是将数据缩放到一个特定的范围(如0到1)。
  • 特征选择:选择对目标变量有重要影响的特征,减少维度和噪声,提高模型的泛化能力。常见的特征选择方法有基于统计指标的方法(如方差选择、卡方检验)、基于模型的方法(如递归特征消除)、以及基于嵌入式方法(如L1正则化)。
  • 特征转换:将原始特征转换为更适合模型的形式,如多项式特征、交叉特征、主成分分析(PCA)等。这可以帮助模型更好地捕捉数据的模式和结构。
  • 特征编码:将非数值型的特征转换为数值型的形式,以便机器学习算法处理。这有助于挖掘特征之间的相互作用。例如,对于分类特征,可以使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)。

4.特征降维(Feature Decomposition)

4.1定义

指通过某种映射方法,将原始的高维特征空间中的数据点映射到一个低维的特征空间中。这种技术的主要目的是减少数据中的冗余信息和噪声,提高模型的准确性、减少计算量和内存使用,并可能帮助避免过拟合。

4.2常用方法

  • SVD
  • PCA

5.特征选择(Feature Selection)

5.1定义

原始特征集中选择出相关特征子集,用于构建模型。这个过程的目标是减少冗余或无关特征,从而简化模型、提高模型的准确性、减少过拟合,并降低计算成本。

5.2常用方法

  • 1.过滤式(Filter)方法:
    • 方差选择法:删除方差低于某个阈值的特征,因为低方差可能表示该特征不包含有用信息。
    • 卡方检验:用于分类任务,检验非负特征和输出之间的关系。
    • 互信息:评估特征与输出之间的相关性。
    • 皮尔逊相关系数:度量两个连续变量之间的线性关系。
  • 2.包裹式(Wrapper)方法:
    • 递归特征消除(Recursive Feature Elimination, RFE):使用机器学习模型来评估每个特征的重要性,并在每次迭代中删除最不重要的特征。
    • 顺序特征选择算法(Sequential Forward Selection, SFS;Sequential Backward Selection, SBS;Sequential Floating Selection, SFSF):这些算法逐步添加或删除特征,直到满足某个停止准则。
  • 3.嵌入式(Embedded)方法:
    • 决策树:在构建决策树时,会自然地选择对目标变量影响最大的特征。
    • 随机森林:基于决策树的方法,通过平均多棵树的输出进行特征重要性评估。
    • 梯度提升机(Gradient Boosting Machines):在每次迭代中,都根据当前模型的损失函数的梯度信息来选择最佳特征。
    • L1正则化(Lasso):在线性回归和逻辑回归中,L1正则化可以通过将不相关特征的系数压缩到0来实现特征选择。

6.特征组合(Feature Crossess)

也称为特征交叉。它指的是通过将单独的特征进行组合(相乘或求笛卡尔积)而形成的合成特征。这种技术的主要目的是提高对复杂关系的拟合能力,从而提升模型的非线性拟合能力。

七、模型拟合问题

1.拟合(fitting)

指的是根据给定的数据点,找到一个或多个函数或模型,使得这些函数或模型能够尽可能地接近或匹配这些数据点。拟合的过程可以看作是在数据点和模型之间建立一种映射关系,以便用模型来预测或解释新的数据点。

2.欠拟合(under-fitting)

2.1定义

指的是模型无法很好地捕捉数据中的一般趋势,即模型在训练集和测试集上的性能都很差。

2.2欠拟合的一般原因

  • 高偏差(High Bias):模型对于训练数据的预测结果与真实结果之间存在较大的偏差,这意味着模型无法准确地描述数据中的关系。
  • 模型复杂度低:使用的模型(如线性模型)可能不足以捕捉数据的非线性结构。
  • 训练误差和测试误差都很高:在训练集和测试集上,模型的预测性能都很差,没有显示出模型在训练集上的学习能力。
  • 对噪声不敏感:欠拟合的模型往往对噪声不敏感,因为它们没有足够的能力去拟合数据的细节。

2.3解决欠拟合的方法

  • 增加模型复杂度:例如,从线性模型切换到非线性模型(如决策树、神经网络等)。
  • 添加特征:通过特征工程或特征选择添加更多与预测目标相关的特征。
  • 减少正则化:如果模型使用了正则化技术(如L1或L2正则化),可以尝试减少正则化强度,以便模型可以更好地拟合数据。
  • 选择更合适的模型:根据问题的性质和数据的特性,选择更适合的模型。
  • 增加训练数据:虽然这不是直接解决欠拟合的方法,但增加更多的训练数据可以让模型学习更多的数据模式和特征。

3.过拟合(over-fitting)

3.1定义

指的是模型在训练数据上表现非常好,但在未见过的测试数据上性能却很差的现象。这通常是因为模型过于复杂,以至于它"记住"了训练数据中的噪声和细节,而不是学习到了数据中的一般规律。

3.2过拟合的一般原因

  • 训练误差低,测试误差高:模型在训练集上的误差非常低,几乎可以完美地拟合训练数据,但在测试集上的误差却很高。
  • 对噪声敏感:过拟合的模型往往对训练数据中的噪声非常敏感,因为它试图去拟合这些噪声。
  • 模型泛化能力弱:模型缺乏泛化到新数据的能力,只能对特定的训练数据产生准确的预测。

3.3解决过拟合的方法

  • 增加训练数据:更多的训练数据可以帮助模型学习到更多的数据模式和特征,减少过拟合的风险。
  • 简化模型:通过减少模型的复杂度,例如使用更简单的模型结构或更少的参数,来防止模型过度拟合训练数据。
  • 正则化(Regularization):正则化是一种在模型训练过程中引入额外信息的技术,用于防止模型过拟合。常见的正则化方法包括L1正则化(拉普拉斯正则化)和L2正则化(岭回归或权重衰减)。
  • 早停(Early Stopping):在模型训练过程中,监控验证集上的误差,当验证误差开始上升时停止训练,以防止模型在训练集上过拟合。
  • 交叉验证(Cross-Validation):将原始训练数据划分为K个部分,每次使用K-1个部分作为训练集,剩下的一个部分作为验证集。通过多次交叉验证,可以评估模型在不同数据子集上的性能,并选择最佳的模型参数。
  • 集成方法(Ensemble Methods):集成方法通过将多个模型的预测结果组合起来,以提高模型的泛化能力。常见的集成方法包括Bagging、Boosting和Stacking。
  • 特征选择:通过选择与目标变量最相关的特征来减少数据的维度和复杂度,有助于降低过拟合的风险。

4.泛化(Generaization)

模型对未知数据的预测能力

提高泛化能力方法

  • 增加训练数据量:更多的训练数据可以帮助模型学习到更多的数据模式和特征,从而提高其泛化能力。
  • 正则化:正则化是一种在模型训练过程中引入额外信息的技术,用于防止模型过拟合。常用的正则化方法包括L1正则化和L2正则化等。
  • 集成学习:集成学习通过将多个不同的模型组合起来来提高泛化能力。常用的集成学习方法包括Bagging、Boosting和Stacking等。
  • 数据扩增:数据扩增是通过对训练数据进行扩增来增加训练数据量和丰富数据的多样性,从而提高模型的泛化能力。数据扩增的方法包括随机旋转、平移、缩放等。
  • 迁移学习:迁移学习是通过将已经训练好的模型应用到新的领域中来提高泛化能力的方法。迁移学习的方法包括特征提取和迁移后微调等。

5.奥卡姆剃刀原则

奥卡姆剃刀原则(Occam's Razor),也被称为"奥卡姆的剃刀"或"简约原则",是由14世纪英格兰的逻辑学家、圣方济各会修士威廉•奥卡姆(William Ockham)提出的一个哲学原则。这个原则的核心思想是"如无必要,勿增实体",即"简单有效原理"。

相关推荐
985小水博一枚呀14 分钟前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
AltmanChan15 分钟前
大语言模型安全威胁
人工智能·安全·语言模型
985小水博一枚呀19 分钟前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路29 分钟前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
爱技术的小伙子34 分钟前
【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写
人工智能·chatgpt
深度学习实战训练营2 小时前
基于CNN-RNN的影像报告生成
人工智能·深度学习
昨日之日20064 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_4 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover4 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程