台大实分析单元 5 测度与积分 1
这一讲开始介绍测度与积分。
Unit 3 Measure and integration首先依旧给出以下记号:
\Omega :全集\\
2^{\Omega}:\Omega的幂集,i.e. 2^{\Omega}是\Omega的全体子集回忆:
\Phi \subset 2^{\Omega},\sigma: \Phi \to \overline {\mathbb{R}}^+\\
如果对于\varnothing \in \Phi, \sigma(\varnothing) =0,那么\sigma被称为集合函数\\
如果对于\Phi的子集A,B满足A\subset B,我们有\sigma(A) \le \sigma(B),那么\sigma是单调的\\
如果对于非递增序列\{ A_n\} \subset \Phi且\bigcup_n A_n \in \Phi,我们有\sigma(\bigcup_n A_n) =\lim_{n\to \infty} \sigma(A_n),那么\sigma是下连续的接着给出$\sigma$可加的定义:
\mathscr A是\Omega上的代数,\mu: \ ...
台大实分析单元 4 测度 2
这一讲继续讨论测度以及可测性,介绍了很多新的概念。
符号含义:
\Omega为全集,\Sigma为\Omega上\sigma代数 \\
\overline {\mathbb R} = \{-\infty\} \bigcup {\mathbb R} \bigcup \{\infty\}首先给出示性函数的定义:
A\subset \Omega,I_A(w)=\begin{cases}
1, & 如果w \in A\\
0, & 如果w \notin A
\end{cases}\\
称I_A为A的示性函数关于示性函数有如下命题:
I_A可测当且仅当A \in \Sigma这个结论只要根据定义验证即可。
关于$-\infty$和$\infty$的运算给出如下规则:
0\times \infty = 0\times (-\infty)=0 \\
如果a>0,a\times \infty = (-a)\times(-\infty) = \infty \\
如果a\alpha\}^C = \{f\le \alpha\} , \{f< \alpha\} =\bigcup_{n\in \ma ...
Coursera Cpp程序设计 week 6 Part 2
这一部分主要介绍函数模板和类模板。
课程地址:
coursera:C++程序设计
https://www.coursera.org/learn/cpp-chengxu-sheji
中国大学MOOC:程序设计与算法(三)C++面向对象程序设计
程序设计与算法(三)C++面向对象程序设计
函数模板和类模板函数模板函数模板样式:
template <class 类型参数1,class 类型参数2,……>
返回值类型 模板名 (形参表)
{
函数体
};
函数模板中可以有不止一个类型参数:
template <class T1, class T2>
T2 print(T1 arg1, T2 arg2)
{
cout<< arg1 << " "<< arg2<<endl;
return arg2;
}
不通过参数实例化函数模板:
#include <iostream>
using namespace std;
template <class T>
T Inc(T ...
t-SNE
t-SNE是一种降维算法,在可视化中经常使用,这里介绍其基本概念。
参考资料如下:
视频地址:
https://www.youtube.com/watch?v=4GBgqmq0XAY
介绍t-SNE之前,先介绍SNE
SNESNE的全称为Stochastic Neighbor Embedding,输入输出分别为:
X =[x_1,...,x_n] _{d\times n} \\
Y=[y_1,...,y_n]_{p\times n}一般来说,$p<d$,SNE算法将$X$映射到$Y$,起到了降维的作用,下面介绍具体算法:
对每个x_i,x_j,定义\\
p_{j|i} =\begin{cases}
\frac{\exp(-\frac{||x_i-x_j||^2}{2\sigma_i^2})}{\sum_{k\neq i}\exp(-\frac{||x_i-x_k||^2}{2\sigma_i^2}) } & i\ne j\\
0, & i= j
\end{cases} \\
对每个y_i,y_j,定义\\
q_{j|i} =\begin{cases}
\frac{\ex ...
Introduction to Deep Learning week 4
这一周主要介绍了Autoencoder,NLP以及GAN。
AutoencoderAutoencoders主要是将高维数据压缩,分为encode以及decode两个部分,如下图所示:
比较常用的就是PCA。
Deep autoencoder如果用更多层网络来训练的话,可以得到Deep autoencoder:
这里老师总结了需要autoencoder的原因:
压缩数据
降维
学习一些特征
Unsupervised pretraining
产生新数据
Natural language processing这一部分介绍了自然语言处理的基本概念。
Primer文本数据以下三部分组成:
Text:
A sequence of tokens(words).
Token/word:
A sequence of characters.
Character:
An atomic element of text. ¯_(ツ)_/¯
来看一个具体例子:
Bag of Words(BoW)文本处理的关键是把word转化为向量,方法叫做Bag of words:
...
Unit 4 Trees
这一周主要介绍了Cart以及randomForest的使用。
课程地址:
https://www.edx.org/course/the-analytics-edge
setwd("E:\\The Analytics Edge\\Unit 4 Trees")
stevens = read.csv("stevens.csv")
查看数据的结构。
str(stevens)
'data.frame': 566 obs. of 9 variables:
$ Docket : Factor w/ 566 levels "00-1011","00-1045",..: 63 69 70 145 97 181 242 289 334 436 ...
$ Term : int 1994 1994 1994 1994 1995 1995 1996 1997 1997 1999 ...
$ Circuit : Factor w/ 13 levels "10t ...
Neural Networks for Machine Learning Lecture 15
课程地址:https://www.coursera.org/learn/neural-networks
老师主页:http://www.cs.toronto.edu/~hinton
备注:笔记内容和图片均参考老师课件。
这周介绍了pre-train,这里主要回顾下选择题。
选择题 1The objective function of an autoencoder is to reconstruct its input, i.e., it is trying to learn a function $f$, such that $f(x) = x$ for all points $x$ in the dataset.It makes sense to learn a mapping from $x$ to some target $t$ for solving a classification or regression problem, but why do we want to learn a mapping that takes $x$ to $x$ ? It seems lik ...
斯坦福算法专项课程Course2 week1内容回顾
这一周的内容主要介绍了图算法。
课程地址:https://www.coursera.org/specializations/algorithms
Course 2 Week 1讨论之前,先规定记号的表示方法:令$n=$图中节点的个数,$m=$图中边的个数。
Introduction to Graph Search先来看最基本的图搜索算法:
这个图所搜算法基本上是对所有图算法的概括,下面介绍更具体的图算法。
BFSBreadth-First Search (BFS)有几个特点:
分层探索节点
可以计算最短路径
计算无向图的connected components
接下来来看具体算法:
Algorithm
来看一些BFS的特点。
Basic BFS Properties
Application: Shortest PathsBFS的一个应用是计算最短路径,只要在运行BFS算法同时计算层数即可。
Application: Undirected Connectivity计算connected components只要运行多次BFS即可。
DFSDepth-First Search ...
Introduction to Deep Learning week 3
第三周的内容介绍了CNN,这里主要回顾CNN的基本概念。
Introduction to CNNConvolutions如果使用第二周的MLP来进行图像识别,那么结果会和物体在图像中的位置有关,如下图:
所以我们不能直接使用MLP,解决的办法是卷积(Convolutions):
Padding在做卷积运算的时候,处于角落位置的像素进行卷积运算的次数很小,为了解决这个问题,我们可以使用Padding,在原图片周围填充一些像素:
Backpropagation for CNN由于卷积运算会对许多像素进行重复运算,所以CNN中的反向传播和MLP中反向传播略有不同,需要进行累加:
StrideStride为步长,可以理解为kernel每次平移的像素数量,从一个例子中来看一下:
增加Stride主要是为了减少输出的维度。
PoolingPooling也是一种减少输出维度的方法,相当于直接把某些像素进行压缩,例如把每$2\times2$个像素取其中的最大值,来看一个例子:
Modern CNNs由于当$x$很大时,$\frac{1}{1+e^{-x}}$和$\tanh(x)$的梯度很 ...
Unit 3 Logistic Regression
这一章主要介绍了Logistic Regression,这里回顾下基本操作。
课程地址:
https://www.edx.org/course/the-analytics-edge
读取数据
setwd("E:\\The Analytics Edge\\Unit 3 Logistic Regression")
framingham = read.csv("framingham.csv")
Randomly split the data into training and testing setslibrary(caTools)
set.seed(1000)
split = sample.split(framingham$TenYearCHD, SplitRatio = 0.65)
划分测试集,训练集
train = subset(framingham, split==TRUE)
test = subset(framingham, split==FALSE) ...
Coursera Cpp程序设计 week 6 Part 1
这一周的内容比较多,这里先回顾输入输出有关的内容。
课程地址:
coursera:C++程序设计
https://www.coursera.org/learn/cpp-chengxu-sheji
中国大学MOOC:程序设计与算法(三)C++面向对象程序设计
程序设计与算法(三)C++面向对象程序设计
输入和输出输入输出相关的类和输入输出相关的类由下图概括:
istream是用于输入的流类, cin就是该类的对象。
ostream是用于输出的流类, cout就是该类的对象。
ifstream是用于从文件读取数据的类。
ofstream是用于向文件写入数据的类。
iostream是既能用于输入,又能用于输出的类。
fstream 是既能从文件读取数据,又能向文件写入数据的类。
标准流对象
输入流对象: cin 与标准输入设备相连
输出流对象: cout 与标准输出设备相连
cerr 与标准错误输出设备相连
clog 与标准错误输出设备相连
缺省情况下,以下三者一样:
cerr << "Hello,world" << endl; ...
斯坦福算法专项课程Course1 Final Exam
这里回顾下第一门课的期末考试。
课程地址:https://www.coursera.org/specializations/algorithms
选择题 1回想一下我们在QuickSort和RSelect中使用的Partition子例程。假设以下数组刚刚围绕某个pivot元素分区:3,1,2,4,5,8,7,6,9
哪些元素可能是pivot元素?(提示:检查所有适用的,可能有多种可能!)
3
5
4
2
9
pivot左边的元素要小于pivot,右边的元素要大于pivot,所以4,5,9均满足条件
选择题 2这是一个十个整数的数组:5 3 8 9 1 7 0 2 6 4
假设我们在这个数组上运行MergeSort。在最外面的两个递归调用完成之后(即,在最后一个Merge步骤之前),部分排序数组的第7个位置的数字是多少?(当我们说“第7”位置时,我们是计算从1开始的位置;例如,输入数组在其第7位有一个“0”。)
1
3
4
2
最后一轮递归之前,数组的次序应该为1,3,5,8,9,0,2,4,6,7,所以第7个位置的元素为2
选择题 3MergeSort的渐近最坏情况运行时间是 ...