机器学习以及计算机公开课汇总帖
之前在简书上发过两个帖子,分别总结了CS以及机器学习的课程资源,现在也学习了几个月,就把学完的记录在这里,部分课程做了笔记的也会列出。
系统自学计算机课程:
https://www.jianshu.com/p/8f2646a825e8
机器学习资料:
https://www.jianshu.com/p/dc9020fd03b1
计算机计算机基础
哈佛大学 CS50
https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x
如果0基础想要学习计算机知识,非常推荐这门课,课程生动有趣。这门课面非常广,介绍了C语言,SQL,HTML,Python以及Javascript,如果时间有限,可以着重学习C语言部分。
Nand to Tetris
https://www.coursera.org/learn/build-a-computer
https://www.coursera.org/learn/nand2tetris2
https://www.nand2tetris.org/
非常非常好的课 ...
未完成的课程汇总
由于时间或者个人原因,在学习的过程中难免有没有学习完的课程,这里会将其列出,方便后续填坑。
未完成列表
MIT 6.172(完成4讲)
MIT 概率课程
台交大信息论(完成10讲)
台交大随机过程(完成6讲)
Information Theory, Inference and Learning Algorithms(完成8讲)
MIT 18.605 Matrix Methods in Data Analysis, Signal Processing, and Machine Learning(上传6讲,完成到21讲)
CS236 Deep Generative Models(完成8讲)
CS234 强化学习(完成1讲)
EE364 凸优化(完成8讲)
Deep Learning for Human Language Processing (完成语音部分)
斯坦福算法专项课程(完成9周内容)
博客主题配置
记录博客主题的配置以及相关优化。
博客内容整理
记录对博客内容整理的过程。
变分法 Lecture 2 基本原理以及欧拉-拉格朗日方程
这一讲主要介绍変分学的基本原理以及欧拉-拉格朗日方程。
参考资料:
公开课视频
公开课主页
变分法及有限元.pdf)
变分法基础%E3%80%8B%E8%80%81%E5%A4%A7%E4%B8%AD.pdf)
这一部分开始正式讨论变分法,在讨论之前需要给出几个定义。
函数类满足某种共同性质的函数构成的集合称为函数类,常见的函数类有:
$C[a,b]$:在区间$[a, b]$上连续的函数全体;
$C^n[a,b]$:在区间$[a, b]$上$n$阶导函数连续的函数全体;
0阶导函数为函数本身,即$C^0[a,b]=C[a,b]$;
在变分法中,主要讨论的是$C^1[a,b]$。
泛函记$F=\{y(x)\}$为某个函数类,如果对于$\forall y(x)\in F$,变量$J$都有一个确定的值与之对应,则称$J$为函数$y(x)$的泛函,记为$J[y(x)]$,$y(x)$称为泛函$J$的宗量。
例子
T=\int_{0}^1 y(x) dx, y\in C[0, 1]变分考虑函数类:
F=\{y| a\le x \le b , y(a)=y_0(a), y(b)= ...
变分法 Lecture 1 变分学的几个经典例子
这段时间主要精力都在炼丹,魔改网络结构上,公开课不知不觉落下许多,最近准备继续投入精力进行学习,主要集中于一些数学基础课程上,最先开始的是変分学,这里列出一些学习资料:
公开课视频
公开课主页
变分法及有限元.pdf)
变分法基础%E3%80%8B%E8%80%81%E5%A4%A7%E4%B8%AD.pdf)
変分学是研究泛函极值的问题,这里不从定义出发,从几个经典例子开始进入介绍。
例1:最速降线假设有不在同一铅垂线的两点$A$和$B$,在所有连接$A$和$B$的平面光滑曲线中,找出一条曲线,使得质点从$A$到$B$的时间最短(仅受重力的情况下):
假设按上图方式建系,并假设$A(0, 0), B(x_1, y_1)$。根据能量守恒,曲线上任意一点$(x,y)$的速度为:
\begin{aligned}
m g y &=\frac{1}{2} m v^{2} \\
v&=\sqrt{2gy}
\end{aligned}那么:
dt = \frac{ds}{v}=\frac{\sqrt{1+(y')^2}}{\sqrt{2gy}} dx总时间为:
T=\int_{0}^ ...
Performer和RFA的理论以及实现
参考代码:
https://github.com/lucidrains/performer-pytorch
https://github.com/Noahs-ARK/RFA
参考论文:
Rethinking Attention with Performers
Random Feature Attention
Orthogonal Random Features
概述:
待补充
符号参考:
https://doraemonzzz.gitbook.io/transformer_evolution_paper/notations
动机Softmax Attention的时间复杂度为$O(n^2d)$,其中$n$为序列长度,$d$为特征维度。有很多工作来改进这点,其中Performer和RFA都是通过对Softmax中Exp函数的近似来做到这点,下面会通过原理,实现的角度进行分析。
原理Softmax Attention(单头情形,忽略缩放因子$\sqrt d$)的计算公式为:
\begin{aligned}
\mathbf{o}_i&=\sum_{j=1}^n\frac{ ...
解封前的纪念
明天开始上海逐步恢复正常了,正好5月没写过博客,这里写篇博客做个纪念。
这次居家从3月14日开始,到今天正好78天,明天开始上海逐步恢复正常,总算给这段时间的居家办公画上句号了。说来唏嘘不已,去年也有一次封控经历:去年11月22日出去旅游,11月26日当地爆发疫情,在那边隔离到12月10日,当时还以为14天已经是极限,没想到这次直接在家呆了快80天,希望这次是最后一次。
回看上次发布博客,已经快过了两个月,有点小荒废,其实这段时间也没闲着,一直在炼丹,只不过之前一直学习的公开课确实落下了,6月开始一切要恢复正常了,过两天写个后续计划。
回想一下,整个封控期间分为三个阶段:
4月上旬之前,还是按照之前的节奏,学习公开课,炼丹,期待4月解封;
4月上旬到5月上旬,公开课完全不看了,彻底摆烂,基本上都在炼丹,然后整个人心态很差;
5月之后,彻底麻了,但心态也好了很多,这段时间完全没去想公开课这回事,炼丹,写论文,投稿等等;
希望一切都会更好吧。
OSTEP Chapter 18 回顾
这里回顾第18章,本章介绍了分页。
书籍介绍:
https://book.douban.com/subject/34994608/
学习资料:
https://pages.cs.wisc.edu/~remzi/OSTEP/
https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese
https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES
第18 章 分页:介绍内容回顾
分页:把进程地址空间分割成固定大小的单元,每个单元称为一页;
物理内存看成是定长槽块的阵列,叫作页帧(page frame),每个页帧包含一个虚拟内存页;
例子:
页表(page table):记录地址空间的每个虚拟页放在物理内存中的位置
主要作用是为地址空间的每个虚拟页面保存地址转换(address translation)
将虚拟地址映射到物理地址
拥有的内容:
映射关系
有效位(valid bit)用于指示特定地 ...
OSTEP Chapter 17 回顾
这里回顾第17章,本章介绍了空闲空间管理。
书籍介绍:
https://book.douban.com/subject/34994608/
学习资料:
https://pages.cs.wisc.edu/~remzi/OSTEP/
https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese
https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES
第17 章 空闲空间管理内容回顾
管理空闲空间的数据结构被称为空闲列表(free list)
两种碎片
外部碎片:物理内存充满了许多空闲空间的小洞,因而很难分配给新的段,或扩大已有的段。
内部碎片:分配程序给出的内存块超出请求的大小,在这种块中超出请求的空间(因此而未使用)就被认为是内部碎片。
底层机制:
分割与合并
追踪已分配空间的大小
使用头块
typedef struct header_t {
int size;
int ...
OSTEP Chapter 16 回顾
这里回顾第16章,本章介绍了分段。
书籍介绍:
https://book.douban.com/subject/34994608/
学习资料:
https://pages.cs.wisc.edu/~remzi/OSTEP/
https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese
https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES
参考资料:
https://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf
第16 章 分段内容回顾
分段:
在MMU中引入不止一个基址和界限寄存器,给地址空间内的每个逻辑段(segment)一对
端:
地址空间里一个连续定长的区域
典型的地址空间里有3个逻辑不同的段:代码,栈,堆
段错误(segmentation fault):
在支持分段的机器上发生了非法的内存访问
判断引用了哪个段 ...
OSTEP Chapter 15 回顾
这里回顾第15章,本章介绍了机制:地址转换。
书籍介绍:
https://book.douban.com/subject/34994608/
学习资料:
https://pages.cs.wisc.edu/~remzi/OSTEP/
https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese
https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES
参考资料:
https://github.com/joshuap233/Operating-Systems-Three-Easy-Pieces-NOTES/blob/main/15.%E7%AC%AC%E5%8D%81%E4%BA%94%E7%AB%A0-%E6%9C%BA%E5%88%B6:%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2/%E9%97%AE%E9%A2%98%E7%AD%94%E6%A1%88.md
第1 ...