【DL】神经网络与机器学习基础知识介绍(一)

原博客:https://mengwoods.github.io/post/dl/009-dl-fundamental/

文章目录

  • 基本通用概念
  • 梯度下降算法
  • 数据工程
  • 训练技术
  • 偏差与方差
  • 防止过拟合
  • 评估指标
  • 决策树

基本通用概念

  • 机器学习的类型:
    • 监督学习(Supervised Learning):分类,回归
    • 无监督学习(Unsupervised Learning):聚类,降维
    • 强化学习(Reinforcement Learning)
  • 介绍监督学习中的常用算法。
    • 线性回归(Linear Regression):预测连续目标变量,假设输入特征和目标变量之间存在线性关系。
    • 逻辑回归(Logistic Regression):用于二分类任务。使用逻辑函数将输出限制在0到1之间。
    • 决策树(Decision Tree):用于分类和回归任务。根据输入特征的值将数据分成子集,使用如Gini不纯度或熵作为分类标准,回归使用MSE。
    • 随机森林(Random Forest):一种集成方法,使用多个决策树来提高预测性能。每棵树在数据的随机子集上训练,最终预测通过回归的平均结果或分类的多数投票得出。
    • 支持向量机(Support Vector Machine,SVM):用于分类和回归任务。在特征空间中找到最佳分隔超平面,使用不同的核函数(线性,多项式,RBF)处理非线性分类。
    • k近邻算法(K-Nearest Neighbors,KNN):用于分类和回归。
    • 朴素贝叶斯(Naive Bayes):基于贝叶斯定理的概率分类器。
  • 介绍无监督学习中的算法。
    • K-Means聚类(K-Means Clustering):根据到聚类中心的距离将数据分成k个聚类。
    • 层次聚类(Hierarchical Clustering)
    • 主成分分析(Principal Component Analysis,PCA):降维,将数据转换到新的坐标系,使得方差最大化。

梯度下降算法

  • 介绍梯度下降(Gradient Descent)。

    梯度下降是一种优化算法,用于最小化机器学习模型的目标函数(Objective Function)(成本/损失函数)。它是一个迭代过程,通过调整参数(权重和偏差)来减少预测误差。它被用于线性回归、逻辑回归、神经网络、SVM等机器学习算法中。

  • 什么是目标函数(Objective Function)

    在机器学习领域,目标函数、成本/损失函数是可互换使用的,衡量预测值与实际值之间的误差。

    例子:

    • 均方误差(Mean Squared Error,MSE) 用于回归问题: J = 1 n ∑ ( y i − y ^ i ) 2 J=\frac{1}{n}\sum(y_i - \hat{y}_i)^2 J=n1(yiy^i)2
    • 交叉熵损失(Cross-Entropy Loss) 用于分类问题: J = − 1 n ∑ [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] J=-\frac{1}{n}\sum[y_i \log{(\hat{y}_i)} + (1-y_i)\log(1-\hat{y}_i)] J=n1[yilog(y^i)+(1yi)log(1y^i)]
    • Hinge损失(Hinge Loss) 用于SVM: J = 1 n ∑ max ⁡ ( 0 , 1 − y i ∗ y ^ i ) J = \frac{1}{n}\sum \max(0, 1-y_i*\hat{y}_i) J=n1max(0,1yiy^i)
  • 什么是梯度(Gradient)

    梯度是成本函数对每个参数的偏导数。它指向成本函数上升最快的方向。

  • 介绍梯度下降算法的步骤。

    • 用随机值初始化权重和偏差
    • 计算成本函数对每个参数的梯度
    • 根据梯度的相反方向调整参数
  • 写出回归问题中梯度下降算法的公式。

    • 定义成本函数: J ( θ ) = 1 2 m ∑ ( h θ ( x ( i ) − y ( i ) ) ) 2 J(\theta)=\frac{1}{2m}\sum(h_\theta(x^{(i)}-y^{(i)}))^2 J(θ)=2m1(hθ(x(i)y(i)))2
    • 计算梯度: ∂ J ( θ ) ∂ θ j = ∂ J ( θ ) ∂ θ j = 1 m ∑ ( h θ ( x ( i ) − y ( i ) ) ) x j ( i ) \frac{\partial J(\theta)}{\partial \theta_j} = \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{m}\sum (h_\theta(x^{(i)}-y^{(i)}))x^{(i)}_j θjJ(θ)=θjJ(θ)=m1(hθ(x(i)y(i)))xj(i)
    • 更新参数: θ j : = θ j − α ∂ J ( θ ) ∂ θ j \theta_j := \theta_j-\alpha \frac{\partial J(\theta)}{\partial \theta_j} θj:=θjαθjJ(θ)

数据工程

  • 什么是数据工程(Feature Engineering)

    • 数据工程指的是通过直觉设计新特征,通过转换或组合原始特征,为机器学习模型预处理数据,以便更好地使用。
  • 介绍一些数据工程方法。

    • 数据清洗(Data Cleaning):识别和纠正错误或不一致。
    • 数据集成(Data Integration):结合来自多个来源的数据。
    • 数据归一化(Data Normalization):将数值数据缩放到标准范围,以确保特征在模型性能中贡献均等。方法包括均值归一化和z-score归一化。
  • 列出归一化公式。

    • 均值归一化: x i : = x i − μ i max ⁡ − min ⁡ x_i:=\dfrac{x_i - \mu_i}{\max-\min} xi:=maxminxiμi
    • z-score归一化: x i : = x i − μ i σ i x_i:=\dfrac{x_i - \mu_i}{\sigma_i} xi:=σixiμi σ \sigma σ是标准差。

训练技术

  • 什么是交叉验证(Cross-Validation)
    • 评估模型性能的统计方法。将数据分成子集,在某些子集上训练模型,同时在剩余子集上验证。主要目的是在独立数据集上进行估计,帮助防止过拟合。
  • 什么是K折交叉验证(K-Fold Cross-Validation)
    • 将数据集分成 k k k个子集,训练模型 k k k次,每次使用不同的折作为测试集,剩余的 k − 1 k-1 k1折作为训练集。平均 k k k次评估结果。
  • 介绍一个常见的模型训练流程。
    • 将数据集分成训练集和测试集。
    • 在训练集上应用k折交叉验证。
    • 在整个训练集上训练最终模型。
    • 在测试集上评估最终模型。

在训练期间使用交叉验证数据评估模型,并使用测试集估计泛化误差。

偏差与方差

  • 什么是模型的偏差(Bias)方差(Variance)
    • 偏差是由于模型过于简单/欠拟合造成的误差。
    • 方差是由于对训练集的小波动敏感导致的误差。模型过拟合。
    • 欠拟合导致高偏差,过拟合导致高方差。
  • 如何解决过拟合(Overfitting)(高方差)。
    • 收集更多的训练数据。
    • 特征选择,选择最相关的特征。
    • 使用所有特征且数据不足导致过拟合。
    • 在训练期间使用正则化项并增加其在成本函数中的lambda。
  • 如何解决欠拟合(Underfitting)(高偏差)。
    • 获取额外的特征。
    • 尝试为回归任务添加多项式特征。
    • 尝试减少成本项的lambda。

防止过拟合

大型神经网络是低偏差机器,能够很好地拟合复杂函数。因此在训练神经网络模型时,我们通常面临过拟合问题而不是欠拟合问题。

  • 什么是正则化(Regularization)
    • 正则化用于防止过拟合并提高模型的泛化能力。
    • 正则化是在网络权重上添加惩罚项,鼓励模型保持权重较小。
    • 一个带有正则化项的成本函数: J ( w , b ) = 1 2 m ∑ ( f ( x ) − y ) 2 + λ 2 m ∑ w 2 , λ > 0 J(w,b)=\dfrac{1}{2m}\sum(f(x)-y)^2 + \dfrac{\lambda}{2m}\sum w^2, \lambda > 0 J(w,b)=2m1(f(x)y)2+2mλw2,λ>0

只要适当选择正则化,大型神经网络通常会比小型神经网络表现得更好。

  • 什么是dropout

    • 在训练期间随机选择一些神经元忽略。对这些神经元不应用权重更新。它有助于防止模型过度依赖任何特定神经元,从而提高泛化能力。
  • 介绍其他防止模型过拟合和增加泛化能力的技术。

    • 数据增强(Data Augmentation):通过随机旋转、平移、翻转和缩放从现有数据创建新的训练样本。
    • 提前停止(Early Stopping):监控模型在验证集上的性能,当性能开始恶化时停止训练。
    • 批量归一化(Batch Normalization):归一化每一层的输入,使输出激活值的均值接近0,标准差接近1。它有助于稳定学习过程并减少对初始权重的敏感性。

评估指标

  • 介绍分类的评估指标。

    • 准确率(Accuracy):正确分类实例占总实例的比例。 ( T P + T N ) / ( P + N ) (TP + TN)/(P+N) (TP+TN)/(P+N)
    • 精确率(Precision):真实正例预测占所有正例预测的比例。 ( T P / ( T P + F P ) ) (TP/(TP+FP)) (TP/(TP+FP))
    • 召回率(Recall)(灵敏度或真正率):真实正例预测占所有实际正例的比例。 T P / ( T P + F N ) TP/(TP+FN) TP/(TP+FN)
    • F1 分数(F1 score):精确率和召回率的调和平均数。 2 ( P r e c i s i o n ∗ R e c a l l ) / ( P r e c i s i o n + R e c a l l ) 2(Precision*Recall)/(Precision+Recall) 2(PrecisionRecall)/(Precision+Recall)
  • 回归任务的评估指标。

    • 平均绝对误差(Mean absolute error),均方误差(Mean squared error),均方根误差(Root mean squared error)。
  • 列举使用不同指标的例子

    • 对于不平衡数据集和罕见事件检测(如欺诈检测),使用精确率和召回率,高精确率确保最小化假阳性,高召回率确保最小化假阴性。F1 分数通常是必要的。
    • 对于平衡数据集,使用准确率。这是一个直接且有效的指标。
    • 对于医学诊断,漏掉一个正例比错误标记一个阴性例子更糟糕,例如癌症检测,召回率至关重要;如果治疗有显著副作用,高精确率可以避免不必要的治疗。
    • 对于推荐系统,用户更关心前几项结果的相关性,精确率是关键。

决策树

  • 决策树的关键术语。

    • 根节点(Root node)是最顶层的节点。
    • 决策节点(Decision nodes)位于树的中间。
    • 叶节点(Leaf node)是底部用于预测的节点。
    • 分支(Branches)是连接节点的边。
  • 列举决策树的分裂标准。

    • 基尼不纯度(Gini impurity),熵(Entropy)或信息增益(Information gain),方差减少(Variance reduction)
  • 介绍决策树的优缺点

    • 优点:简单易懂和解释;数据准备工作少;处理数值和分类数据。
    • 缺点:树容易过拟合;如果输入数据有小变化,预测结果可能不稳定;如果某些类别占主导地位,会有偏差。

决策树对数据的小变化(噪音)非常敏感,使用多个树并对最终结果进行投票使预测更加稳健。

  • 介绍树集成方法随机森林(Random forest)

    • 它在训练期间构建多个决策树,并通过回归的平均分类的投票来结合结果。
    • 每棵树在训练数据的一个随机子集(有放回抽样)和一个随机特征子集上训练。它减少了过拟合并增加了泛化能力。
  • 介绍树集成方法梯度提升(Gradient Boosting)

    • 与随机森林中所有示例的选择概率相同不同,它更倾向于选择之前训练的树分类错误的示例。(序列树
    • 梯度提升以其高预测准确性和捕捉数据中复杂关系的能力而闻名。
    • XGBoost,极端梯度提升,具有内置的正则化技术以防止过拟合,它有助于控制模型的复杂性。它知道默认分裂标准和停止分裂标准的良好选择。是像Kaggle这样的机器学习竞赛中的高度竞争算法。

你可能感兴趣的:(深度学习,机器学习,神经网络,人工智能)