WikiWiki
首页
Java开发
Java面试
Linux手册
  • AI相关
  • Python Flask
  • Pytorch
  • youlo8
SEO
uniapp小程序
Vue前端
work
数据库
软件设计师
入门指南
首页
Java开发
Java面试
Linux手册
  • AI相关
  • Python Flask
  • Pytorch
  • youlo8
SEO
uniapp小程序
Vue前端
work
数据库
软件设计师
入门指南

机器学习

一、机器学习理论&常见任务

1.机器学习基础

什么是机器学习

  • 什么是学习:图灵奖与诺贝尔经济学奖得主Herbert Simon:学习是指数据系统通过执行某个过程改进性能

image-20250828104517783

人工智能的两个重要阶段

  • 逻辑推理,知识库与专家系统 1980年之前,人工建立规则、知识库

image-20250828104650421

  • 机器学习:1980年之后,计算机算法从数据中学习,并自动改进和优化算法,以便更好地预测和决策

    image-20250828104751900

人工智能与机器学习

  • AI是计算机科学中获得图灵奖最多的方向之一,机器学习是主要实现方法
    • AI最近三次获得的图灵奖均属机器学习方向
    • 2018 Hinton,LeCun,Bengio
    • 2011Judea Pearl(概率图模型)
    • 2010 Leslie Valiant(PACIi)

image-20250901083114632

什么是机器学习

  • 对于某类任务T**(机器学习问题)和性能度量P(评估指标),如果一个计算机程序在T(模型)上以P衡量的性能随着经验E(学习数据)而自我完善,那么我们称这个计算机程序在从经验E中学习。**

image-20250901083306376

机器学习的发展历史

  • 曾经的模式识别 (Pattern Recognition, IPR) ,今天的机器学习(Machine Learning,简称ML)

    image-20250901083541054

  • 人工智能>机器学习>深度学习

    • 人工智能是研究与开发用于模拟、延伸和扩展人的智能的综合性技术科学。
    • 机器学习属于人工智能的一个分支,是实现人工智能的方法。
    • 深度学习是一种机器学习方法,当前主要特指深度神经网络。

image-20250901083656813

当前机器学习的背景

  • 算法+数据+算力
    • 算法成熟:神经网络、bayes方法、支撑向量机......
    • 大量可用数据:社交数据、金融蝼数据、电商数据、科学研究数据......
    • 计算资源丰富:GPU算力增长迅速....
    • 竞争加剧:需要智能手段提供更方便的服务、发现商业规律...

image-20250901083901152

为什么需要机器学习

  • 人工规则与专家系统的缺陷:可扩展性、通用性差,需要领域的专家知识

image-20250901084031282

  • 对于一张512x512的黑白图像,每个像素取值0-255,总共的情况是256 ^512x512 =256 ^262144

  • 机器学习可以从样本数据中学习经验,将经验用于预测

    image-20250901084257378

  • 2012年,Google的一个由16000台电脑集群组成的人工神经网络通过YouTube上有关于猫的资料自行训练而能够识别出“猫”这一概念,与其把知识和经验总结好了告诉计算机,不如让计算机自己去学习知识和经验

机器学习的发展历史

  • ANN, SVM, AdaBoost, CNN, Transformer

    image-20250901084428050

  • 机器学习的发展历程大致可以分为三个阶段

    • 1980-1990年处于早期:成为独立的学科,诞生了决策树、反向传播算法,卷积神经网络等经典算法
    • 1991-2011年处于蓬勃发展期:出现了大量方法,2次获得图灵奖。经典的算法包括支持向量机,随机森林,Boosting,RNN/LSTM,流形学习,各种聚类算法等
    • 2012-至今处于深度学习时代:深度卷积神经网络,深度RNN,深度强化学习,生成对抗网络,图神经网络,Transformer,自动化机器学习/NAS等
  • 与其他学科的关系

    image-20250901084800897

2. 机器学习特征

2.1特征概念

什么是特征?

  • 事物可供识别的特殊的征象或标志

image-20250901085345571

特征选择

  • 对一个学习任务而言,有些特征可能很有用,另一些可能没什么用
  • 有经验的人往往只需要看看根蒂、听听敲声就知道是否好瓜。

image-20250901085525325

典型的图像特征

  • 常用的特征有:Harris角点特征,Canny边缘特征,直方图特征等。

image-20250901085634306

典型的文本特征

  • 常用的特征有:词属性,词频TF-IDF,词向量,Bag of Words等。

image-20250901085823417

机器学习数据库UCI

  • UCl数据库是加州大学欧文分校(University of Californialrvine)提出的数据库,目前共有585个数据集,其数目还在不断增加。

image-20250901090040850

http://archive.ics.uci.edu/ml/index.php

Iris数据库

  • 可能是模式识别文献中最著名的数据库,数据集包含3个类,每个类有50个实例,每个类指的是一种鸢尾植物

image-20250901090122166

Adult数据库

  • 从人口普查数据库中抽取,使用以下条件进行提取:(AAGE>16)&&(AGI>100)&&(AFNLWGT>1)&&(HRSWK>0)。

image-20250901090230705

  • 任务是预测确定一个人的年收入是否超过5万美元。
  • 所采用的特征包括:年龄、工作类型、教育程度、受教育时间、婚姻状况、职业、种族、性别、每周工作小时数、原籍、收入等。

2.2特征编码

  • 任务拿到的初始数据通常比较脏乱,可能会带有各种非数字特殊符号,需要将其转换为可计算的数字,采用编码量化等方法

image-20250901090421263

  • 常见的编码方式有:序号编码、独热编码、标签编码、频数编码等

序号编码

  • 序号编码(Ordinal Encoding),通常用于处理类别间具有内在大小顺序关系的数据,对于一个具有m个类别的特征,可以将其对应地映射到 [0,m-1]的整数。

image-20250901090554416

  • 例如收入数据集中的教育程度,可以将“学士”、“硕士”编码成“0”和“1”,因为它们内在就含有这样的逻辑顺序。

独热编码

  • 独热编码(one-hot encoding),又称一位有效编码,使用N位状态向量对N个状态进行编码,每个状态都有独立的位置,并且只有一位有效。

image-20250901090714547

  • 通常用于处理类别间不具有大小关系的特征,如收入数据集的种族。

2.3特征选择

什么是特征选择?

  • 原始未经过滤过的特征可能包含很多无关特征,不同特征对问题的贡献大小程度也不相同,往往需要选取一个包含重要信息的特征子集。

image-20250901090922259

过滤式特征选择方法

  • 先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续训练无关。
    • 方差选择法:计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征
    • 相关系数法:计算各个特征对目标值的相关系数
    • 卡方检验法:检验自变量对因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于沮因变量等于j的样本频数的观察值与期望的差距

包裹式特征选择方法

  • 直接以最终学习器的性能作为特征子集的评价准则,目的是为给定学习器选择最有利于其性能的特征子集。
    • 递归特征消除法:使用一个基模型进行多轮训练,每轮训练后,根据权值系数消除若干特征,再基于新的特征集进行下一轮训练。

嵌入式特征选择方法

  • 将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成
    • 基于惩罚项的特征选择法:使用L1等惩罚项对不同维度的特征进行惩罚,除了筛选出特征外,也进行了降维。
    • 基于树模型的特征选择法:使用决策树、随机森林、Boosting、XGBoost等算法进行特征选择。

3.机器学习常见任务

3.1机器学习问题概览

  • 机器学习问题分类

image-20250901103218488

  • 监督学习、半监督学习、无监督学习的比较

image-20250901103253808

  • 利用一组标记的样本学习已知输入输出数据之间的关系,效果好并且稳定。
  • 通过有效利用小部分监督信息,在获得比无监督学习更好的效果的同时,将成本控制在可以接受范围。
  • 通过算法自动发现输入特征中的结构或模式,能克服很多实际应用中获取监督数据的困难。

有监督学习与无监督学习

  • 最常见的两类问题,根据是否存在真实的答案,即标签进行区分

image-20250901103657318

  • 有监督:有监督:在真值标签(分类类别)的指导下进行学习
  • 无监督:没有真值标签,学习数据的统计规律或潜在结构

半监督学习与弱监督学习

  • 半监督即只有部分训练样本有标签值;弱监督即只有不完整的标签值

image-20250901103904966

  • 半监督分类任务,少量有标签数据与大量无标签数据
  • 弱监督图像分割任务,标注目标框

强化学习

  • 又称再励学习、评价学习或增强学习,在与环境的交互过程中学习策略,达成回报最大化或实现特定目标。

image-20250901104151722

3.2有&无监督学习模型

有监督学习模型

  • 经典的有监督机器学习模型包括分类与回归模型

image-20250901104306558

分类任务

  • 将物理或抽象对象的集合分成多个不同的指定类别,标签为离散类别数值

image-20250901104403075

回归任务

  • 将输入的数据拟合成连续的输出结果,标签为连续数值

image-20250901104511498

无监督学习模型

  • 经典的无监督机器学习模型包括降维、聚类与生成模型

image-20250901104548858

降维任务

  • 采用某种映射方法,将原高维空间中的数据点映射到低维度空间中,对特征进行降维与可视化

image-20250901104826472

聚类任务

  • 将集合分成由类似的对象组成的多个类的过程,是分类问题,但没有训练过程

image-20250901104916934

  • 把一批样本划分成多个类,使得在某种相似度指标下每一类中的样本尽量相似,不同类的样本之间尽量不同

生成任务

  • 估计特定集合的概率密度函数,生成高质量文本、图像、语音、代码等数据

image-20250901105038932

二、评估目标与优化目标

1. 机器学习评估指标

1.1模型评估概述

样本集划分

  • 训练集,验证集,测试集3个不相交的子集

image-20250902103105947

  • 以训练集训练模型;以验证集评估模型,寻找最佳的参数;以测试集测试模型一次,其误差近似为泛化误差。

N折交叉验证技术

  • 将样本集均匀的分成N份,轮流用其中的N-1份作为训练集,剩下的1份作为测试集

    image-20250902103258738

什么是评测指标

  • 机器学习算法的性能评测指标用于衡量算法的优劣,作为各种方法比较的基准,指导我们对模型进行选择与优化

    image-20250902103358259

1.2分类任务常见的评估指标

两类常见的评测指标

  • 分类任务评测指标与回归任务评测指标

    image-20250902103557637

正负样本划分

  • 标签为正样本,分类为正样本的数目为True Positive,简称TP。
  • 标签为正样本,分类为负样本的数目为False Negative,简称FN。
  • 标签为负样本,分类为正样本的数目为False Positive,简称FP。
  • 标签为负样本,分类为负样本的数目为True Negative,简称TN。

image-20250902103711902

准确率/召回率/精确度

  • 准确率,精度,召回率计算
    • 准确率:Accuracy=(TP+TN)/(TP+FP+TN+FN),被判定为正样本的测试样本中,真正的正样本所占的比例。
    • 正样本精度:Precision=TP/(TP+FP),召回的正样本中有多少是真正的正样本。
    • 正样本召回率:Recall=TP/(TP+FN),被判定为正样本的正样本占所有正样本的比例。

PR曲线和F1 Score

  • 精度与召回率是一对相互矛盾的指标,对正负样本不均衡问题敏感

image-20250902104052571

ROC曲线

  • 分类算法在不同假阳率下对应的真阳率
    • 假阳率false positive rate(FPR): FPR=FP/(FP+TN)负样本被分类器判定为正样本的比例。
    • 真阳率true positive rate(TPR): TPR=TP/(TP+FN) 正样本被分类器判定为正样本的比例。

image-20250902104314962

AUC

  • AUC(Area Under Curve)为ROC曲线下的面积,表示随机挑选一个正样本以及一个负样本,分类器会对正样本给出的预测值高于负样本的概率

image-20250902104505769

混淆矩阵

  • 对于k分类问题,混淆矩阵为kxk的矩阵,元素cij表示第i类样本被分类器判定为第j类的数量

image-20250902104722436

1.3回归任务常见的评估指标

IoU

  • loU(lntersection over Union),边界框/掩膜正确性的度量指标

image-20250902104908957

PSNR

  • Peak Signal to NoiseRatio,有真值参考的质量评估指标,在信号处理领域被广泛使用,计算复杂度小

image-20250902105243457

2. 机器学习优化目标

2.1模型优化概述

优化目标

  • 机器学习用有限训练集上的期望损失作为优化目标(即代理损失函数loss function),损失代表预测值f(x)与真实值Y的不一致程度。

image-20250902105730562

  • 般损失函数越小,模型的性能就越好,观察训练集和测试集的误差就能知道模型的收敛情况,估计模型的性能

过拟合与欠拟合状态

  • 模型在训练集和测试集上的不同表现

image-20250902105948385

过拟合的原因

  • 模型过大,数据太少

image-20250902110055263

  • 模型本身过于复杂,拟合了训练样本集中的噪声

image-20250902110112879

  • 训练样本太少或者缺乏代表性

2.2分类任务常见优化目标

两类常见的优化目标

  • 分类任务优化目标与回归任务优化目标

image-20250902110154552

0-1损失

  • 只看分类的对与错,当标签与预测类别相等时,损失为0,否则为1

image-20250902110425886

  • 真实的优化目标,但是无法求导和优化,只有理论意义

熵与交叉熵(cross entropy)

  • 熵表示热力学系统的无序程度,在信息学中用于表示信息多少,不确定性越大,概率越低,则信息越多,熵越高

image-20250902110604195

  • 熵函数是概率的单调递减的函数 image-20250902110711260

交叉熵损失(cross entropy loss)

  • 衡量两个概率分布的相似性
  • 令yij表示第i个样本属于分类j的标签,f(xij)表示的是样本溺预测为j分类的概率

image-20250902110809212

Softmax loss

  • 交叉熵损失(cross entropy loss)softmax loss

image-20250902110856418

2.3回归任务常见优化目标

L1 Loss

  • L1损失即Mean absolute loss(MAE loss),以绝对误差作为距离。

image-20250902111017888

  • 主要问题:梯度在零点不平滑(缺点)

L1/L2-loss

  • L2损失即Mean Squared Loss(MSE loss),也被称为欧氏距离,以误差的平方和作为距离。

image-20250902111124382

  • 当预测值与目标值相差很大(异常值)时,梯度容易爆炸,因为梯度里有两者差值。

Smooth L1 loss

  • 解决L1 loss梯度不平滑,L2 loss梯度爆炸的问题

image-20250902111527784

  • 在x比较小时,等价于L2 loss,保持平滑。
  • 在x比较大时,等价于L1loss,可以限制数值的大小。

三、机器学习模型实践

1.逻辑回归模型原理与实战

1.1如何建模求解

一个简单的机器学习问题

  • 如何区分樱桃和猕猴桃?

image-20250902111936896

  • 樱桃的颜色亮,重量小;猕猴桃的颜色暗,重量大;选择两个有区分度的特征-颜色y,重量x,组成特征向量(x,y),樱桃位于xy平面的左上角,猕猴桃位于右下角

如何进行建模求解

  • 把樱桃和猕猴桃抽象成平面上的点,用一条直线可以将这两种类型分开,这条直线称为线性分类器

image-20250902112031096

  • 直线方程为 ax+by+c=0

  • 落在直线上方的点被判定成樱桃 ax +by+c<0

  • 落在直线下方的点被判定成猕猴桃 ax +by+c>0

  • 将机器学习模型表示为f,输入特征向量为**(x,y),樱桃的类别标签为-1**,猕猴桃的类别标签为**+1**,直线方程的参数**(a,b,c)**就是机器学习模型的参数

image-20250902112751573

1.2逻辑回归模型

逻辑回归(logistic)模型

  • 又被称为对数回归模型,实际上是一种二分类算法,从一个样本的特征向量x,预测出它是正样本的概率值p(y=1|x)

  • image-20250902132415344

如何使用逻辑回归模型进行分类

  • 对数似然比,样本属于正样本和负样本概率值比的对数

image-20250902132727060

1.3逻辑回归模型实战

sklearn机器学习库

  • 一个著名的Python机器学习库,实现了绝大多数经典机器学习算法

image-20250902132916105

使用sklearn解决逻辑回归问题

  • 构建包含两个类的简单二维数据并进行可视化

image-20250902133101757

使用sklearn解决逻辑回归问题

  • 导入库进行训练

image-20250902133352877

数据集

  • 鸢尾花分类

image-20250902133422252

# Copyright 2021 longpeng2008. All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# If you find any problem,please contact us
# Author: longpeng
# Email: longpeng2008to2012@gmail.com

#coding:utf8
import numpy as np
import matplotlib.pyplot as plt
import sys

## 导入逻辑回归模型函数
from sklearn.linear_model import LogisticRegression

## 读取数据
lines = open('iris.txt').readlines()
x_features = [] ## 特征数组
y_label = [] ## 标签数组
table = {"setosa":0,"versicolor":1,"virginica":2} #创建标签转换表

for i in range(1,len(lines)):
   line = lines[i].strip().split(' ')
   feature = line[1:-1] ## 获得特征
   label = table[str(line[-1].split('\"')[1])] ## 获得标签
   x_features.append(feature)
   y_label.append(label)
   #print(str(feature)+' '+str(label))

## 调用逻辑回归模型
lr_clf = LogisticRegression()
lr_clf = lr_clf.fit(x_features, y_label) #其拟合方程为 y=w0+w1*x1+w2*x2

## 查看模型的w和b
print('the weight of Logistic Regression:',lr_clf.coef_)
print('the intercept(w0) of Logistic Regression:',lr_clf.intercept_)
最近更新:: 2025/9/8 15:57
Contributors: yanpeng_