程序员线性代数教程! Jupyter 代码和视频可能更适合您

前端开发 2023-09-13 12:03:42
119阅读

红石个人博客:www.redstonewill.com

推荐一本适合程序员的线性代数教程,包括理论和源码。教程地址为:

https://github.com/fastai/数值线性代数

本教程重点讨论以下问题:我们如何以可接受的速度和可接受的精度进行矩阵计算?

本教程来自旧金山大学2017 年分析学硕士夏季课程(针对致力于成为数据科学家的毕业生)。课程使用python和jupyter笔记本进行教学,在大多数课程中使用scikit learn和numpy等库,以及在某些课程中使用numba(将python编译为C以提高性能的库)和pytorch(numpy的替代品)图书馆)。

该笔记本附带了一个讲座视频播放列表,可以在YouTube 上找到。如果您对讲座感到困惑或讲得太快,请观看下一个视频的开头,其中回顾了上一讲座的概念,通常从新的角度或使用不同的插图解释事物,然后回答问题。

课程内容

本教程的所有内容都将在笔记本中呈现。具体目录如下:

0. Course Logistics

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_维基百科

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/0。课程物流.ipynb

视频地址:

https://www.youtube.com/watch?v=8iGzBMboA0Iindex=1list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

1. Why are we here?

我们将对数值线性代数中的一些基本概念进行高级概述。

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_维基百科_02

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/1。我们为什么在这里.ipynb

视频地址:

https://www.youtube.com/watch?v=8iGzBMboA0Iindex=1list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

2. Topic Modeling with NMF and SVD

我们将使用新闻组数据集来尝试识别不同文章的主题。我们使用术语-文档矩阵来表示文档中单词的频率。我们使用NMF 和SVD 进行因子分析。

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_sed_03

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/2。使用NMF 和SVD 进行主题建模.ipynb

视频地址:

https://www.youtube.com/watch?v=kgd40iDT8yYlist=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hYindex=2

https://www.youtube.com/watch?v=C8KEtrWjjyoindex=3list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

3. Background Removal with Robust PCA

SVD 的另一个应用是识别人群并去除监控视频中的背景。我们将介绍使用随机SVD 的稳健PCA。随机SVD 使用LU 分解。

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_维基百科_04

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/3。使用稳健的PCA.ipynb 进行背景去除

视频地址:

https://www.youtube.com/watch?v=C8KEtrWjjyoindex=3list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

https://www.youtube.com/watch?v=Ys8R2nUTOAkindex=4list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

https://www.youtube.com/watch?v=O2x5KPJr5aglist=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hYindex=5

4. Compressed Sensing with Robust Regression

压缩感知对于用更少的数据重建低辐射CT 扫描至关重要。在这里我们将学习这项技术并将其应用到CT 图像中。

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_github_05

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/4。具有鲁棒回归的CT 扫描压缩感知.ipynb#4.-具有鲁棒回归的CT 扫描压缩感知

视频地址:

https://www.youtube.com/watch?v=YY9_EYNj5TYlist=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hYindex=6

https://www.youtube.com/watch?v=ZUGkvIM6ehMlist=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hYindex=7

5. Predicting Health Outcomes with Linear Regressions

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_Jupyter_06

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/5。线性回归的健康结果.ipynb

视频地址:

https://www.youtube.com/watch?v=SjX55V8zDXIindex=8list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

6. How to Implement Linear Regression

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_Jupyter_07

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/6。如何实现线性回归.ipynb

视频地址:

https://www.youtube.com/watch?v=SjX55V8zDXIindex=8list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

7. PageRank with Eigen Decompositions

我们已将SVD 应用于主题建模、背景去除和线性回归。 SVD 与特征分解密切相关,因此我们现在将学习如何计算大型矩阵的特征值。我们将使用dbpedia 数据,这是一个维基百科链接的大型数据集,因为这里的主要特征向量给出了不同维基百科页面的相对重要性(这是Google 的pagerank 算法的基本思想)。我们将研究3 种不同的计算特征向量的方法,这些方法的复杂性不断增加(并且实用性不断增加!)。

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_github_08

笔记本地址:

https://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/7。 PageRank 与特征分解.ipynb

视频地址:

https://www.youtube.com/watch?v=AbB-w77yxD0list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hYindex=9

https://www.youtube.com/watch?v=1kw8bpA9QmQindex=10list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

8. Implementing QR Factorization

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_github_09

笔记本地址:

http://nbviewer.jupyter.org/github/fastai/数值线性代数/blob/master/nbs/8。实施QR Factorization.ipynb

视频地址:

https://www.youtube.com/watch?v=1kw8bpA9QmQindex=10list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY

课程特色

本课程采用自上而下的教学方式,与大多数数学课程的运作方式不同。通常,在自下而上的方法中,您首先学习将使用的所有单个组件,然后逐渐将它们构建成更复杂的结构。问题是学生常常失去动力,没有“大局观”,也不知道自己需要什么。

哈佛大学教授大卫珀金斯(David Perkins)有一本书《让学习变得全面》,其中他用棒球作为类比。在让孩子们玩游戏之前,我们不要求他们记住所有棒球规则并了解所有技术细节。相反,他们开始玩简单的感觉,然后随着时间的推移逐渐学习更多规则/细节。

如果您参加fast.ai 人工智能深度学习课程,那就是我们使用的课程。您可以在这篇博文或我在旧金山机器学习会议上的演讲中了解我的教学理念。这么说吧,如果你一开始不明白一切,别担心!你不应该这样。我们将从一些尚未解释的“黑匣子”或矩阵分解开始,然后我们稍后将进入较低级别的细节。

首先,关注要做什么,而不是要做什么。

最后,这是教程链接:

https://github.com/fastai/数值线性代数

程序员的线性代数教程!Jupyter  代码和视频可能更适合你_线性代数_10

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。