目录
一、新手初学?该如何区分[人工智能] [机器学习] [深度学习]?
[1]浅谈一下我的理解
[2]深度交流一下
人工智能(AI, Artificial Intelligence)
机器学习(ML, Machine Learning)
深度学习(DL, Deep Learning)
[3]三者之间的关系
二、机器学习能用到实处?该怎么用?
(1) 推荐系统
(2) 图像识别
(3) 自然语言处理(NLP)
(4) 金融领域应用
(5) 医疗诊断
三、阐述过拟合和欠拟合现象的产生原因及常用的解决办法?
1. 过拟合(Overfitting)
(1) 现象描述
(2) 产生原因
(3) 解决办法
2. 欠拟合(Underfitting)
(1) 现象描述
(2) 产生原因
(3) 解决办法
3. 对比图表,显而易见啊!
四、假设现对消费者的消费行为进行分析,要找出某类商品定价A和其销量B之间的关系,这属于机器学习中的何种任务?此类任务有何特点?
1. 任务类型
回归任务(Regression Task)
2. 回归任务的特点
3. 回归任务的常用方法
4. 特点总结
五、简述方差和偏差的概念,并说明二者的区别和联系。、
1. 方差(Variance)和偏差(Bias)的概念
(1) 方差(Variance)
(2) 偏差(Bias)
2. 方差和偏差的区别
3. 方差和偏差的联系
六、对于样本集S={(2,1)(5,4),(3,3),(7,5),(8,9)},模型F(x)=4x+1,试求模型F(X)在S上的整体误差。
七、机器学习的发展历程有哪些阶段?试说明每个阶段机器学习方法的基本理论。(不怎么考,记住这几个阶段差不多就ok了)
1. 早期阶段(1950s-1980s):符号主义和基于知识的系统
特点
方法与理论
2. 统计学习阶段(1980s-1990s):从符号主义到数据驱动
特点
方法与理论
3. 机器学习阶段(1990s-2010s):以数据为核心
特点
方法与理论
4. 深度学习阶段(2010s-至今):以深层网络为核心
特点
方法与理论
5. 当前阶段(未来方向):大模型与智能自治
特点
方法与理论
八、如何训练一个感知机?该训练过程的理论依据是什么?
1. 感知机简介
2. 感知机训练过程
(1) 初始化参数
(2) 输入数据与预测
(3) 参数更新
(4) 循环训练
3. 理论依据
(1) 感知机收敛定理
(2) 超平面调整规则
4. 感知机训练的核心思想
5. 感知机的训练伪代码
6. 上面很难懂吧?看个简单的例子大家就明白了
7. 感知机的局限性
九、简述专家系统的组成部分,并简要说明构造一个专家系统的过程。
1. 专家系统的组成部分
(1) 知识库(Knowledge Base)
(2) 推理机(Inference Engine)
(3) 用户接口(User Interface)
(4) 数据库(Working Memory)
(5) 知识获取模块(Knowledge Acquisition Module)
2. 构造一个专家系统的过程
(1) 定义问题领域
(2) 知识获取
(3) 构建知识库
(4) 开发推理机
(5) 设计用户界面
(6) 测试与优化
3. 示例:构造医疗诊断专家系统
(1) 定义问题领域
(2) 知识获取
(3) 构建知识库
(4) 开发推理机
(5) 用户界面
(6) 测试与优化
十、什么是特征空间?什么是特征向量?
1. 特征空间的定义
(1) 什么是特征空间?
(2) 特征空间的意义
2. 特征向量的定义
(1) 什么是特征向量?
(2) 特征向量的意义
3. 特征空间与特征向量的关系
十一、机器学习中为什么要进行特征提取?卷积神经网络的特征自动提取有何特点?
1. 为什么要进行特征提取?
(1) 什么是特征提取?
(2) 特征提取的重要性
(3) 手工特征提取的挑战
2. 卷积神经网络(CNN)的特征自动提取
(1) CNN的特征提取特点
(2) CNN特征提取的优点
3. 特征提取的对比:传统 vs CNN 自动提取
十二、结合具体实例来说明正确率、错误率和ROC曲线之间区别与联系。
1. 正确率、错误率、ROC曲线的定义
(1) 正确率(Accuracy)
(2) 错误率(Error Rate)
(3) ROC曲线(Receiver Operating Characteristic Curve)
2. 具体实例
分类结果混淆矩阵
计算指标
3. 正确率、错误率与 ROC曲线的联系与区别
(1) 联系
(2) 区别
4. 实践建议
十三、简要介绍模型性能度量中的真正例率、假正例率、查准率、查全率的概念,并讨论它们之间的区别与联系。
1. 基本概念
(1) 真正例率(True Positive Rate, TPR)
(2) 假正例率(False Positive Rate, FPR)
(3) 查准率(Precision)
(4) 查全率(Recall)
2. 区别与联系
(1) 区别
(2) 联系
3. 示例
计算
4. 实际意义与应用建议
十四、试根据表中数据确定该基因是否与该疾病存在某种联系。
卡方检验公式
步骤
1. 确定观测值(O)
2. 计算期望值(EEE)
3. 计算统计量
4. 与阈值比较
结论
十五、数据集D中包含100个样本,其中正例50个,反例50个,若使用自助法进行模型评估,则理论上训练集和测试集中各包含多少个样本?
1. 训练集和测试集样本数量的理论计算
(1) 训练集中样本数量
(2) 测试集中样本数量
(3) 测试集样本数量
2. 总结
一、新手初学?该如何区分[人工智能] [机器学习] [深度学习]?
[1]浅谈一下我的理解:
人工智能:让机器具有人一样的思维,行为和学习能力的方法;
机器学习:通过数据训练出模型,再根据这个模型进行新数据的预测;
深度学习:通过多层神经网络模拟人脑神经元的连接,从而自动提取数据的深层特征;
[2]深度交流一下:
人工智能(AI, Artificial Intelligence)
- 定义:人工智能是一个广义的概念,指的是让机器具备模仿人类思维、行为、学习能力的技术和方法。
- 目标:让机器能够像人一样做决策、解决问题,甚至理解语言、识别图像等。
- 范围:AI可以是规则驱动的(例如手工编程规则),也可以是数据驱动的(例如机器学习)。
- 例子:聊天机器人、语音助手、自动驾驶。
机器学习(ML, Machine Learning)
- 定义:机器学习是人工智能的一个子领域,关注让机器从数据中自动学习规律,而不需要完全手工编写规则。
- 核心:通过算法学习数据中的模式,再利用这些模式对新数据做出预测。
- 例子:推荐系统(如电商网站推荐商品)、垃圾邮件过滤、天气预测。
深度学习(DL, Deep Learning)
- 定义:深度学习是机器学习的一个子领域,专注于使用多层“神经网络”来模拟人脑神经元的连接,从而自动提取数据的深层特征。
- 特点:可以处理复杂的数据类型(如图像、语音、文本),且随着数据量增加表现越来越好。
- 例子:人脸识别、语音识别、自动翻译。
[3]三者之间的关系
- 人工智能(AI):好比整个宇宙,是一个大范围的概念。
- 机器学习(ML):是AI中的一个重要“星球”,主要负责让机器通过数据学习。
- 深度学习(DL):是机器学习的一部分,就像星球上的“城市”,使用了特别强大的技术(神经网络)。
AI | 最大,包含ML和DL | 包括规则和学习算法 | 范围广,较灵活 |
ML | AI的子集 | 数据驱动,算法学习规律 | 数据需求中等 |
DL | ML的子集 | 深度神经网络,多层特征提取 | 数据需求较大 |
可见,三者是一种包含关系 :
二、机器学习能用到实处?该怎么用?
(1) 推荐系统
- 满满的大数据,给你推!
- 电商平台推荐商品(如亚马逊推荐你可能喜欢的商品)。
- 视频平台推荐内容(如抖音、YouTube根据你的观看历史推荐视频)。
- 音乐应用推荐歌曲(如Spotify、网易云音乐)。
- 相关方法:
- 协同过滤算法:基于用户行为的相似性推荐内容。
- 矩阵分解:处理大量用户和商品交互数据。
- 深度学习模型:学习用户的隐式兴趣,提升推荐效果。
(2) 图像识别
- 照你,拍你就是强!
- 手机的面部解锁功能。
- 医疗中的病灶检测(如检测癌症肿块)。
- 自动驾驶中的路况识别(识别车辆、行人、红绿灯等)。
- 相关方法:
- 卷积神经网络(CNN):擅长处理图像数据,是深度学习的核心方法。
- 支持向量机(SVM):传统机器学习方法,用于简单图像分类问题。
(3) 自然语言处理(NLP)
- 嗨!小布小布,小艺小艺~
- 智能语音助手(如Siri、Alexa)。
- 自动翻译(如谷歌翻译)。
- 聊天机器人(如企业客服、GPT模型)。
- 相关方法:
- 词袋模型(Bag of Words, BOW):将文本转换为向量表示,用于传统机器学习。
- Transformer模型:用于处理复杂的语言理解任务(如GPT、BERT)。
- 循环神经网络(RNN)和长短期记忆网络(LSTM):适合处理时间序列文本数据。
(4) 金融领域应用
- 你是老赖!!不是码农!:
- 银行的信用评分(判断一个人是否容易违约)。
- 反欺诈检测(识别异常交易行为)。
- 股票价格预测(根据历史数据预测未来趋势)。
- 相关方法:
- 逻辑回归:用于分类问题(如信用风险分类)。
- 决策树和随机森林:用于预测和分类。
- 强化学习:在股票交易策略优化中应用广泛。
(5) 医疗诊断
- 平平安安,不要病痛:
- 分析病人的医疗影像(CT、MRI等)。
- 疾病预测(预测某种病症的可能性)。
- 个性化治疗方案推荐。
- 相关方法:
- 深度学习(CNN、RNN):用于分析复杂的医疗数据。
- 聚类算法:对患者进行分组,找到具有相似病情的人群。
方法分类:
监督学习 | 标有签的数据,学习数据的输入和输出关系。 | 图像分类、信用评分、垃圾邮件检测 |
无监督学习 | 无标签的数据,寻找数据的模式或结构。 | 聚类(客户分群)、降维(数据可视化) |
强化学习 | 通过试错和奖励机制,学习最优策略。 | 游戏AI(如围棋AlphaGo)、自动驾驶 |
半监督学习 | 数据中只有部分有标签,利用少量标签和大量无标签数据进行训练。 | 医疗影像分析(部分数据有专家标注) |
深度学习 | 使用神经网络模型处理复杂的数据,自动提取特征。 | 面部识别、语音识别、机器翻译 |
三、阐述过拟合和欠拟合现象的产生原因及常用的解决办法?
1. 过拟合(Overfitting)
【小编看来,简而言之,就是过渡训练了,只认识这个数据,我换一个不同的新数据又不认识了】
(1) 现象描述:
- 过拟合是指模型在训练数据上表现很好,但在测试数据或新数据上表现很差。
- 过拟合的模型学习到了训练数据的“噪声”或不必要的细节,无法有效推广到新数据。
(2) 产生原因:
- 模型复杂度过高:模型的自由度太大(如过多的参数、过深的网络)。
- 训练数据量不足:模型无法学到泛化规律,只能记住训练数据。
- 特征过多且无关:模型学习到无关特征或噪声。
- 过长的训练时间:模型在训练集上反复优化,逐渐适配噪声。
(3) 解决办法:
- 简化模型:降低模型复杂度,例如减少神经网络层数或参数数量。
- 增加训练数据:使用数据增强技术(如对图像数据进行旋转、翻转)或收集更多样本。
- 正则化(Regularization):使用L1或L2正则化,增加模型的泛化能力;Dropout技术随机丢弃神经元以减少过拟合。
- 早停(Early Stopping):在验证集误差开始增加时停止训练。
- 特征选择:去除冗余或无关特征,保留对目标最相关的特征。
2. 欠拟合(Underfitting)
【简而言之,就是训练太少,练的不够就欠,菜就多练!老数据都练不出来,更别说新数据!】
(1) 现象描述:
- 欠拟合是指模型无法很好地拟合训练数据,既在训练集上表现不好,也无法在测试集上表现好。
- 欠拟合的模型过于简单,无法捕捉数据的内在规律。
(2) 产生原因:
- 模型复杂度过低:模型的容量不足(如参数过少、模型太浅)。
- 训练不足:训练时间太短,模型未收敛到较优解。
- 特征不足:输入数据未包含充分的信息来描述问题。
- 错误的假设:算法假设与实际数据分布不匹配。
(3) 解决办法:
- 增加模型复杂度:选择更复杂的模型,例如增加神经网络层数或参数数量。
- 增加训练时间:提高迭代次数,确保模型充分训练。
- 优化特征:增加更多有效特征,或使用特征工程提升数据质量。
- 调整算法:尝试更适合当前问题的模型(如从线性模型转为非线性模型)。
- 降低正则化强度:如果正则化过强(如L1/L2系数过大),可以适当减小其权重。
3. 对比图表,显而易见啊!
比较维度 | 过拟合 | 欠拟合 |
---|---|---|
现象 | 训练集表现很好,测试集表现很差 | 训练集和测试集表现都很差 |
原因 | 模型过于复杂,记住了训练数据中的噪声 | 模型过于简单,无法拟合数据规律 |
解决办法 | 简化模型、增加数据、正则化等 | 增加模型复杂度、优化特征、训练时间等 |
图示法具体解释
图例如下:
- 蓝色点:训练数据点。
- 绿色虚线:真实的关系,即理想情况下模型应该学习到的模式。
- 红色点线:欠拟合模型,无法捕捉数据的趋势,仅提供了一个简单的预测(均值线)。
- 橙色虚线点:过拟合模型,虽然训练数据点都拟合得很好,但学到了数据中的噪声,无法泛化到新数据。
四、假设现对消费者的消费行为进行分析,要找出某类商品定价A和其销量B之间的关系,这属于机器学习中的何种任务?此类任务有何特点?
1. 任务类型
回归任务(Regression Task)
- 回归任务的目标是预测一个连续值的输出。
- 在本问题中:
- 输入(特征):商品定价 A。
- 输出(目标):商品销量 B。
- 输出是连续值(销量可以是 100, 200, 300 等非离散数值),因此这属于回归任务。
2. 回归任务的特点
-
输入输出关系是连续的:与分类任务不同,回归的目标变量是连续数值,而非离散类别(如“高销量”或“低销量”)。例如,销量 B 可能会随定价 A 变化而连续变化。
-
常见的目标:找到输入特征与输出目标之间的函数映射关系,例如 ,以便在给定新定价 A时预测销量 B。
-
评估指标:
- 决定系数()。
- 平均绝对误差(MAE, Mean Absolute Error)。
- 均方误差(MSE, Mean Squared Error)。
-
对输入数据的要求:数据需要具有连续的趋势和规律:输入特征(如定价 A)对目标变量(销量 B)应具有一定的相关性。
3. 回归任务的常用方法
-
线性回归(Linear Regression):适用于线性关系,比如当商品定价和销量之间呈简单的线性变化时。方程形式:。
-
多项式回归(Polynomial Regression):当商品定价和销量之间呈非线性关系时,可以使用多项式回归建模,例如 。
-
决策树回归(Decision Tree Regression):对复杂非线性关系进行建模,具有较强的解释性。
-
支持向量回归(SVR, Support Vector Regression):用于小规模数据且关系复杂的场景。
-
神经网络回归(Neural Network Regression):适用于高维复杂数据,能够建模更加复杂的关系。
4. 特点总结
- 优点:
- 回归任务可以提供精确的数值预测,适用于很多实际问题。
- 例如,预测销量不仅能判断趋势,还可以直接用于决策分析(如库存计划)。
- 挑战:
- 数据噪声可能会干扰预测精度。
- 复杂的非线性关系需要选择合适的模型。
- 数据分布的非均匀性(如价格过高或过低的数据样本不足)可能影响模型表现。
五、简述方差和偏差的概念,并说明二者的区别和联系。、
方差嘛,概率论中变量与均值差值的平方,反映数据的稳定程度,反观之便是波动性;而偏差,我们预测结果与真实情况的一个差距值,平常说话也会说,“跟我预想的有偏差”
1. 方差(Variance)和偏差(Bias)的概念
(1) 方差(Variance)
-
定义: 方差衡量的是模型对不同训练数据集的敏感程度,反映了模型预测结果的波动性。
- 方差高:模型对训练数据的变化非常敏感,容易记住训练数据中的细节(包括噪声),导致过拟合。
- 方差低:模型预测的稳定性较强,对训练数据的微小变化不敏感。
-
特征:
- 高方差模型会在不同训练数据集上给出明显不同的预测。
- 通常与模型复杂度高(如过深的神经网络)相关。
(2) 偏差(Bias)
-
定义: 偏差衡量的是模型的预测结果与真实结果的偏离程度,反映了模型对数据内在规律的拟合能力。
- 偏差高:模型对数据的规律捕捉能力弱,难以拟合训练数据,导致欠拟合。
- 偏差低:模型能较好地捕捉数据的内在规律。
-
特征:
- 高偏差模型通常在训练集和测试集上的表现都不好。
- 通常与模型复杂度低(如简单线性回归模型)相关。
2. 方差和偏差的区别
维度 | 方差(Variance) | 偏差(Bias) |
---|---|---|
衡量对象 | 模型对训练数据变化的敏感程度 | 模型预测结果与真实值之间的偏离程度 |
根本原因 | 模型过于复杂,拟合了训练数据中的噪声(过拟合) | 模型过于简单,无法捕捉数据的内在规律(欠拟合) |
表现特征 | 对不同训练集的预测结果波动大 | 训练集和测试集上的误差都较大 |
优化方向 | 降低模型复杂度或增加正则化 | 提高模型复杂度或优化特征 |
3. 方差和偏差的联系
- 偏差-方差权衡(Bias-Variance Tradeoff): 偏差和方差通常是此消彼长的关系:
- 提高模型复杂度可以降低偏差,但会增加方差(如深度神经网络可能过拟合)。
- 降低模型复杂度可以减少方差,但可能增加偏差(如简单线性回归可能欠拟合)。
- 目标:找到偏差和方差之间的平衡点,使模型在训练数据和测试数据上都能表现良好。
图示效果
-
左图(高偏差,欠拟合):
- 红色线几乎是一个常数模型,无法捕捉数据的非线性规律。
- 这是一个典型的高偏差模型,欠拟合了训练数据。
-
中图(平衡状态):
- 橙色线很好地拟合了数据,同时与真实函数(绿色虚线)非常接近。
- 偏差和方差达到了良好的平衡状态,是理想的模型。
-
右图(高方差,过拟合):
- 紫色线过于复杂,准确地通过了每个样本点。
- 虽然在训练集上表现很好,但它捕捉了数据中的噪声,可能无法泛化到新数据。
六、对于样本集S={(2,1)(5,4),(3,3),(7,5),(8,9)},模型F(x)=4x+1,试求模型F(X)在S上的整体误差。
这其实就是一个简单的数学问题,我们使用均方差公式
前后更清晰
其中:
- N是样本数量。
- 是样本的输入值。
- 是样本的真实输出值。
- 是模型的预测输出值。
-
样本集 S:
- 输入
- 输出
-
模型预测值 F(x): 根据 F(x) = 4x + 1计算每个样本的预测值:
-
误差计算: 计算每个样本的平方误差:
误差- 对(2,1):(9 - 1)^2 = 64
- 对(5,4):(21 - 4)^2 = 289
- 对(3,3):(13 - 3)^2 = 100
- 对(7,5):(29 - 5)^2 = 576
- 对(8,9):(33 - 9)^2 = 576
-
求整体误差 : 将所有平方误差求和后取平均值:
前后更清晰:
七、机器学习的发展历程有哪些阶段?试说明每个阶段机器学习方法的基本理论。(不怎么考,记住这几个阶段差不多就ok了)
1. 早期阶段(1950s-1980s):符号主义和基于知识的系统
特点:
- 主要依赖于明确编写的规则和逻辑推理。
- 强调通过专家知识来解决问题。
方法与理论:
- 符号主义:
- 使用逻辑和符号推理模拟人类智能。
- 例如:决策树、生产规则系统。
- 专家系统:
- 将领域专家的知识编码为规则进行推理。
- 优势:解释性强。
- 局限:需要大量人工干预,难以应对复杂问题。
2. 统计学习阶段(1980s-1990s):从符号主义到数据驱动
特点:
- 强调基于数据的学习,理论上受统计学和概率论驱动。
- 逐步摆脱对手工规则的依赖。
方法与理论:
- 线性模型:如线性回归、逻辑回归,解决连续值预测和分类问题。
- 决策树:使用基于数据的分裂规则构建分类或回归模型。
- 支持向量机(SVM):以统计学习理论为基础,使用超平面对数据进行分类。
- 概率模型:例如:朴素贝叶斯分类器,通过概率分布建模数据。
3. 机器学习阶段(1990s-2010s):以数据为核心
特点:
- 更关注算法如何从大量数据中自动提取规律。
- 模型更复杂,应用场景更广泛。
方法与理论:
- 神经网络的回归(初期浅层网络):受生物神经元启发,构建单层或多层网络进行学习。
- 集成学习:如随机森林和梯度提升树,通过组合多个弱学习器提高模型性能。
- 无监督学习:例如K均值、主成分分析(PCA),用于降维和聚类任务。
- 强化学习:提出基于奖励和惩罚的学习方法,用于控制问题(如机器人导航)。
4. 深度学习阶段(2010s-至今):以深层网络为核心
特点:
- 得益于计算能力的提升和大数据的兴起,深度学习迅速发展。
- 模型表现超越传统方法,尤其在图像、语音和自然语言处理等领域。
方法与理论:
- 深度神经网络(DNN):多层网络,能够提取数据的复杂特征。
- 卷积神经网络(CNN):用于图像处理,擅长提取空间特征。
- 循环神经网络(RNN):用于处理序列数据(如时间序列、文本)。
- Transformer模型:应用于自然语言处理任务,奠定了当前大模型(如GPT)的基础。
- 生成对抗网络(GAN):通过生成器和判别器对抗训练,用于图像生成等任务。
5. 当前阶段(未来方向):大模型与智能自治
特点:
- 强调大规模预训练模型和多模态学习。
- 目标是实现更强的泛化能力和自适应能力。
方法与理论:
- 预训练模型:如GPT、BERT,基于大规模语料训练,具有通用性。
- 多模态学习:跨越文本、图像、语音的综合学习。
- 强化学习+深度学习:AlphaGo等结合强化学习和深度学习,实现策略优化。
- 联邦学习:注重数据隐私保护,多方协作训练模型。
附带时序图代码(可在plantuml软件中自行查看):
@startuml
title 机器学习发展历程时序图
skinparam titleFontSize 20
skinparam sequence {
ParticipantFontSize 14
ActorFontSize 14
}
participant "1950s-1980s\n符号主义和基于知识的系统" as Early
participant "1980s-1990s\n统计学习阶段" as Statistics
participant "1990s-2010s\n传统机器学习阶段" as ML
participant "2010s-至今\n深度学习阶段" as DL
participant "未来方向\n大模型与智能自治" as Future
Early -> Statistics: 符号逻辑 -> 概率统计
Statistics -> ML: 提出SVM、决策树
ML -> DL: 使用神经网络、集成学习
DL -> Future: 发展深度学习、大规模预训练模型
note over Early: 专家系统、符号推理\n以规则为主
note over Statistics: 统计学为基础\n线性模型、概率方法
note over ML: 数据驱动学习\n强调泛化能力
note over DL: 大数据与计算能力驱动\nCNN、RNN、Transformer
note over Future: 多模态学习、强化学习\n隐私保护与联邦学习
@enduml
八、如何训练一个感知机?该训练过程的理论依据是什么?
1. 感知机简介
感知机是机器学习中的一种线性分类模型,适用于将线性可分的数据划分为两个类别。它的基本思想是通过调整模型参数(权重和偏置),找到一个超平面将数据分隔开。
首先先补充个数学知识:sign函数
图像如下:
2. 感知机训练过程
感知机的训练过程可以分为以下几个步骤:
(1) 初始化参数
- 初始化权重向量和偏置 b 为随机值或 0。
- 学习率 设置为一个小的正数,用于控制权重更新的幅度。
(2) 输入数据与预测
- 对每个样本点,计算感知机的输出:
- y′ 是预测结果。
- 如果(即分类错误),说明当前超平面需要调整。
(3) 参数更新
- 根据预测错误调整模型参数:
- y是样本的真实类别标签,取值为 +1或 −1。
- 这个更新规则的直觉是:让分类错误的样本“推动”超平面朝正确方向调整。
(4) 循环训练
- 重复步骤 (2) 和 (3),直到满足以下条件之一:
- 所有样本都被正确分类(达到收敛)。
- 达到最大迭代次数(避免死循环)。
3. 理论依据
感知机的训练过程基于以下理论依据:
(1) 感知机收敛定理
- 如果训练数据是线性可分的,则感知机算法在有限次迭代后一定会收敛。
- 证明思路:
- 随着每次更新,权重向量朝着正确分类的方向调整。
- 因为数据是线性可分的,超平面最终可以完全分开正负样本。
(2) 超平面调整规则
- 参数更新的公式来源于最大化每个样本点到分界超平面的间隔。
- 核心思想是通过梯度下降法优化模型,逐渐找到最优超平面。
4. 感知机训练的核心思想
- 逐步逼近正确分类:每次错误预测时,调整权重使超平面更接近正确分类。
- 数据线性可分的假设:感知机只能保证对线性可分数据收敛;若数据不可线性分开,可能进入死循环或震荡。
5. 感知机的训练伪代码
初始化权重 w 和偏置 b 为 0
设置学习率 η
# 重复训练
for 循环直到收敛:
for 样本 (x_i, y_i) in 数据集中:
y_pred = sign(w·x_i + b)
if y_pred ≠ y_i: # 如果分类错误
w = w + η * y_i * x_i
b = b + η * y_i
6. 上面很难懂吧?看个简单的例子大家就明白了
假设样本数据为,感知机训练的过程:
- 初始化权重,偏置,假设(当然一般情况不可能这么大)
- 对第一个样本 ,计算:
- (分类错误)。
- 更新,。
- 对第二个样本,计算:
- (分类错误)。
- 更新,。
- 对第二个样本,计算:(分类正确)。
为方便大家理解,这里假设还要更新:按照更新公式,那就是用w=[1,4]+1*1*[2,3]
- 对第二个样本,计算:(分类正确)。
直到所有样本正确分类----->得到
给出代码,可以自己跑一下:
# Re-import necessary libraries after reset
import numpy as np
# Sample data points (features and labels)
X = np.array([[2, 3], [1, -1]])
y = np.array([1, -1]) # Labels: +1 or -1
# Initialize parameters
w = np.zeros(X.shape[1]) # Weights: [0, 0]
b = 0 # Bias: 0
eta = 1 # Learning rate
max_iter = 10 # Maximum number of iterations
# Training process
print("Initial weights:", w)
print("Initial bias:", b)
for epoch in range(max_iter):
print(f"\nEpoch {epoch + 1}")
for i in range(len(X)):
# Predict using current weights and bias
prediction = np.sign(np.dot(w, X[i]) + b)
# If prediction is incorrect, update weights and bias
if prediction != y[i]:
w += eta * y[i] * X[i] # Update weights
b += eta * y[i] # Update bias
print(f"Sample {X[i]} misclassified. Updated weights: {w}, bias: {b}")
else:
print(f"Sample {X[i]} correctly classified.")
# Check if all samples are correctly classified
predictions = np.sign(np.dot(X, w) + b)
if np.array_equal(predictions, y):
print("\nAll samples correctly classified. Training complete.")
break
# Final weights and bias
print("\nFinal weights:", w)
print("Final bias:", b)
跑出来应该是下面那样:
7. 感知机的局限性
- 仅适用于线性可分数据:对于线性不可分数据,感知机可能无法收敛。
- 无法解决复杂问题:感知机无法处理非线性分类问题。
九、简述专家系统的组成部分,并简要说明构造一个专家系统的过程。
1. 专家系统的组成部分
专家系统是一种基于规则的人工智能系统,其核心目的是模拟专家在某一领域的推理和决策能力。专家系统的主要组成部分包括以下几个模块:
(1) 知识库(Knowledge Base)
- 定义:存储领域内的专业知识和规则,是专家系统的核心部分。
- 组成:
- 事实:描述系统已知的基本信息。
- 规则:描述如何利用事实推导新的结论。
- 来源:
- 来自领域专家的经验和知识。
- 表示方法:常用生产规则(如“如果……那么……”)。
(2) 推理机(Inference Engine)
- 定义:利用知识库中的规则,对输入的信息进行逻辑推理,从而得出结论或建议。
- 特点:
- 能模拟专家的推理过程。
- 常见推理方法:
- 前向推理(数据驱动):从已知事实出发,应用规则推导出结论。
- 后向推理(目标驱动):从目标出发,倒推需要满足的条件。
(3) 用户接口(User Interface)
- 定义:系统与用户之间的交互界面,用于输入问题和输出推理结果。
- 作用:
- 让用户能方便地输入问题或观察推理过程。
- 提供解释功能,说明系统如何得出结论。
(4) 数据库(Working Memory)
- 定义:存储用户输入的初始信息和推理过程中生成的中间结果。
- 作用:
- 临时保存推理过程中的信息。
- 随推理过程动态更新。
(5) 知识获取模块(Knowledge Acquisition Module)
- 定义:从专家或其他数据源中获取知识并将其录入知识库的工具。
- 作用:
- 将领域专家的知识结构化为系统可用的形式。
- 解决知识库更新和维护问题。
2. 构造一个专家系统的过程
构造一个专家系统通常需要以下步骤:
(1) 定义问题领域
- 确定系统要解决的具体问题领域(如医疗诊断、设备故障检测)。
- 目标是明确系统的功能范围和性能要求。
(2) 知识获取
- 步骤:
- 与领域专家交互,收集知识。
- 从文档、数据库中提取信息。
- 难点:将复杂的专家经验结构化为系统可理解的规则。
(3) 构建知识库
- 步骤:
- 表示知识:将知识转换为生产规则、框架、语义网络等。
- 验证知识:确保知识的正确性和一致性。
- 工具:常用知识表示语言如 Prolog。
(4) 开发推理机
- 选择适合的问题推理方法(前向推理或后向推理)。
- 实现推理算法,确保推理过程高效、准确。
(5) 设计用户界面
- 提供友好的交互界面,让用户能方便输入问题并获取答案。
- 加入解释模块,帮助用户理解推理过程和结论。
(6) 测试与优化
- 测试:通过一系列测试用例验证系统的正确性。
- 优化:不断调整规则或推理策略,改进性能。
- 维护:根据领域变化更新知识库。
3. 示例:构造医疗诊断专家系统
(1) 定义问题领域
- 问题:帮助医生诊断常见疾病。
- 目标:基于症状推荐可能的疾病和治疗方案。
(2) 知识获取
- 与医生合作,收集常见疾病的症状和诊断规则。
- 例如:规则可以是“如果发热且咳嗽,则可能是流感”。
(3) 构建知识库
- 使用生产规则表示知识:
- 规则:如果症状=发热 且 症状=咳嗽,则疾病=流感。
- 规则:如果症状=头痛 且 症状=恶心,则疾病=偏头痛。
(4) 开发推理机
- 选择前向推理(症状 -> 疾病):
- 用户输入症状。
- 系统根据知识库逐步推导可能的疾病。
(5) 用户界面
- 界面设计为:
- 症状输入框。
- 推理结果输出框。
- 解释模块说明推理过程。
(6) 测试与优化
- 使用历史病例测试系统的准确性。
- 不断扩充知识库,优化推理策略。
简单的结构图:
附plantuml代码:
@startuml
title 专家系统架构图
package "专家系统" {
[用户接口] -down- [推理机]
[推理机] --> [知识库]
[推理机] --> [数据库]
[知识获取模块] --> [知识库]
}
package "核心模块" {
[知识库] --> 存储规则和事实
[推理机] --> 根据规则推导结论
[数据库] --> 存储临时信息
}
package "辅助模块" {
[用户接口] --> 用户与系统交互
[知识获取模块] --> 从专家获取知识
}
@enduml
十、什么是特征空间?什么是特征向量?
- 特征空间:多维空间,特征是每个维度,样本分布在这个空间中。
- 特征向量:特征空间中的点,用向量形式表示一个样本的所有特征值。
1. 特征空间的定义
(1) 什么是特征空间?
特征空间是指由特征组成的多维空间,每个维度表示一个特征,机器学习模型利用特征空间中的数据点来学习规律并进行预测。
-
理解:
- 在机器学习中,特征是描述样本的重要信息,例如图片的像素值、商品的价格、用户的行为等。
- 如果每个样本用 n个特征来描述,那么特征空间就是一个 n 维的空间,每个样本是空间中的一个点。
-
示例:
- 假设一个数据集有两个特征 和 :
- :商品价格。
- :商品重量。
- 特征空间是一个二维平面,每个商品在这个平面中是一个点。
- 假设一个数据集有两个特征 和 :
(2) 特征空间的意义
- 特征空间是数据可视化、建模的基础:
- 数据点在特征空间的分布决定了模型能否找到规律(如分类边界或回归曲线)。
- 通过特征变换(如降维),可以简化特征空间,提升模型效率。
2. 特征向量的定义
(1) 什么是特征向量?
特征向量是表示样本的一个向量,包含了该样本的所有特征值。
-
理解:
- 一个样本的特征向量可以看作特征空间中的一个点。
- 如果样本有 n个特征,则特征向量是一个 n 维向量:
- 每个 表示第 i 个特征的值。
-
示例:
- 对于一个学生成绩的特征向量:
- :数学成绩。
- :语文成绩。
- :英语成绩。
- 特征向量表示了这个学生的所有成绩(特征信息)。
- 对于一个学生成绩的特征向量:
(2) 特征向量的意义
- 特征向量是模型输入的核心:
- 模型通过处理特征向量,学习特征与目标值之间的关系。
- 特征向量的维度和质量直接影响模型的性能。
3. 特征空间与特征向量的关系
- 特征空间:
- 是多维空间,每个维度代表一个特征。
- 所有样本的特征值构成的空间。
- 特征向量:
- 是特征空间中的一个点或向量。
- 表示一个具体样本在特征空间中的位置。
十一、机器学习中为什么要进行特征提取?卷积神经网络的特征自动提取有何特点?
简而言之:
-
特征提取的必要性:是机器学习模型的基础,决定了模型对数据的理解程度。手工特征提取适用于简单问题,而深度学习特别是 CNN 能自动提取复杂数据的多层次特征。
-
CNN特征提取的特点:端到端训练,权重共享和局部感受也使其高效处理高维数据,提取的特征具有多层次表达能力,适应性和鲁棒性强。
1. 为什么要进行特征提取?
(1) 什么是特征提取?
特征提取是将原始数据转化为能够更好地被机器学习模型理解和处理的特征的过程。这些特征应能够有效地代表原始数据的本质信息。
(2) 特征提取的重要性
-
降低数据复杂度:
- 原始数据通常维度高且冗余信息多,通过提取特征可以减少维度,降低计算开销。
- 例如,从一张图像中提取边缘、颜色等特征,而不是处理所有像素点。
-
提高模型性能:
- 优质的特征能使模型更准确地捕捉数据的规律。
- 例如,从文本中提取关键词比处理整个文档更有助于分类任务。
-
增强泛化能力:
- 提取的特征更具鲁棒性,有助于模型在未知数据上表现更好。
- 特征提取能过滤掉噪声等无关信息。
-
适应算法需求:某些机器学习算法对输入数据有特定要求(如需要数值型或归一化数据),特征提取能 够满足这些要求。
(3) 手工特征提取的挑战
- 依赖领域知识:
- 特征提取需要深入了解数据和问题背景。
- 例如,在图像处理任务中需要设计手工提取的边缘、纹理等特征。
- 难以应对复杂数据:高维和非线性数据(如图像和语音)难以通过手工方法提取有效特征。
2. 卷积神经网络(CNN)的特征自动提取
(1) CNN的特征提取特点
-
自动提取特征:
- CNN能够从原始数据(如图像像素)中自动提取特征,而不需要手工设计。
- 特征提取通过网络的卷积层完成,每一层学习到不同层次的特征。
-
多层次特征表达:
- 低层特征:如边缘、纹理等简单模式,由靠近输入的卷积层提取。
- 高层特征:如对象的形状、语义信息等,由靠近输出的卷积层提取。
-
权重共享:
- 卷积操作在空间上共享权重,使得特征提取对位移具有鲁棒性(例如物体在图像中的位置变化)。
- 权重共享还显著降低了模型参数量,提高计算效率。
-
空间不变性:
- 通过池化(Pooling)操作(如最大池化),CNN能提取具有平移不变性的特征。
- 例如,物体的具体位置变化不会显著影响模型的表现。
-
端到端学习:CNN通过反向传播自动调整卷积核的参数,从而学习最适合当前任务的特征表示。
(2) CNN特征提取的优点
-
无需人工干预:
- 省去了传统机器学习中复杂的手工特征工程步骤。
- 在复杂任务(如图像分类、目标检测)中表现尤为出色。
-
高效处理高维数据:
- CNN通过局部感受野的设计,只关注局部区域,避免处理整个输入的高维信息。
- 这种机制显著提升了计算效率。
-
泛化性强:CNN提取的特征可以迁移到相似任务,例如预训练模型在新数据集上微调。
3. 特征提取的对比:传统 vs CNN 自动提取
比较维度 | 传统特征提取 | CNN 特征提取 |
---|---|---|
提取方式 | 依赖人工设计(基于领域知识) | 自动从数据中学习 |
适用场景 | 简单数据(如表格、低维数据) | 高维数据(如图像、语音、文本) |
提取层次 | 单一层次(如手工设计的边缘特征) | 多层次,逐步学习低层到高层特征 |
鲁棒性 | 依赖人工设计的有效性,鲁棒性较差 | 自动适应任务,具有较强的鲁棒性 |
扩展能力 | 难以迁移到新任务 | 可迁移(如预训练模型) |
十二、结合具体实例来说明正确率、错误率和ROC曲线之间区别与联系。
1. 正确率、错误率、ROC曲线的定义
(1) 正确率(Accuracy)
- 定义:正确分类的样本数量占总样本数量的比例。
- 描述:
- 衡量模型总体的预测正确程度。
- 适用于数据集类别分布均衡的场景。
(2) 错误率(Error Rate)
- 定义:错误分类的样本数量占总样本数量的比例。
- 描述:
- 衡量模型的预测错误程度。
- 错误率越高,模型性能越差。
(3) ROC曲线(Receiver Operating Characteristic Curve)
- 定义:以为横轴,**真正率(TPR)**为纵轴绘制的曲线。
- 真正率(TPR):模型将正类预测为正类的比例,称为召回率。
- 假正率(FPR):模型将负类预测为正类的比例。
- 描述:
- ROC 曲线是通过调整模型的判定阈值(Threshold)计算得出的,反映了模型在不同阈值下的分类性能。
- 曲线下面积(AUC)是衡量模型总体分类能力的重要指标。
2. 具体实例
假设有一个二分类问题,任务是检测某种疾病(正类):
- 数据集:共 100 个样本,正类 20 个,负类 80 个。
- 分类器输出:根据概率 ,设定一个阈值(如 0.5)进行分类。
分类结果混淆矩阵:
实际类别\预测类别 | 正类(1) | 负类(0) |
---|---|---|
正类(1) | 15(TP) | 5(FN) |
负类(0) | 10(FP) | 70(TN) |
计算指标:
-
正确率:
模型预测正确率为 85%。 -
错误率:
模型错误率为 15%。 -
ROC曲线:
- 通过调整分类阈值(如从 0.1 到 0.9),可以得到多个和 的组合点,从而绘制 ROC 曲线。
- 例如:
- 阈值 0.1:所有样本被预测为正类,。
- 阈值 0.9:所有样本被预测为负类,。
3. 正确率、错误率与 ROC曲线的联系与区别
(1) 联系
- 来源一致:
- 正确率和错误率基于混淆矩阵计算,而 ROC 曲线也基于混淆矩阵的 TPR 和 FPR。
- 衡量模型性能:
- 三者都用于评估分类器性能。
- ROC 曲线通过全面评估不同阈值下的性能,间接包含正确率和错误率的信息。
(2) 区别
维度 | 正确率 | 错误率 | ROC曲线 |
---|---|---|---|
关注点 | 总体预测的准确性 | 总体预测的错误程度 | 不同阈值下的分类性能 |
计算复杂度 | 简单 | 简单 | 需要多次调整阈值,较复杂 |
适用场景 | 类别分布均衡时较可靠 | 类别分布均衡时较可靠 | 适用于类别分布不均衡,且关注正负类区分性能 |
抗不平衡性 | 对类别不平衡敏感 | 对类别不平衡敏感 | 不敏感,综合评估正负类 |
表示方式 | 单一数值 | 单一数值 | 曲线图,AUC 可量化性能 |
4. 实践建议
- 类别均衡时:可以使用正确率和错误率作为主要评估指标。
- 类别不平衡时:正确率可能掩盖模型的偏差,优先使用 ROC 曲线及 AUC 评估模型性能。
- 综合分析:如果任务对正类和负类有不同的错误代价,ROC 曲线提供了更直观的性能对比。
图像示例
- 蓝色曲线:表示模型在不同阈值下的分类性能。
- AUC (Area Under Curve):曲线下面积,衡量模型的分类能力。AUC 的值越接近 1,模型性能越好。
- 灰色虚线:随机猜测的分类器(AUC = 0.5)。
十三、简要介绍模型性能度量中的真正例率、假正例率、查准率、查全率的概念,并讨论它们之间的区别与联系。
1. 基本概念
(1) 真正例率(True Positive Rate, TPR)
- 定义:又称为召回率(Recall),表示所有实际为正类的样本中,被正确预测为正类的比例。
- 解释:
- TP 是真正例,表示实际为正类且预测为正类的样本数。
- FN 是假负例,表示实际为正类但预测为负类的样本数。
- 意义:TPR 反映了模型对正类样本的识别能力,值越大越好。
(2) 假正例率(False Positive Rate, FPR)
- 定义:表示所有实际为负类的样本中,被错误预测为正类的比例。
- 解释:
- FP 是假正例,表示实际为负类但预测为正类的样本数。
- TN 是真负例,表示实际为负类且预测为负类的样本数。
- 意义:FPR 反映了模型对负类样本的误识别程度,值越小越好。
(3) 查准率(Precision)
- 定义:表示所有预测为正类的样本中,实际为正类的比例。
- 解释:
- 查准率衡量了模型的预测结果是否准确。
- 查准率高,说明模型的正类预测可信度高。
(4) 查全率(Recall)
- 定义:查全率是真正例率(TPR)的别称,表示实际为正类的样本中被正确预测的比例。
- 意义:查全率高,说明模型能够覆盖更多正类样本。
2. 区别与联系
(1) 区别
指标 | 计算范围 | 衡量对象 | 意义 |
---|---|---|---|
TPR | 正类样本 | 正类识别能力 | 反映模型对正类样本的敏感程度 |
FPR | 负类样本 | 负类误识别程度 | 反映模型对负类样本的干扰程度 |
Precision | 预测结果中的正类样本 | 预测的正类准确性 | 衡量正类预测是否准确 |
Recall | 正类样本 | 正类覆盖能力 | 衡量模型对正类样本的覆盖范围 |
(2) 联系
-
Precision 和 Recall 的权衡:
- 查准率(Precision)高时,模型更关注减少错误预测的正类数量(降低 FP)。
- 查全率(Recall)高时,模型更关注识别出所有正类样本(减少 FN)。
- 两者之间通常存在一个权衡,且可以通过 F1-score 进行综合评价:
-
TPR 和 FPR 的关系:
- ROC 曲线通过 TPR 和 FPR 评价模型性能。
- TPR 越高越好,代表模型对正类的识别能力强。
- FPR 越低越好,代表模型对负类的误识别少。
-
共同点:
- 以上指标都基于混淆矩阵 TP,FP,TN,FN 计算。
- 这些指标反映了模型的不同方面性能,需要根据具体任务需求选择合适指标。
3. 示例
假设一个二分类模型的混淆矩阵如下:
实际/预测 | 正类(1) | 负类(0) |
---|---|---|
正类(1) | 90 (TP) | 10 (FN) |
负类(0) | 30 (FP) | 70 (TN) |
计算:
-
真正例率(TPR):
-
假正例率(FPR):
-
查准率(Precision):
-
查全率(Recall):
4. 实际意义与应用建议
-
任务目标不同,关注指标不同:
- 如果关注正类覆盖(如疾病检测),优先提高查全率(Recall)。
- 如果关注预测准确性(如垃圾邮件过滤),优先提高查准率(Precision)。
-
综合考虑模型性能:
- ROC 曲线通过 TPR 和 FPR 提供整体性能评价。
- Precision 和 Recall 可以通过 F1-score 平衡使用。
-
动态调整:
通过调整分类阈值(如 0.5),模型可以在 Precision 和 Recall 之间找到合适的平衡。
十四、试根据表中数据确定该基因是否与该疾病存在某种联系。
要确定某基因X与某种疾病y之间是否存在联系,现对260人进行检查,得到体内是否含有该基因与是否患病之间的关系如表1-11所示,若X2统计量的阈值设为7.2,X=0表示体内不含该基因,X=1表示体内含有该基因,y=-1表示不患病,y=+1表示患病。
为了判断基因 X 与疾病 Y 是否存在联系,我们可以使用 卡方检验(Chi-Square Test) 来分析独立性。
卡方检验公式
卡方统计量 的计算公式为:
- O是观测值(表中的数据)。
- E是期望值,根据独立性假设计算:
步骤
1. 确定观测值(O)
从表格中提取的观测值为:
X | Y=−1 | Y=+1 | 合计 |
---|---|---|---|
0 | O_{11} = 99 | O_{12} = 53 | 152 |
1 | O_{21} = 41 | O_{22} = 67 | 108 |
合计 | 140 | 120 | 260 |
2. 计算期望值(EEE)
期望值计算公式为:
计算期望值矩阵:
期望值表为:
XXX | Y=−1Y = -1Y=−1 | Y=+1Y = +1Y=+1 | 合计 |
---|---|---|---|
000 | 81.54 | 70.46 | 152 |
111 | 58.46 | 49.54 | 108 |
合计 | 140 | 120 | 260 |
3. 计算统计量
卡方统计量的计算公式为:
逐项计算:
- 对 X=0,Y=−1X = 0:
- 对 X=0,Y=+1X = 0:
- 对 X=1,Y=−1X = 1:
- 对 X=1,Y=+1X = 1:
将所有结果相加:
4. 与阈值比较
题目中阈值为 7.2,由于,我们拒绝独立性假设。
结论
基因 X 与疾病 Y存在显著联系,因为卡方检验结果表明其相关性显著。
十五、数据集D中包含100个样本,其中正例50个,反例50个,若使用自助法进行模型评估,则理论上训练集和测试集中各包含多少个样本?
自助法(Bootstrap)是一种常用的重采样方法,用于模型评估和统计推断。在使用自助法进行模型评估时,样本是有放回地从数据集中随机采样。
假设数据集 D 包含 N=100 个样本(正例 50 个,反例 50 个),自助法的特点是每次从 D 中随机选择一个样本,将其加入训练集,然后将样本放回。重复采样 N 次,得到的训练集大小也是 N=100 个样本。
由于是有放回地采样,可能某些样本被多次选中,而另一些样本则可能没有被选中。
1. 训练集和测试集样本数量的理论计算
(1) 训练集中样本数量
- 训练集的样本数量固定为 N=100(因为采样了 100 次)。
(2) 测试集中样本数量
- 每个样本未被选中的概率是:
- 采样 N=100次后,一个样本从未被选中的概率是:(高数极限:第二重极限)
- 因此,约有 36.79% 的样本未出现在训练集中,可以用于测试集。
(3) 测试集样本数量
- 测试集样本数为:
2. 总结
- 训练集样本数:100 个(包括重复样本)。
- 测试集样本数:约 37 个(未被采样的样本)。
- 重叠关系:训练集中会有重复样本,而测试集与训练集不重叠的部分约占 36.79%。