首页 > 编程语言 >四十、【人工智能】【机器学习】- 梯度下降(Gradient Descent Algorithms)算法模型

四十、【人工智能】【机器学习】- 梯度下降(Gradient Descent Algorithms)算法模型

时间:2024-08-19 17:55:28浏览次数:16  
标签:机器 Descent Gradient 梯度 监督 学习 算法 Algorithms

 

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归 

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

十七、【机器学习】【非监督学习】- K-均值 (K-Means) 

十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)

二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)​​ 


目录

系列文章目录

一、基本定义

(一)、监督学习

(二)、监督学习的基本流程

(三)、监督学习分类算法(Classification)

二、 梯度下降算法(Gradient Descent Algorithms)

(一)、定义

(二)、基本概念

(三)训练过程

标准梯度下降 (Batch Gradient Descent)

随机梯度下降 (Stochastic Gradient Descent, SGD)

(四)、特点

(五)、适用场景

(六)、扩展

三、总结

四、相关书籍介绍


一、基本定义

(一)、监督学习

        监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。

(二)、监督学习的基本流程

        数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
        数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
        模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
        训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
        验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
        测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。

(三)、监督学习分类算法(Classification)

        定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
        例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。


二、 梯度下降算法(Gradient Descent Algorithms)

(一)、定义

Gradient Descent(梯度下降)算法是一种迭代优化算法,用于求解最小化问题,特别是在机器学习和深度学习领域中寻找损失函数的最小值。其基本思想是沿着目标函数梯度的反方向(即函数下降最快的方向)更新参数,以逐步逼近函数的最小值点。梯度下降算法可以应用于各种类型的函数,但最常用于求解无约束优化问题。

(二)、基本概念

  1. 目标函数: 梯度下降的目标函数通常是损失函数,它衡量模型预测与实际值之间的差距。
  2. 梯度: 梯度是目标函数在某一点的导数或偏导数,表示函数在该点的斜率或方向导数,指向函数增长最快的方向。
  3. 学习率: 学习率(γ 或 η)是更新参数时的步长,控制着每次迭代中参数更新的幅度。
  4. 参数更新公式: 梯度下降更新参数的公式为 ,其中 xt​ 是当前参数,γ 是学习率,∇f(xt​) 是目标函数在当前参数处的梯度。

(三)训练过程

梯度下降算法的训练过程是机器学习和深度学习中至关重要的环节,其目标是通过迭代更新参数来最小化损失函数。下面是对训练过程的详细分解,包括不同的梯度下降变种以及它们的特点:

标准梯度下降 (Batch Gradient Descent)
  1. 初始化参数:选择初始参数值,通常是随机的。
  2. 计算梯度:在当前参数值下,计算整个训练集上的损失函数的梯度。
  3. 更新参数:使用计算出的梯度和预先设定的学习率更新参数。
  4. 重复步骤2和3:直到满足停止条件,如梯度足够小、达到最大迭代次数或参数变化低于某个阈值。

特点:保证在凸函数中收敛至全局最小值,但在大数据集上计算梯度非常耗时。

随机梯度下降 (Stochastic Gradient Descent, SGD)
  1. 初始化参数:同样选择初始参数值。
  2. 随机选取样本:每次迭代从训练集中随机选取一个样本。
  3. 计算梯度:仅基于该样本计算损失函数的梯度。
  4. 更新参数:使用该梯度和学习率更新参数。
  5. 重复步骤2至4:直到满足停止条件。

(四)、特点

  • 简单易用: 梯度下降算法概念简单,易于理解和实现。
  • 收敛性: 在适当条件下,梯度下降可以收敛到局部最小值。
  • 对学习率敏感: 学习率的选择对算法的收敛速度和是否收敛有显著影响。
  • 可能陷入局部最小: 梯度下降可能无法跳出局部最小值,尤其是在非凸函数中。

(五)、适用场景

  • 线性回归: 用于拟合最佳直线或超平面。
  • 逻辑回归: 用于分类问题,特别是二分类问题。
  • 神经网络: 用于训练神经网络,包括深度学习模型。

(六)、扩展

梯度下降算法有多种变体,包括:

  1. Batch Gradient Descent: 使用所有训练数据计算梯度,精确但计算量大。
  2. Stochastic Gradient Descent (SGD): 每次仅使用一个样本计算梯度,更新频繁,但可能更不稳定。
  3. Mini-batch Gradient Descent: 折中方案,每次使用一小批样本计算梯度,结合了两者的优势。
  4. Momentum: 引入动量项以加速收敛,帮助算法更快地穿过平坦区域。
  5. Adaptive Learning Rate Methods: 如 AdaGrad、RMSprop 和 Adam,自适应调整学习率,以改善学习过程。

三、总结

梯度下降及其变体是机器学习和深度学习中不可或缺的优化算法,广泛应用于参数优化和模型训练。

四、相关书籍介绍

《Python机器学习算法》这本书是由赵志勇编写,由电子工业出版社出版的一本关于机器学习的入门书籍,出版时间为2017年7月。该书的特点是结合理论与实践,旨在帮助读者不仅理解机器学习算法的理论基础,而且能够动手实践,最终熟练掌握算法的应用。以下是本书的主要内容和适用读者群体的总结:

内容概览

本书分为六个主要部分:

  1. 基本概念:介绍监督学习、无监督学习和深度学习的基本概念。
  2. 分类算法:包括Logistic回归、Softmax Regression、Factorization Machine、支持向量机(SVM)、随机森林和BP神经网络等。
  3. 回归算法:涵盖线性回归、岭回归和CART树回归。
  4. 聚类算法:如K-Means、Mean Shift、DBSCAN和Label Propagation算法。
  5. 推荐算法:基于协同过滤、矩阵分解和基于图的推荐算法。
  6. 深度学习:介绍AutoEncoder和卷积神经网络(CNN)。

此外,本书还特别安排了一章来讲解算法在具体项目中的实践案例,以及附录部分介绍了Python语言、numpy库和TensorFlow框架的使用方法。

适用读者

这本书适合以下几类读者:

  • 机器学习初学者:书中从算法原理出发,逐步深入,适合没有机器学习背景的读者入门。
  • 具有一定项目经验的读者:书中不仅有理论介绍,还有大量实践代码,可以帮助已有一定经验的读者深化理解,提升技能。
  • 对推荐系统、广告算法和深度学习感兴趣的读者:书中详细介绍了这些领域的实用算法,有助于读者在这些方向上进行深入研究。

总之,《Python机器学习算法》是一本全面介绍机器学习算法的书籍,它兼顾理论与实践,无论是对初学者还是有一定经验的读者,都能从中找到适合自己的内容。

书籍下载链接:

链接:https://pan.baidu.com/s/1ngX9yoC1HMZ2ORmHvSEtlA?pwd=0qbm 
提取码:0qbm 

标签:机器,Descent,Gradient,梯度,监督,学习,算法,Algorithms
From: https://blog.csdn.net/xgq8217/article/details/141252077

相关文章

  • Study Plan For Algorithms - Part5
    1.回文数题目链接:https://leetcode.cn/problems/palindrome-number/给定一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。classSolution:defisPalindrome(self,x:int)->bool:str_x......
  • Study Plan For Algorithms - Part4
    1.整数反转题目链接:https://leetcode.cn/problems/reverse-integer/给定一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−2^31,2^31−1],就返回0。classSolution:defreverse(self,x:int)->int:......
  • Study Plan For Algorithms - Part3
    1.最长回文子串题目链接:https://leetcode.cn/problems/longest-palindromic-substringm/给定一个字符串s,找到s中最长的回文子串classSolution:deflongestPalindrome(self,s:str)->str:defexpand_around_center(left,right):whileleft......
  • Study Plan For Algorithms - Part2
    1.无重复字符的最长子串题目链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/给定一个字符串s,请找出其中不含有重复字符的最长子串的长度。classSolution:deflengthOfLongestSubstring(self,s:str)->int:char_dic......
  • 159.302 The 8-Puzzle: Search Algorithms
    159.302ArtificialIntelligenceAssignment#1The8-Puzzle:SearchAlgorithmsMaximumnumberofmemberspergroup:3studentsDeadlineforsubmission:9thofSeptemberInstructionsYourtaskistowriteaC++programthatwillsolvethe8-puzzleprob......
  • COMPSCI 753 Algorithms for Massive Data
    COMPSCI753AlgorithmsforMassiveDataAssignment1/Semester2,2024GraphMiningGeneralinstructionsanddataThisassignmentaimsatexploringthePageRankalgorithmonbigreal-worldnetworkdata.Byworkingonthisassignment,youwilllearn......
  • 数值稳定性:Fixing NaN Gradients during Backpropagation in TensorFlow
    数值稳定性:FixingNaNGradientsduringBackpropagationinTensorFlow......
  • 微信小程序解决不支持画布的createConicGradient
    微信圆环进度条开发,先看效果 微信小程序中canvas使用createConicGradient,开发者工具中显示正常,真机上报错,表示createConicGradient方法underfed,然后试一下使用图片放进去,发现微信小程序不支持newImage方法,后面查看微信官方文档有createImage方法wxml代码: <canvasca......
  • ImportError:无法从“jwt.algorithms”导入名称“RSAAlgorithm”
    RSAAlgorithmPyJWT算法方法无法导入,但我确实安装了PyJWT错误:ImportError:cannotimportname'RSAAlgorithm'from'jwt.algorithms'我通过运行以下命令检查了该包是否可用:poetryshow|grep-ipyjwtpyjwt2.9.0J......
  • 论文阅读:Scalable Algorithms for Densest Subgraph Discovery
    摘要密集子图发现(DSD)作为图数据挖掘的基础问题,旨在从图中找到密度最高的子图。虽然已有许多DSD算法,但它们在处理大规模图时往往不可扩展或效率低下。本文提出了在无向图和有向图上求解DSD问题的高效并行算法,通过优化迭代过程和减少迭代次数来计算核心数。同时引入了新的子......