人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的,三者的关系:人工智能 > 机器学习 > 深度学习。
- 人工智能(ArtificialIntelligence,AI)是最宽泛的概念,是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学
- 机器学习(MachineLearning,ML)是当前比较有效的一种实现人工智能的方式。
- 深度学习(DeepLearning,DL)是机器学习算法中最热门的一个分支,近些年取得了显著的进展,并替代了大多数传统机器学习算法。
机器学习
机器学习的实现可以分成两步:训练 和 预测 ,类似于归纳和演绎:
- 归纳: 从具体案例中抽象一般规律,机器学习中的“训练”亦是如此。从一定数量的样本(已知模型输入X和模型输出Y)中,学习输出Y与输入X的关系(可以想象成是某种表达式)。
- 演绎: 从一般规律推导出具体案例的结果,机器学习中的“预测”亦是如此。基于训练得到的Y与X之间的关系,如出现新的输入X,计算出输出Y。通常情况下,如果通过模型计算的输出和真实场景的输出一致,则说明模型是有效的。
机器学习的过程中, 确定模型的三个关键要素:假设、评价、优化。
牛顿第二定律:
- 假设:通过观察加速度a和作用力F的观测数据,假设a和F是线性关系,即a=w⋅F。
- 评价:对已知观测数据上的拟合效果好,即 w⋅F计算的结果要和观测的a尽量接近。
- 优化:在参数w的所有可能取值中,发现 w=1/m 可使得评价最好(最拟合观测样本)。
模型有效的基本条件是 能够拟合已知的样本
假设机器通过尝试答对(最小化损失)大量的习题(已知样本)来学习知识(模型参数w),并期望用学习到的知识所代表的模型 H(w,x),回答不知道答案的考试题(未知样本)。最小化损失是模型的优化目标,实现损失最小化的方法称为优化算法,也称为寻解算法(找到使得损失函数最小的参数解)。参数w和输入
x组成公式的基本结构称为假设。在牛顿第二定律的案例中,基于对数据的观测,我们提出了线性假设,即作用力和加速度是线性关系,用线性方程表示。由此可见,模型假设、评价函数(损失/优化目标)和优化算法是构成模型的三个关键要素。
图6:机器学习就是拟合一个“大公式”
深度学习
构建神经网络/深度学习模型的基本步骤
要学习Pytorch,需要掌握以下基本知识:
- 编程语言:Pytorch使用Python作为主要编程语言,因此需要熟悉Python编程语言。
- 线性代数和微积分:Pytorch主要用于深度学习领域,深度学习是基于线性代数和微积分的,因此需要具备线性代数和微积分的基础知识。
- 机器学习基础知识:了解机器学习的基本概念和算法,如线性回归、逻辑回归、支持向量机、决策树等。
- 深度学习基础知识:了解深度学习的基本概念和算法,如前馈神经网络、循环神经网络、卷积神经网络等。
- 计算机视觉或自然语言处理等领域的基础知识:Pytorch可以应用于各种领域,比如计算机视觉和自然语言处理等,因此需要了解所涉及的领域的基本知识。
- Pytorch基础知识:了解Pytorch的基本概念和操作,如张量、自动求导、模型定义、优化器等。
- 实践经验:通过实践项目或者模型实现等方式加深对Pytorch的理解和应用能力。
线性代数、微积分
线性代数和微积分都是必不可少的数学基础知识
- 建议你先学线性代数,因为线性代数是深度学习的基础,很多深度学习模型都是建立在线性代数的基础上。线性代数的一些基本概念,如向量、矩阵、线性变换等,对于理解和实现深度学习模型非常重要
- 微积分也是非常重要的数学基础,它在深度学习中用于计算梯度和优化,但是如果你刚开始学习深度学习,建议你先掌握线性代数的基础知识,再逐步学习微积分
推荐的经典书籍(线性代数、微积分)
线性代数:
- 《线性代数及其应用》(Linear Algebra and Its Applications), Gilbert Strang 著
- 《线性代数导论》(Introduction to Linear Algebra), Gilbert Strang 著
- 《线性代数》(Linear Algebra), Serge Lang 著
- 《线性代数及其应用》:这是一本线性代数领域的经典教材,由美国加州大学洛杉矶分校的教授Gilbert Strang编写,介绍了线性代数的基本概念、矩阵运算、向量空间、线性变换等。
- 《线性代数》:这是一本线性代数的入门教材,由北京大学的教授潘承志编写,介绍了线性方程组、矩阵、向量、线性变换等基本概念,同时也包含一些高阶的知识点,如特征值、特征向量等。
- 《线性代数》:这是一本比较全面的线性代数教材,由南开大学的教授郝宏伟编写,介绍了线性代数的基本概念和方法,包括线性空间、矩阵、行列式、特征值、特征向量等。
- 《线性代数与群论》:这是一本比较深入的线性代数教材,由清华大学的教授龚昌平编写,介绍了线性代数的基本概念和方法,同时也讲解了线性代数与群论的关系,以及一些高级的应用,如多项式矩阵等。
微积分:
- 《微积分学教程》(Calculus), Michael Spivak 著
- 《微积分学:初等函数与极限》(Calculus: Early Transcendentals), James Stewart 著
- 《微积分学教程》(Calculus: A Complete Course), Robert A. Adams 和 Christopher Essex 著
- 《微积分学》:这是一本经典的微积分教材,由美国哈佛大学的教授Michael Spivak编写,介绍了微积分的基本概念、极限、连续、导数、积分等,并通过一系列例题和习题帮助读者深入理解微积分的概念和应用。
- 《微积分学教程》:这是一本比较全面的微积分教材,由北京大学的教授郭家宝编写,介绍了微积分的基本概念、函数极限、连续性、导数、微分、积分等,并通过丰富的例题和习题帮助读者加深对微积分知识的理解。
- 《微积分(上、下)》:这是一套比较系统的微积分教材,由清华大学的教授王立鹏编写,介绍了微积分的基本概念、极限、导数、微分、积分等,并通过大量的例题和习题帮助读者巩固所学的知识。
- 《微积分学习指导与习题解答》:这是一本比较适合初学者的微积分教材,由上海交通大学的教授陈永昌编写,介绍了微积分的基本概念、导数、微分、积分等,并通过详细的解题步骤和技巧帮助读者掌握微积分的知识和应用。
以上书籍都是非常经典的教材,内容详实且易于理解。此外,网上也有很多免费的线性代数和微积分课程资源,如MIT OCW等,可以根据自己的需求和兴趣选择适合自己的资源。
机器学习
学习机器学习需要一定的数学和编程基础,下面是一个简单的学习计划:
- 学习Python编程语言:Python是机器学习最常用的编程语言之一,需要熟练掌握Python的基本语法和常用的Python库,如NumPy、Pandas和Matplotlib等。
- 学习数学基础:机器学习涉及到很多数学知识,尤其是线性代数、微积分和概率论。可以选择上述推荐的书籍进行学习,也可以参考网上的免费教程和视频。
- 学习机器学习基础理论:了解机器学习的基本概念和流程,如监督学习、无监督学习、训练集和测试集等。可以参考经典的机器学习教材,如《机器学习》(周志华著)、《统计学习方法》(李航著)等。
- 学习机器学习算法:掌握机器学习中常用的算法,如线性回归、逻辑回归、决策树、支持向量机和神经网络等。可以参考经典的机器学习教材,如《机器学习实战》(Peter Harrington著)、《Python机器学习基础教程》(Sebastian Raschka著)等。
- 实践项目:参与实际的机器学习项目,通过实践巩固学习成果。可以参加开源项目或者自己设计实现一个小项目。
- 持续学习:机器学习是一个快速发展的领域,需要不断学习最新的理论和技术。可以参加线上或线下的机器学习课程,关注机器学习领域的最新进展。
推荐的经典书箱
- 《机器学习》:这是一本机器学习领域的经典教材,由加州大学伯克利分校的教授Tom Mitchell编写,涵盖了机器学习的基础知识和高级技术,包括监督学习、非监督学习、强化学习等。
- 《统计学习方法》:这是一本经典的统计学习教材,由清华大学计算机科学与技术系的教授李航编写,介绍了统计学习的基础理论和常用方法,包括感知机、支持向量机、决策树、随机森林、朴素贝叶斯等。
- 《Python机器学习基础教程》:这是一本适合初学者的机器学习教程,由美国加州大学欧文分校的教授Andreas Mueller和Sarah Guido编写,介绍了使用Python实现机器学习的基础知识和常用技术,包括数据预处理、模型选择、特征工程等。
- 《机器学习实战》:这是一本实践性很强的机器学习教材,由美国康奈尔大学的教授Peter Harrington编写,通过一些实际案例来介绍机器学习的基础知识和常用技术,包括分类、聚类、回归等。
- 《机器学习系统设计》:这是一本介绍机器学习系统设计的书籍,由美国加州大学伯克利分校的教授Richert Wang和Shanqing Cai编写,介绍了机器学习系统设计的流程、技术和方法,包括数据预处理、模型构建、模型评估等。
深度学习
深度学习是机器学习的分支之一,需要具备机器学习和数学基础。以下是一个简单的学习计划及精典书籍:
- 学习Python编程语言:Python是机器学习最常用的编程语言之一,需要熟练掌握Python的基本语法和常用的Python库,如NumPy、Pandas和Matplotlib等。
- 学习机器学习基础理论:了解机器学习的基本概念和流程,如监督学习、无监督学习、训练集和测试集等。可以参考经典的机器学习教材,如《机器学习》(周志华著)、《统计学习方法》(李航著)等。
- 学习深度学习基础理论:了解深度学习的基本概念和流程,如人工神经网络、反向传播算法、卷积神经网络和循环神经网络等。可以参考经典的深度学习教材,如《深度学习》(Ian Goodfellow、Yoshua Bengio和Aaron Courville著)、《神经网络与深度学习》(Michael Nielsen著)等。
- 学习深度学习框架:掌握深度学习常用的框架,如PyTorch、TensorFlow等。可以参考官方文档、教程和实战项目进行学习。
- 实践项目:参与实际的深度学习项目,通过实践巩固学习成果。可以参加开源项目或者自己设计实现一个小项目。
- 持续学习:深度学习是一个快速发展的领域,需要不断学习最新的理论和技术。可以参加线上或线下的深度学习课程,关注深度学习领域的最新进展。
推荐的经典书籍:
- 《深度学习》(Deep Learning),Ian Goodfellow、Yoshua Bengio和Aaron Courville著
- 《神经网络与深度学习》(Neural Networks and Deep Learning),Michael Nielsen著
- 《Python深度学习》(Python Deep Learning),斋藤康毅著
- 《深度学习实战》(Deep Learning with Python),Francois Chollet著
- 《动手学深度学习》(Dive into Deep Learning),李沐、Aston Zhang等著
- 《深度学习入门:基于Python的理论与实现》:这是一本适合初学者的入门书籍,由日本深度学习研究者斋藤康毅编写,书中使用Python语言讲解深度学习的基础知识和实现方法。
- 《深度学习》:这是一本深度学习领域的经典教材,由加州大学伯克利分校的教授Ian Goodfellow等人编写,涵盖了深度学习的基础知识和高级技术,包括卷积神经网络、循环神经网络、生成模型等。
- 《Python深度学习》:这本书由Python深度学习框架Keras的作者Francois Chollet编写,介绍了如何使用Keras实现深度学习模型,包括卷积神经网络、循环神经网络等。
- 《深度学习之TensorFlow:入门、原理与进阶》:这是一本由TensorFlow作者之一李沐编写的书籍,涵盖了TensorFlow的基础知识和实现方法,包括卷积神经网络、循环神经网络等。
- 《深度学习与计算机视觉实战》:这是一本针对计算机视觉领域的深度学习应用实战书籍,由清华大学计算机视觉与模式识别研究组的教授李沐编写,涵盖了深度学习在图像分类、目标检测、图像分割等领域的应用。
有很多深度学习的优秀老师开设了公开课,以下是一些比较受欢迎的老师及其公开课:
- 吴恩达 (Andrew Ng):吴恩达是深度学习领域的著名科学家和教育家,他的公开课包括《机器学习》、《深度学习》和《AI for Everyone》等。
- 李宏毅:李宏毅是台湾大学计算机科学系的教授,他的公开课包括《机器学习》、《深度学习》和《生成式对抗网络》等。
- 斋藤康毅:斋藤康毅是日本的一位深度学习研究者和科普作家,他的公开课包括《深度学习入门》和《深度学习进阶》等。
- 谷歌机器学习工程师课程:由谷歌机器学习工程师主讲的课程,包括《机器学习速成课程》和《深度学习课程》等。
- 斯坦福大学CS231n:由斯坦福大学计算机科学系主办的深度学习课程,涵盖了卷积神经网络、循环神经网络等内容。
以上是一些比较受欢迎的深度学习公开课老师和课程,建议选择适合自己的老师和课程进行学习。
学习 Pytorch 电脑需要什么样的配置
最低要求:
- CPU:64位CPU,支持AVX指令集
- 内存:4GB
- 显卡:支持CUDA加速的NVIDIA GPU,建议使用Tesla、Quadro、GeForce GTX 10xx/16xx/20xx系列显卡
- 硬盘:至少10GB的可用存储空间
推荐配置:
- CPU:Intel Core i7或以上
- 内存:16GB或以上
- 显卡:NVIDIA Tesla V100或以上,至少11GB显存
- 硬盘:NVMe SSD
需要注意的是,对于一些需要训练大型神经网络或使用超参数搜索的任务,需要更高的内存和显存,以及更快的硬盘读写速度。此外,在使用PyTorch时,也需要安装适当的驱动程序和CUDA库以支持GPU加速。