Linear regression
yi=β1xi1+⋯+βpxip+εi=xiTβ+εi,i=1,…,n,y=y1y2⋮yn,X=x1Tx2T⋮xnT=x11x21⋮xn1⋯⋯⋱⋯x1px2p⋮xnp,β=β1β2⋮βp,ε=ε1ε2⋮εn.
写成矩阵性质,为:y=Xβ+ε
Least Square Estimation
目标为:minβεTε=(Y−Xβ)T(Y−Xβ)⟷minW∑t∥et(xt,w)∥2
因此对向量 β 求导:
∂β∂εTε=∂β∂(Y−Xβ)T(Y−Xβ)=∂β∂(YTY−YTXβ−βTXTY+βTXTXβ)=−2XTY+2XTXβ=0⇒β=(XTX)−1XTY
其中 X+≡(XTX)−1XT 称为伪逆(psudo-inverse),因为如果 X 为满秩方阵,X+=X−1。
Question
- Compare the definitions of error in PCA and linear regression
- PCA 考虑垂直投影,即误差和所有变量有关。没有解析解。
- Linear Regression 只考虑 y 方向,各变量解耦。有解析解。
Logistic regression
Use Logistic Function
考虑离散的量。与 Linear regression 预测出结果不同,Logistic regression 预测 Y=0,Y=1 的概率。此处用到 Sigmoid 函数 1+e−x1。
p(x)=P(Y=1∣x)=1+eβ0+β1Xeβ0+β1X=1+e−(β0+β1X)1
⇒log(1−p(x)p(x))=β0+β1X
Logistic Regression with Multiple Variables and Class
P(Y=k∣X)=1+∑i=1neβ0i+β1iX1+⋯+βpiXpeβ0k+β1kX1+⋯+βpkXp
Regression Regularization
Logistic regression 虽然用到了非线性的函数,但是在数据划分方面起到的是线性的效果。因此要做非线性划分还需要引入其他方法。而非线性方法可能会导致过拟合,此时需要 regularization。
J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
此处的 θj2 为 L2-norm。
Several types
- L1 (LASSO) (L1-norm)
- L2 (Ridge) (squared L2-norm)
- 让所有的参数都变小。
- 用的最多,因为 L1 在 0 点不可导。
- L2 可以和 L1 同时使用。
可见该文章Regularized least squares 一节。
Neural Networks
Overview of neural networks
The main aim of neural networks:希望神经网络能够像大脑一样抽取特征。
History
- 1943:美国心理学家McCulloch和数学家Pitts提出神经元数学模型(M-P)
- 1949:心理学家Hebb提出了改变神经元间连接强度的Hebb规则
- 1957:计算机科学家Rosenblatt用硬件完成了最早的神经⽹网络模型,称之为感知器(Perceptron),模拟生物的感知和学习能⼒。
- 1969:Minskey和Papert发表了《Perceptron》⼀一书指出了Perceptron无科学价值而言,连XOR逻辑分类都做不到,只能作线性划分。
- 1982:加州大学物理学家Hopfield提出模拟人类记忆的递归神经网络模型,并
⽤电路实现。
- 1985:Hinton和Terry Sejnowski 提出玻尔兹曼机(Boltzman机)模型, 表达随机过程形成结构的过程。
- 1986:Rumelhart, Hinton等提出了反向传播算法(BP),掀起十年年高潮
- 1988:蔡少棠提出了了细胞神经网络模型
- 1990s:神经网络再次衰落
Perceptron model
M-P neuron model:

Perceptron 就是 Input layer + M-P neuron (output)

Perceptron 可以做一些逻辑运算:
XOR
单个 perception 做的是线性的划分,因此无法解决 XOR 的问题。

但是使用 two-layer perception 即可。

Perceptron learning
wi←wi+Δwi,Δwi=η(y−y^)xi,
如果线性可分,则能收敛;反之不能。
P←inputswithlabel1;N←inputswithlabel0;Initialize w randomly;while !convergence doPick random x∈P∪N;if x∈Pandw.x<0 thenw=w+x;endif x∈Nandw.x≥0thenw=w−x;endend一
该算法迭代的过程如下图所示:

Neural network
The multilayer perceptron
Function by neural network
- recursive nature:
aj=i=1∑Dwji(1)xi+wj0(1),j=1,⋯,Mzj=h(aj),j=1,⋯,M
- sigmoid/tanh function
- output layer
- 分类用 softmax
双层的神经网络可以写成如下形式:
yk(x,w)=σ(k=1∑Mwkj(2)h(i=1∑Dwji(1)xi+wj0(1))+wk0(2))
A Reassuring Theorem
理论上两层的神经网络就可以拟合任意连续函数。(只要神经元足够多)
Training the neural networks – Backpropagation (BP) algorithm
想要获得最优的参数,可以求解其导数为 0 的方程,但是实际上求解非常困难,因此使用梯度下降。此时需要考虑如何计算梯度。
在网络有很多层的时候,假设需要求某个 wij 的梯度,其中 i,j 分别代表相邻两层的节点,目标函数为 En。
∂wij∂En=∂aj∂En⋅∂wij∂aj
根据 aj 的表达式,可知 ∂wij∂aj=zi,同时定义 ∂aj∂En≡δj。接下来可以使用递归的形式求出 δj,假设现在在第 l 层,那么为 δj(l)。
δj(l)=∂ajl∂En=k∑∂akl+1∂En⋅∂aj(l)∂ak(l+1)=k∑δk(l+1)wkjh′(aj(l))=h′(aj(l))k∑δk(l+1)wkj
由此得到了递推式。而在最后一层,假设损失函数为 MSE,则有
δk=∂ak∂En=yk−tk
What is wrong with back-propagation?
反向传播存在
- 计算量大,计算较慢
- 层数多会导致梯度消失
- 容易陷入局部最优解
等问题
现在的一种解决思路是,先使用 unsupervised learning 进行学习,这里的 unsupervised learning 的方式为构建重建网络,然后逐层学习参数。最终使用带 label 的数据进行微调。
Regularization in Neural Nets
神经网络的过拟合与隐藏节点的数量相关。下图展示测试集上的误差与隐藏节点数量的关系:

因此常用一些正则化手段缓解过拟合,比如
E(w)=E(w)+21wTw
相当于加了一个高斯先验。
Support Vector Machine (SVM)