学习人工智能的关键技能:我的经验与资源分享

摘要: 通过重要的学习资源,深入了解并掌握关键的人工智能技能。探索数学、编程、数据工程和机器学习领域。发现人工智能的奥秘,提升自己的能力!

这是一篇来自5年调参侠的心路历程,分享一下我在人工智能领域所需的关键技能。

首先,我是@TopGeeky,一个长期输出干货文章的博主,建议大家收藏、点赞、关注我的内容,同时欢迎私信讨论,关注之后我会将我多年收藏的学习资源分享给你。

人工智能的六大核心技能

首先,了解人工智能需要掌握六个核心技能:数学基础、编程技能、数据工程能力、机器学习算法、深度学习算法和开发框架及项目。掌握这些技能将使您成为顶尖的人工智能从业者。然而,不要害怕这些技能,因为持续的终身学习能力才是人工智能行业最重要的能力。

接下来,我将逐一介绍这些技能,并提供学习资源。入门人工智能通常需要1-2年的学习,但要记住,这个领域的学习是一个持续的终身过程。不要忘记初心,保持学习的态度。

学习人工智能的关键技能:我的经验与资源分享

人工智能核心技能图谱

上图详细说明了人工智能所需要的知识点,但是不要害怕,入门人工智能并不需要掌握所有知识点,只需要了解整体脉络,在实际应用中遇到问题时再补充相关知识点,重要的是保持终身学习的能力!

认识人工智能

人工智能 (AI) 是计算机科学的一个广泛分支,涉及构建能够执行通常需要人类智能的任务的智能机器。虽然人工智能是一门具有多种方法的跨学科科学,但尤其是机器学习和深度学习的进步正在为科技行业的几乎每个领域带来范式转变。

  • 将人工智能称之为机器可以具有人类思维相关认知能力的愿景
  • 目前解决的方式是通过机器学习的方法来逼近人工智能这一愿景
  • 其中深度学习是机器学习中目前效果最好且最热门的一个技术分支
学习人工智能的关键技能:我的经验与资源分享

人工智能关系图

数学基础技能

深度学习的第一步或者说第一个关键技能是数学基础。数学基础可以帮助你理解深度学习和机器学习算法的工作原理。当你尝试理解像机器学习这样的交叉学科时,主要问题在于理解所需的数学知识的广度和深度。

数学在人工智能(数据科学)领域的重要性毋庸置疑,如果没有数学知识,人工智能的学习将会十分困难。

简单来说,数学能力是决定你在人工智能行业能否长久从事的必备条件。但是并不建议花大量时间逐步学习数学知识,这样会让你走弯路。

最佳的数学学习方式是整合所有知识点和学习资源,并在遇到难点时回顾相关知识点,利用学习资源进行复习

线性代数

线性代数是21世纪的数学。在机器学习领域,线性代数无处不在。主成分分析(PCA)、奇异值分解(SVD)、矩阵的特征分解、LU分解、QR分解、对称矩阵、正交化和正交归一化、矩阵运算、投影、特征值和特征向量、向量空间和范数(Norms),这些都是理解机器学习中使用的优化方法所需的知识。

  • MIT Courseware提供的线性代数课程(由Gilbert Strang教授讲授),备受学生喜爱,是最好的线性代数课程之一。强烈推荐这门课程,因为它能够让你从空间的角度去理解问题,而不仅仅是方程。此外,课程中还涵盖了大量线性代数的应用。
  • 3Blue1Brown出品的线性代数本质系列视频非常适合短时间快速温习线性代数知识点,特别适合基础薄弱的同学。
  • immersivemath是一个交互式网站,非常容易理解线性代数和空间关系,通过动态图像观察和理解复杂的数学理论,当你遇到困难的时候可以来这里寻求帮助。
  • 清华大学马辉老师出品的线性代数教学课程质量最高,非常适合对数学有兴趣或者准备考研的同学。
  • 《线性代数的艺术》是一本只有12页纸的书,其中一半都是图解,非常适合初学者阅读。阅读完这本书相当于完成了线性代数的入门,推荐从这本书开始学习,然后再遇到其他问题时学习其他课程。

PS:我花费了一周的时间整理了全网最全面的线性代数学习资源,希望能对大家有所帮助。如果觉得有帮助,请收藏、点赞、关注,对我来说这是最大的支持。

概率论与统计学

机器学习需要一些概率和统计理论,包括组合、概率规则和公理、贝叶斯定理、随机变量、方差和期望、条件和联合分布、标准分布(伯努利、二项式、多项式、均匀和高斯)、矩母函数(Moment Generating Functions)、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和抽样方法。

微积分

在建立算法模型后,问题的最终解决通常涉及优化问题。在寻找数据空间的极值过程中,没有微积分理论和计算方法的支持,任何优秀的模型都无法实现。同样,在理解机器学习算法的优化上,如果没有基础的微积分知识,也将面临困难。

因此,扎实的多变量微积分和最优化方法的理解是通向最终解决方案的必经之路。

凸优化

机器学习中广泛使用的凸优化方法主要包括梯度下降法和拟牛顿法,学习凸优化在机器学习中具有重要地位,能够帮助我们更有效地训练模型、提高模型性能,并提供坚实的数学基础和工具来解决各种优化问题。

推荐阅读这篇文章理解凸优化

编程技能

Python是目前最流行、最好的机器学习语言,超过60%的机器学习开发人员使用它进行开发,并优先选择它。Python吸引人的地方有几个关键方面。首先,它很容易学习,这对于想要入门机器学习的人来说至关重要。其次,它具有可扩展性和开源性。入门机器学习需要学习一门编程语言,而Python是首选语言。如果你已经有编程经验,可以自行学习Python。

数据工程能力

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。特征工程很少在机器学习相关的书中讲述,包括很多网络课程。掌握处理数据的知识需要实际经验。这里推荐几本特征工程的图书,可以自行阅读。

数据工程包括数据的获取、存储和处理。因此,数据工程师的主要任务是为数据提供可靠的基础架构。如果我们看一下需求的层次结构,数据工程将进入其中的前2-3个阶段:数据收集、数据移动和存储、数据准备

需要了解和使用大多数大数据存储工具,下面总结了一些用于存储和处理大量数据的工具:

  • Apache Kafka(Scala)
  • Hadoop,HDFS(Java)
  • Apache Spark(Scala)
  • Apache Cassandra(Java)
  • HBase(Java)
  • Apache Hive(Java)

要了解这些工具的工作原理,你需要了解它们所使用的编程语言。Scala的函数式编程使你能够有效地解决并行数据处理的问题,从性能上看,Python远不及Scala。你也可以使用Java来操作这些工具,但至少需要学会一种操作这些工具的方式。

机器学习基础算法

根据机器学习算法的分类,机器学习可以分为:

监督学习

无监督学习

根据难度的不同,可以通过下面内容详细了解不同算法之间的难度和学习程度。

知识点 内容 概述
分类算法 逻辑回归、决策树、支持向量机、集成算法、贝叶斯算法 对于准备面试的同学们来说,这些算法是必须掌握的
回归算法 线性回归、决策树、集成算法 有些算法既可以用于分类也可以用于回归
聚类算法 k-means、dbscan等 无监督学习,适用于没有标签的数据
降维算法 主成分分析、线性判别分析等 重要的是理解降维的思想
进阶算法 GBDT提升算法、lightgbm、EM算法、隐马尔科夫模型 对有时间精力的同学来说,可以尝试学习进阶算法

监督学习

监督学习是指在给定的训练集中“学习”出一个函数(模型参数),以便在新数据到来时可以根据这个函数预测结果。监督学习的训练集包括输入和输出,即特征和目标值(标签),训练集中的目标值(标签)是人工标注的。下面是监督学习算法的发展时间线。

学习人工智能的关键技能:我的经验与资源分享

监督学习发展历史

监督学习可以进一步划分为分类和回归两个类别。

分类方法可以预测离散响应,例如判断电子邮件是垃圾邮件还是正常邮件,或者肿瘤是恶性的还是良性的。分类模型将输入数据划分为不同的类别。典型的应用包括医学成像、语音识别和信用评分。

如果你的数据可以进行标记、分类或者分组为特定的组别或类别,就可以使用分类方法。例如,手写识别应用使用分类方法识别字母和数字。在图像处理和计算机视觉领域,无监督模式识别方法用于目标检测和图像分割。

回归方法用于预测连续响应,例如预测电池的充电状态等难以测量的物理量,电网的电力负荷或者金融资产价格。典型的应用包括虚拟传感、电力负荷预测和算法交易。

无监督学习

无监督学习算法使用未标记的数据自行发现模式。这种系统能够从输入数据中识别出隐藏的特征。一旦数据具有可读性,模式和相似性将更加明显。

下面是一个使用未标记数据训练模型的无监督学习方法示例。在这个示例中,数据由不同的车辆组成。模型的目标是对每种类型的车辆进行分类。

学习人工智能的关键技能:我的经验与资源分享

无监督学习流程

无监督学习的一些示例包括k均值聚类、层次聚类和异常检测。下面详细介绍无监督学习的不同类别和应用。

算法名称 类型 特点 应用
K-means 基于划分方法的聚类 将数据分为K个组,随机选择K个对象作为初始聚类中心,计算每个对象与各个聚类中心之间的距离,将每个对象分配到距离最近的聚类中心 客户分析和分类、图像分割
Birch 基于层次的聚类 通过扫描数据库,构建一个聚类特征树,对聚类特征树的叶节点进行聚类 图片检索、网页聚类
DBSCAN 基于密度的聚类 将密度大的区域划分为簇,在带有噪声的空间数据库中发现任意形状的簇,并将簇定义为密度相连的点的最大集合 社交网络聚类、电子商务用户聚类
STING 基于网格的聚类 将空间区域划分为矩形单元,对于不同级别的分辨率,存在多个矩形单元,高层单元被划分为多个低层单元,计算并存储每个网格单元属性的统计信息 语音识别、字符识别
主成分分析(PCA) 线性降维 通过正交变换将一组可能存在相关性的变量数据转换为一组线性无关的变量,转换后的变量称为主成分 数据挖掘、图像处理
线性判别分析(LDA) 线性降维 将高维空间中的数据投影到低维空间中,使得投影后的各个类别的类内方差最小,而类间均值差最大 人脸识别、船只识别
局部线性嵌入(LLE) 非线性降维 在保持原始数据性质不变的情况下,将高维空间的信号映射到低维空间,从而进行特征提取 图像识别、高维数据可视化
拉普拉斯映射(LE) 非线性降维 通过近似地构建数据之间的关系图来从局部近似的角度进行数据关系建模,对要降维的数据构建图,图中的每个节点与其最近的K个节点建立边关系 故障检测

深度学习算法

深度学习基础知识

算法名称 内容概述
神经网络 神经网络是最基础的,为后续网络学习打下基础
卷积神经网络 计算机视觉领域的核心网络,非常重要
循环神经网络 自然语言处理领域的核心网络
生成对抗网络 目前非常火热的模型,具有很多有趣的应用,例如图像合成
序列模型 NLP领域的常用架构,用于机器翻译等任务
经典网络架构 卷积神经网络和循环神经网络是基础,还有很多拓展需要掌握

如果想要实践深度学习,我推荐阅读《动手学深度学习》,这是一本面向希望了解深度学习并对实际应用感兴趣的大学生、工程师和研究人员的书。

深度学习论文

如果你是深度学习领域的新手,你可能会问“我应该从哪篇论文开始阅读?”下面是一个深度学习论文阅读路线图!

这份深度学习论文阅读路线分为三个部分:

深度学习的历史和基础知识

深度学习方法

应用

 

开发框架和项目

开发框架

Scikit-learn:

学习人工智能的关键技能:我的经验与资源分享

Scikit-learn库是目前最受欢迎的机器学习和数据科学平台之一。它是基于Python构建的,这是一种功能强大的编程语言。这里有一个经典的Scikit-learn学习资源。

PyTorch:

学习人工智能的关键技能:我的经验与资源分享

PyTorch中文官方文档详细介绍了很多有用的知识点。对于英文文档阅读困难的同学来说,PyTorch相关的中文文档也很丰富,中文文档详细介绍了各种函数,可以作为PyTorch的速查手册。

TensorFlow:

学习人工智能的关键技能:我的经验与资源分享

这是一个TensorFlow教程的YouTube视频,非常生动有趣。视频讲解、文字教程和代码示例供你学习和练习。

学习人工智能的关键技能:我的经验与资源分享

tensorflow_cookbook:GitHub 5200 + Star这是一本TensorFlow英文书的代码,你可以在网上找到这本书阅读,也可以直接使用这些代码进行学习。该书共有11章,非常详细地讲解了各种内容。

学习人工智能的关键技能:我的经验与资源分享

tensorflow2_tutorials_chinese:GitHub 2900 + Star

开始你的创作!

© Copyright notes
广告也精彩

Related posts

🔥

创建您的帐户,保存工具并保持更新

接收我们精心挑选的顶级工具的每周摘要。
随时退订

No comments

No comments...