首页 > 编程语言 >程序员的线性代数教程!Jupyter 代码和视频可能更适合你

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

时间:2023-09-01 16:02:29浏览次数:43  
标签:index www Jupyter list PLtmWHNX 程序员 线性代数 https com


红色石头的个人博客:www.redstonewill.com

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

https://github.com/fastai/numerical-linear-algebra

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

这份教程来自于旧金山大学的分析学硕士 2017 暑期课程(为毕业班致力成为数据科学家的学生开设的)。该课程使用 python 和 jupyter 笔记本进行教学,在大多数课程中使用 scikit learn 和 numpy 等库,以及在一些课程中使用 numba(一个将 python 编译为 C 以提高性能的库)和 pytorch(一个替代 numpy 的 GPU 库)。

笔记本附带了一个演讲视频的播放列表,可以在 YouTube 上找到。如果你对一个讲座感到困惑或者太快,请看下一个视频的开头,在这里会回顾上一个讲座的概念,经常从一个新的角度或不同的插图解释事情,然后回答问题。

课程内容

本教程所有的内容将以 notebook 来呈现,具体目录如下:

0. Course Logistics

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/0. Course Logistics.ipynb

视频地址:

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

1. Why are we here?

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

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/1. Why are we here.ipynb

视频地址:

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

2. Topic Modeling with NMF and SVD

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

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/2. Topic Modeling with NMF and SVD.ipynb

视频地址:

https://www.youtube.com/watch?v=kgd40iDT8yY&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY&index=2

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

3. Background Removal with Robust PCA

SVD 的另一个应用是识别人群并删除监控视频的背景。我们将介绍使用随机 SVD 的健壮 PCA。而随机 SVD 则采用 LU 因子分解。

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/3. Background Removal with Robust PCA.ipynb

视频地址:

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

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

https://www.youtube.com/watch?v=O2x5KPJr5ag&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY&index=5

4. Compressed Sensing with Robust Regression

压缩传感对于允许低辐射的 CT 扫描至关重要——图像可以用较少的数据重建。在这里,我们将学习该技术并将其应用于 CT 图像。

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/4. Compressed Sensing of CT Scans with Robust Regression.ipynb#4.-Compressed-Sensing-of-CT-Scans-with-Robust-Regression

视频地址:

https://www.youtube.com/watch?v=YY9_EYNj5TY&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY&index=6

https://www.youtube.com/watch?v=ZUGkvIM6ehM&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY&index=7

5. Predicting Health Outcomes with Linear Regressions

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/5. Health Outcomes with Linear Regression.ipynb

视频地址:

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

6. How to Implement Linear Regression

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/6. How to Implement Linear Regression.ipynb

视频地址:

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

7. PageRank with Eigen Decompositions

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

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

notebook 地址:

https://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/7. PageRank with Eigen Decompositions.ipynb

视频地址:

https://www.youtube.com/watch?v=AbB-w77yxD0&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY&index=9

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

8. Implementing QR Factorization

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

notebook 地址:

http://nbviewer.jupyter.org/github/fastai/numerical-linear-algebra/blob/master/nbs/8. Implementing QR Factorization.ipynb

视频地址:

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

课程特色

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

哈佛大学教授大卫·帕金斯(DavidPerkins)有一本书《使学习成为整体》,书中他将棒球作为类比。我们不要求孩子们在我们让他们玩游戏之前记住所有的棒球规则和理解所有的技术细节。相反,他们开始玩一种简单的感觉,然后随着时间的推移逐渐学习更多的规则/细节。

如果你上的是 fast.ai 人工智能深度学习课程,那就是我们使用的课程。你可以在这篇博文中听到我的教学哲学,或者我在旧金山机器学习会议上的演讲。这么说吧,如果你一开始不明白所有的事情,别担心!你不应该这样。我们将开始使用一些尚未解释的“黑盒”或矩阵分解,然后我们将在稍后深入讨论较低级别的细节。

首先,集中精力做什么,而不是做什么。

最后再附上教程链接:

https://github.com/fastai/numerical-linear-algebra


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


标签:index,www,Jupyter,list,PLtmWHNX,程序员,线性代数,https,com
From: https://blog.51cto.com/u_14481745/7323904

相关文章

  • 程序员平时喜欢干什么呢?
    看到有人问程序员都喜欢逛哪些论坛,那我就来总结一下。0.GitHub—开发者最最最重要的网站:https://github.com这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。1.StackOverflow—解决bug......
  • 程序员必读书单
    程序员必读书单一.入门书籍程序设计:1.基础理论:编码:隐匿在计算机软硬件背后的语言2.编程语言:3.C:C和指针4.C++:C++程序设计原理与实践5.Java:Java核心技术(第9版)6.C#:精通C#(第6版)7.JavaScript:JavaScriptDOM编程艺术(第2版)8.Python:Python基础教程(第二版)9.......
  • 更适合程序员宝宝的行测攻略(二 - 数量关系)
    数量关系等差数列求和公式:(上底+下底)×高/2=平均数×高=n×首项+(n(n-1))/2×公差通项公式:首项+(n-1)×公差某水果种植特色镇创办水果加工厂,从去年年初开始通过电商平台销售桃汁、橙汁两种产品。从去年2月开始,每个月桃汁的销量都比上个月多5000盒,橙汁的销量都比上个月......
  • 程序员常逛的17 个杀手级网站
    99.8%的人都不知道的网站,先收藏下吧~通过api,可随机获取Unsplash网站的图片https://source.unsplash.com/Notion小插件为您的Notion文档添加第三方应用程序嵌入或创建自定义嵌入插件https://apption.co/Carbon创建并共享源代码的精美图片。很适合开发者写博客时候,让你插......
  • 摸鱼神器:不藏了,程序员上班看小说工具,拿去吧不谢。
    前言大家好,我是一名工作快10年,但练习摸鱼时长两年半的Java程序员。我会唱,跳,rap,还会打篮球,特长是当小黑子。这两年半我一直用一款摸鱼神器来看小说,领导站我背后都发现不了。今天,我不藏了,分享给大家。千万要看到最后,我的摸鱼思路绝对会打开你的编程新思维。正文1、......
  • 《线性代数》5. 线性系统
    什么是线性系统系统这个概念有点抽象,之前学的矩阵就可以看作是一个系统,线性系统和初中学的线性方程组是比较类似的。比如:\(\begin{cases}x+2y=5\\3x+4y=6\end{cases}\)但这里的重点是线性,所谓线性就是,未知数只能是一次方项。像\(x^{2}-1=0\)、\(\sqrt{z}-4=0\)......
  • 你是《孤注一掷》程序员潘生,能逃出升天吗?
    正式上映第三天,《孤注一掷》破了10亿。在暑期档的大爆,在情理之中,却又超过了所有人的既定预期。我在看电影的过程中,最大的观感除了刺激外,是很深很深的后怕,为什么会后怕?因为我怕成为阿天或潘生,怕成为工厂里最底层的“猪仔”、“狗推”,怕从此被囚禁、压榨,被人用枪指着头。我觉得大部分......
  • 第二篇:程序员第一个代码Hello,World!
    第一个程序:Hello,World!新建一个文件夹,命名为code,用来存放代码。新建一个.java后缀的文件Hello.java用写代码软件打开Hello.java,编写代码如下:注意java必需分清大小写publicclassHello{ publicstaticvoidmain(String[]arge){ System.out.print("Hello,World!......
  • 一个程序员眼中的API调用(淘宝/天猫/1688/拼多多API)
    在程序员眼中,API调用是一种重要的编程概 念,它允许开发人员通过预先定义好的接口和规范,调用其他应用程序或服务的功能。API调用是现代软件开发中不可或缺的一部分,它使得开发人员能够快速构建出复杂的应用程序,同时避免了重复开发常见的功能模块。 以下是一个程序员眼中API调......
  • 作为程序员对 DNS了解到这个程度就够了,别再深入了!
    作为程序员对DNS了解到这个程度就够了,别再深入了!网管叨bi叨 2023-08-2912:17 发表于北京编者荐语:分享一篇DNS科普文,作为程序员我觉得如果能了解到这个程度就已经很可以了,再深入就属于浪费自己时间了,你还能上手设计电路咋地?以下文章来源于一枫说码 ,作者一枫说......