Lecture 4 Least squares and Optimization
Lecture 4 Least squares and Optimization1. 最小二乘估计
最小二乘估计(上节课没讲的):
如果列向量都是线性无关的找到最小化残差和的$w$是:
\begin{aligned}
\hat {\underline w}&=(X^TX)^{-1}X^Ty
\\ \Rightarrow \hat {\underline y}&=X \hat {\underline w}
=X(X^TX)^{-1}X^Ty
\end{aligned}\tag{1}其中,$(X^TX)^{-1}X^T$又叫pseudo-inverse, 伪逆。
$P_{Xy}$投影$y$到$X$上。
2. 最小二乘法分类
二分类就是把$$输入到sign函数得到其输出。
3. 优化方法
2范数或者欧几里得范数:
\lVert x\rVert^2_{2} = \sum^n_{i=1}x_i^2=x^Tx=\tag{2}所以:
\begin{aligned}
arg \ min_w\lVert y-Xw\rVert^2_2 &=arg \ min_w \ (y-Xw)^T(y- ...
Lecture 3 Least squares and geometry
Lecture 3 Least squares and geometry1.最小二乘法目标:从一些特征向量$x$学到预测标签$y$。建立一个线性模型,
\begin{aligned}
\hat y_i &= \left \langle X_i, w\right \rangle=X_i^Tw=w^TX_i\\
&=w_1X_{i1} + w_2X_{i2}+\cdots+w_pX_{ip}
\end{aligned}\tag{1}需要找到$w$来使得$\hat y_i = y_i \quad for i = 1, 2, \cdots, n$
1.最小二乘法怎么来的?
因为残差residual error为:
r_i=r_i(\underline{w})=y_i - 找到最小化残差和的$w$。(式2中第一个式子,第二个式欧式距离)
\begin{aligned}
\lVert r_i \rVert^2_{2} &= \sum ^n _{i=1}r_i^2
\\
\lVert r_i \rVert_{2}&=\left(\sum ^n _{i=1}r_i^2 \right)^{ ...
Lecture 2 Vectors and Matrices in Machine learning
Lecture 2 机器学习中的向量和矩阵1. 线性模型
我们可以理解$X_i \in \mathbb{R}^p$为$p$个一系列的数值特征,一般写作一个列向量。
{X}_{i}=\left[\begin{array}{c}
X_{i 1} \\
x_{i 2} \\
\vdots \\
X_{i p}
\end{array}\right] \in \mathbb{R}^{p}\tag{1}从训练数据,对于新的新样本$X_0$学习如何预测标签(或者目标值)$\hat{y}$。
例如线性模型,
\begin{array}{l}
\hat{y}=w_{1} x_{01}+w_{2} x_{02}+\cdots w_{p} x_{0 p} \\
w_{1}, \ldots, w_{p}=\text { weights to be learned from data }
\end{array}\tag{2}using training data to find $W$, such that} $\hat{y_i}\approx y_i, \ for \ i=1, \ldots, n $ . ...
Resnet 网络
1. Resnet 架构ResNet原文: Deep Residual Learning for Image Recognition
残差网络在Abstract中, 就说到更深的网络更难训练,并且会出现退化现象。而残差网络更容易优化,并且增加网络深度能提高准确率。
We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth.
如上图所示,当模型深度增加时,模型的test error却变大了,这就是“退化”问题。
当更深的网络能够开始收敛时,暴露了一个退化问题:随着网络深度的增加,准确率达到饱和(这可能并不奇怪)然后迅速下降。意外的是,这种下降不是由过拟合引起的,并且在适当的深度模型上添加更多的层会导致更高的训练误差。
When deeper networks are able to start converging, ...
Lecture 1 Introduction
Lecture 1 Introduction本节最主要就是引入机器学习的元素。教授Rebecca Willett 用一个区分笑脸的任务介绍了机器学习的基本步骤。
想象我们想用一张脸部图片来决定这个人是否微笑。
关键想法:我们用一个模型表示脸是否在笑——一种数据的数学表示。
基本步骤:
收集原始数据——例如, 脸部图像
预处理——不丢失相关信息的条件下,做数据变换来简化后面操作。例如,剪裁图像到标准尺寸,一张图一张脸,脸部在图像中间。
特征提取——通过提取模型相关的特征或特性来简化数据(基于深度神经网络的现代图像识别系统这个步骤不是必须的)。例如,每对脸部坐标的距离。
生成训练样本——我们用来学习模型的大量样本的集合。
$(x_i, y_I) \quad for \quad i=1, \ldots, n$ 其中,
n : 训练样本数目 \\
y_i : 第i个样本标签\\
x_i : 第i个样本特征\\
x_{ij} :第个样本的第j个特征
选择loss function——衡量我们模型预测跟真实值之间的接近程度。 loss = \sum^n_{i=1}\ ...
5. 指针
5. 指针1. 指针的引用123456789101112131415161718192021# include <iostream>using namespace std;int main(){ int a = 112, b = 1; float c = 3.14f; int* d = &a; float* e = &c; cout << d << endl; cout << e << endl; cout << (*d )<< endl; cout << (*e) << endl; return 0;}OUT:0xa1fe040xa1fe001123.14
2. 左值和右值一般说法,编译器为其单独分配了一块存储空间,可以取其地址的,左值可以放在赋值运算符左边;
右值是数据本身,不能取到其自身地址,右值只能赋值运算右边。
具体来说:
左值最常见的情况如函数和数据成员的名字;
右值是没有标识 ...
VGG 网络
1. VGG结构:VGG 原文在:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
在ABSTRACT 中:
Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small ( 3 × 3) convolution filters, which shows that a significant improvement on the prior-art configurations can be achieved by pushing the depth to 16–19 weight layers.
就说VGG最大特点是用小卷积滤波器(3x3),16-19层, Small filters, Deeper networks
VGG16 结构示意图(对应论文Config D):
VGG16结构示意图
...
2. 树和森林
2. 树和森林1. 树和森林定义树:是$n(n \ge 0)$ 个结点的有限集。若$n=0$, 称为空树;
若$n=0$, 则是空树
若$n \gt 0$ , 有且仅有一个特定的称为根(root)的结点;
其余结点可以分为$m(m\ge0)$个互不相交的有限集$T1, T2, \cdots, Tm$
森林: 是$m (m \ge 0)$棵互不相交的树的集合。
2. 树的存储结构
双亲表示法,找双亲简单,找孩子难。
实现:定义结构数组,存放树的结点,每个结点含两个域
数据域:存放结点本身信息
双亲域:指示本结点的双亲节点在数组中的位置
如下表所示,表示出树的结构如图所示。其中 -1代表没有双亲节点
数组索引
存储数据
双亲节点在数组中的位置
0
R
-1
1
A
0
2
B
0
3
C
0
4
D
1
5
E
1
6
F
3
7
G
6
8
H
6
9
K
6
孩子链表
把每个节点的孩子节点排列起来,看成是一个线性表,用单链表存储n个节点有n个孩子链表(叶子的孩子链表 ...
1. 二叉树
1. 二叉树1.术语
根节点:非空树中无前驱节点的节点
节点的度:节点拥有的子树数
树的度:树内各节点的度的最大值
节点的子树的根称为该节点的孩子,该节点称为孩子的双亲;
节点的祖先:从该节点到根所经分支上的所有节点
节点的子孙:以某一节点为根的子树中的任一节点。
树的深度:树中节点的最大高度
2.二叉树应用
数据压缩
二叉树求解表达式的值
3. 二叉树的定义二叉树是n(n≥0)个节点的有限集,它或者是空集(n=0),或者由一个根节点及两颗互不相交的分别称作这个跟的左子树和右子树的二叉树组成。
特点:
每个节点最多有俩孩子(二叉树中不存在度大于2的节点)
子树有左右之分,其次序不能颠倒
二叉树可以是空集合,根可以有空的左子树或空的右子树
注: 二叉树不是树的特殊情况,它们是两个概念。
二叉树要区分左子树和右子树。树的话只有一个孩子时无须区分左右。
4.二叉树的性质和存储结构性质1:在二叉树的第i层上最多有$2^{i-1}$个节点($ i \ge 1$)。第i层上至少有1个节点
性质2:深度为k的二叉树至多有$2^k - 1= \sum_{i=1}^k 2^{i-1}$个节点, ...
4. 二叉树
2. 二叉树1. 二叉树基本概念1. 节点
节点
根节点
父节点
子节点
兄弟节点
上图中,A 节点就是 B 节点的父节点,B 节点是 A 节点的子节点。B、C、D 这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。我们把没有父节点的节点叫作根节点,也就是图中的节点 E。我们把没有子节点的节点叫作叶子节点或者叶节点,比如图中的 G、H、I、J、K、L 都是叶子节点。
一棵树没有任何节点,称为空树
一棵树可以只有一个节点,也就是根节点
子树, 左子树, 右子树
2. 度
节点的度(degree): 子树的个数
树的度: 所有节点度中的最大值
叶子节点(leaf): 度为0的节点
非叶子节点:度不为0的节点
3. 层数 和 深度
层数:根节点在第一层, 根节点的子节点在第二层,以此类推(也有从0层计算)
节点的深度:从根节点到当前节点的唯一路径上的节点总数
节点的高度:从当前节点到最远叶子节点的路径上的节点总数(边数)
树的深度:所有节点深度中的最大值
树的高度:所有节点高度的最大值
树的深度等于树的高度
4. 有序树、无序树、森林
有序树
树种任 ...