学习本路线内容之前,请先学习Python的基础知识
其他路线:
符号表解释:
可根据知识点前的符号按需选学,并获取知识点描述和学习资源。
必学:核⼼知识点,经常⽤到。
建议学:重要知识点,专业⼈⼠的基⽯。
⾯试重点:经常出现的⾯试知识点。
可有可⽆:边缘区域,不是必须探索的地⽅。
知识描绘:知识点描述,快速理解。
学习资源:关联的学习资源。
学习⽬标:阶段性⽬标。
学习路线:算法(人工智能)
描述: Python 在人工智能领域广泛应用,作为一种强大的编程语言,它支持各种机器学习和深度学习算法,用于构建智能系统、自然语言处理、计算机视觉和数据分析等领域的应用。
目标:人脸识别系统,利用深度学习模型,构建一个人脸识别系统,可以用于身份验证或监控系统。
学习资源:
- TensorFlow 深度学习从入门到实战 >>>
- AI 深度学习 Python 实战 Pytorch >>>
- 大厂 AI 实践 >>>
- 动手学深度学习 >>>
- 动手学大模型应用开发 >>>
- TensorFlow 官方文档中文版 >>>
- 人工智能学习路线 >>>
一、 数学基础
1、高等数学:
高等数学是数学的一个分支,涵盖了微积分、微分方程、积分学等内容。在人工智能中,微积分常用于优化算法和神经网络的训练中。
2、线性代数:线性代数研究向量、矩阵和线性方程组的理论与应用。在人工智能中,线性代数用于处理多维数据、矩阵运算、特征值分解等,是深度学习中的关键数学概念之一。
4、统计分析:
二、 机器学习
1、特征工程:描述: 特征工程是指对原始数据进行处理和转换,以提取出对机器学习模型有意义的特征。好的特征工程可以显著影响模型的性能,帮助模型更好地学习数据的模式。
2、模型:描述: 模型是机器学习中的数学表示,用于从数据中学习模式和进行预测。模型可以是线性回归、决策树、神经网络等算法的实例。
- 模型分类: 根据问题的性质,可以选择不同类型的模型。例如,分类问题可以使用逻辑回归、支持向量机等,而回归问题可以使用线性回归、决策树回归等。
- 模型评估:评估模型的性能是关键步骤。常见的评估指标包括准确性、精确度、召回率、F1 分数等,用于衡量模型在未见数据上的表现。
- 模型训练:模型训练是指使用标记的训练数据来调整模型的参数,使其能够更好地拟合数据。训练通常包括损失函数优化、反向传播等过程。
- 模型调优:模型调优是通过调整超参数、正则化等方法来改善模型性能的过程。这可以包括交叉验证、超参数搜索等技术。
3.1 监督与无监督学习:
- 监督学习: 在监督学习中,算法接收带有标签(目标输出)的训练数据,并学习如何映射输入到输出。常见的监督学习任务包括分类和回归。
- 无监督学习: 在无监督学习中,算法接收没有标签的训练数据,目标是发现数据的结构或模式,通常包括聚类和降维。
- 线性回归: 线性回归试图拟合数据点与线性函数之间的最佳拟合线,用于预测连续数值。它基于线性关系建立模型。
- 决策树回归: 决策树回归使用树状结构来建模数据,将输入数据分成多个决策节点,每个节点代表一个决策规则。用于处理非线性关系。
- 集成算法: 集成算法如随机森林和梯度提升树是组合多个基本模型以提高预测性能的方法。它们通过组合多个模型的预测来降低过拟合风险。
- 逻辑回归: 逻辑回归是一种广泛用于二分类问题的算法。它建立一个线性模型,然后使用逻辑函数(sigmoid 函数)将线性输出映射到概率值,用于判断属于哪个类别。
- 决策树: 决策树是一种树状结构的模型,用于分类和回归任务。在分类中,它根据特征的条件来分割数据,并最终确定每个叶子节点的类别。
- 支持向量机 (SVM): 支持向量机是一种用于分类和回归的强大算法。它寻找一个最佳的超平面来分割数据,并尽量使不同类别的数据点离这个超平面最远,以提高分类性能。
- 集成算法: 集成算法如随机森林和梯度提升树是组合多个模型以提高分类性能的方法。它们通过组合多个弱模型的预测来降低过拟合风险,并在实际中表现出色。
- 贝叶斯算法: 贝叶斯算法是一组基于贝叶斯定理的概率算法,用于分类问题。它基于先验概率和数据的条件概率来估计后验概率,用于决定最可能的类别。
- K 均值聚类(K-means): K 均值聚类是一种无监督学习算法,用于将数据分成 K 个不同的簇(群集)。它的目标是使每个数据点与其所属簇中的聚类中心的距离最小化。K 均值聚类通常需要预先指定簇的数量 K,然后通过迭代优化来找到最佳簇分配。
- DBSCAN(密度聚类): DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种无监督聚类算法,能够识别具有不同密度的簇。它基于数据点的密度来分割簇,将具有足够密度的数据点分为一个簇,并将稀疏区域的数据点标记为噪声点。DBSCAN 不需要预先指定簇的数量,因此对于发现具有不同形状和大小的簇很有用。
- 主成分分析(PCA): 主成分分析是一种常用的降维技术,旨在减少数据的维度,同时保留最重要的信息。它通过找到数据中的主要方差方向,将数据投影到新的坐标系中,以便能够更紧凑地表示数据。PCA 通常用于数据压缩、可视化和去除冗余信息。
- 线性判别分析(LDA): 线性判别分析是一种降维方法,通常与分类问题一起使用。它寻找一个新的特征空间,以便不仅最大化不同类别之间的距离,还最小化同一类别内部的距离。LDA 旨在找到具有最好区分性的特征,可以用于提高分类算法的性能。
- GBDT(梯度提升决策树)算法: GBDT 是一种集成学习算法,用于回归和分类问题。它通过构建多个决策树模型,每个模型都试图修正前一个模型的错误。模型的组合提供了强大的预测性能,因此在许多数据挖掘和预测任务中广泛应用。
- LightGBM: LightGBM 是一种基于梯度提升的决策树算法,专为高效性能而设计。它使用了一种称为“直方图算法”的技术,能够更快地构建树模型。LightGBM 通常比传统的梯度提升算法更快速且具有竞争力的性能。
- EM(期望最大化)算法: EM 算法是一种用于解决含有隐含未知变量的概率模型的估计问题的迭代算法。它通过交替进行“期望”步骤(E 步骤)和“最大化”步骤(M 步骤),来估计模型参数。EM 算法在聚类、密度估计和概率分布建模等领域广泛使用。
- 隐马尔可夫模型(HMM): 隐马尔可夫模型是一种统计模型,用于建模时序数据和序列标注问题。它由隐藏状态、可见状态和状态转移概率组成,常用于语音识别、自然语言处理、生物信息学等领域,可以捕捉序列数据中的潜在结构和模式。
- 多因子模型是一种用于解释和预测资产收益或投资组合表现的金融模型。它是一种广泛应用于资产定价和投资决策的工具,用于理解资产收益的来源和影响因素。
5、常用库
5.1 NumPy- NumPy 是 Python 中用于科学计算的基础库,提供了多维数组和矩阵操作,是许多其他机器学习库的基础。
- pandas 是用于数据处理和分析的库,提供了数据结构和数据操作工具,方便加载、清理、转换和分析数据。
- scikit-learn 是一个广泛使用的机器学习库,包含了各种机器学习算法,如分类、回归、聚类、降维等,以及用于模型选择和评估的工具。
- TensorFlow 是 Google 开发的深度学习框架,用于构建神经网络和深度学习模型。它提供了高级 API(例如 Keras)和低级 API,适用于各种深度学习任务。
- PyTorch 是 Facebook 开发的深度学习框架,受到研究人员和实践者的欢迎。它提供了灵活的动态计算图和易于使用的 API,使深度学习模型的构建更加直观。
- Keras 是一个高级神经网络 API,可以运行在 TensorFlow、Theano 和 CNTK 等后端上。它是构建深度学习模型的简单且用户友好的接口。
- SciPy 是一个用于科学计算的库,包括了许多数学、优化和统计算法,对于高级机器学习任务非常有用。
- 自然语言工具包(NLTK)是用于自然语言处理的库,包含了文本处理、分词、标记化、词干提取等功能。
三、深度学习
描述: Python 深度学习是一种机器学习方法,利用神经网络模型来处理复杂的数据任务,如图像识别、自然语言处理和预测分析。它依赖于 Python 编程语言和各种开源库,如 TensorFlow 和 PyTorch。
1、数据预处理- Python 深度学习中的数据预处理是指将原始数据转换为适合神经网络模型输入的格式。这通常包括数据清洗、标准化、归一化、特征工程和划分训练集与测试集等步骤。数据预处理的目标是提高模型的性能和训练效率,确保模型能够有效地学习和泛化。
2、 常用算法
2.1 神经网络:- 神经网络是一种受到人类大脑结构启发的算法,它由多个神经元组成的层次结构。这些神经元通过连接权重进行信息传递,通过前向传播和反向传播来学习和调整权重,以解决各种机器学习问题,如分类、回归和聚类。
- 卷积神经网络是一种专门用于处理图像和视觉数据的神经网络。它包含卷积层,池化层和全连接层,能够有效地捕捉图像中的特征和模式,广泛用于图像分类、目标检测和图像生成等任务。
- 递归神经网络是一种用于处理序列数据的神经网络,它具有记忆功能,能够捕捉序列中的时间依赖关系。RNN 在自然语言处理、时间序列分析和语音识别等领域广泛应用。
- 对抗生成网络是由生成器和判别器组成的对抗性模型。生成器试图生成与真实数据相似的数据,而判别器尝试区分真实数据和生成数据。这个过程通过竞争使生成器不断提高生成数据的质量,用于生成图像、音频和文本等内容。
- 序列网络模型通常是指用于处理序列数据的各种神经网络,包括 RNN、LSTM(长短时记忆网络)、GRU(门控循环单元)和 Transformer 等。它们广泛用于自然语言处理、机器翻译、文本生成和音乐生成等领域,能够捕捉序列数据中的长期依赖性。
3.1 TensorFlow 2:
- TensorFlow 2 是由 Google 开发的深度学习框架,具有高度的灵活性和可扩展性。它提供了动态计算图和静态计算图的两种模式,以满足不同需求。TensorFlow 2 的 Keras API 被整合为默认的高级 API,使模型的创建和训练变得更加容易。
3.2 PyTorch:
- PyTorch 是由 Facebook 开发的深度学习框架,以其动态计算图的特性而著称。它具有直观的 API,支持动态图和静态图,使研究人员和开发人员能够更自由地定义和修改模型结构。PyTorch 在学术界和研究中广泛使用。
- Keras 是一个高级深度学习 API,最初独立存在,后来被整合到 TensorFlow 中。它设计用于简化模型构建和训练过程,适用于快速原型开发。Keras 提供了用户友好的接口,使得创建神经网络模型变得非常容易。
- Caffe 是一个由 Berkeley Vision and Learning Center(BVLC)开发的深度学习框架,早期用于图像分类和卷积神经网络的研究。它的设计注重性能和速度,但不太适合新手,因为配置和扩展需要一定的技术经验。
- 自然语言处理是深度学习领域的一个重要分支,涉及计算机对人类语言的理解和生成。它包括文本分析、语言模型、机器翻译、情感分析、命名实体识别等任务。深度学习在 NLP 中广泛应用,例如使用循环神经网络(RNN)和变换器(Transformer)来处理文本数据。
- 图像处理是指通过计算机算法对图像进行分析、改进和转换的过程。深度学习已经在图像处理中取得了巨大的成功,特别是卷积神经网络(CNN)在图像分类、目标检测、图像分割和风格转换等任务中的应用。
- 计算机视觉是深度学习的一个重要应用领域,旨在使计算机能够理解和解释图像和视频数据。它包括目标检测、人脸识别、动作识别、三维重建、虚拟现实和自动驾驶等任务。深度学习方法在计算机视觉中已经实现了突破性的进展,尤其是卷积神经网络的发展使得图像识别和分析变得更加准确和高效。