Decision boundaries
motivation for non-linear transformation
在线性的 logistic 回归中,hw(x) 大于 0.5 时认为是,小于 0.5 时认为不是
有的时候数据分布不适合使用逻辑回归模型(比如二维平面上一类包住了另一类)
简单采用 adding polynomial terms 的方法并不合适,需要泛化性更强的方法。
解决办法:神经网络
universal approximation theorem 用简单的台阶函数去拟合(?)
Neural networks
人工神经网络
- algorithm that try to mimic the brain
- SOTA
- AlexNet: bid data & GPUs
- perform well on many tasks
artificial neurons
aka perceptron
y=1 if ∑i=1nwixi−θ≥0, y=0 if ∑i=0nwixi−θ<0
θ 被称作偏置 bias
w 是一种 template, if x matches the template well, the inner product will be larger than the threshold.
普通的线性函数,需要经过 non-linear 的 activation function (e. g. sigmoid).
input layer, hidden layer, output layer
前向传播
某一神经节点 a(1)=x
线性计算 z(j+1)=W(j)a(j)+b(j)
经过激活函数 a(j+1)=σ(z(j+!))
思考:如果 j 层有 sj 个神经元,j+1 层有 sj+1 个神经元。那么 W(j) 的大小是?
sj+1 行 ×sj 列
相当于输入 x 和第 W 矩阵的对应一行的内积加上偏置,再进入一个激活函数。
NNs learn useful features representations.
MLP multilayer perceptron 多层感知机,就是一个多层的全连接神经网络。
XNOR with NNs
nn can learn complex non-linear functions.
non-XOR tasks
Multi-class classification with NNs
task: learn to predict K classes from given training data
output layer: P(y=k∣x) k-th element of hW,b(x)
train label aka ground truth: one-hot vectors
Loss functions
cross-entropy for softmax regression
J(W)=−∑i∑k1{y(i)=k}log(P(y(i)=k∣x(i)))
loss of neural network
J(W,b)=−n1∑i∑kyk(i)log(hW,b(x(i))k)
Optimization - back propagation
Gradient computation 为什么要用反向传播?因为直接计算梯度很耗时
使用 quadratic loss 进行推导比较简单
J(W,b)=−2n1(hW,b(x(i))k−yk(i))2
需要计算 ∂Wi,j(l)∂J(W,b) 和 ∂bi(l)∂J(W,b)
第一步:计算的时候前向传播
第二步:算出 loss,根据损失函数进行求导(链式法则)
δj(l) 表示第 l 层第 j 个神经元的 error
δ(l) 是一个向量
假设神经网络有四层:
δ(4)=(a(4)−y(k))⊙σ′(z(4))
δ(i)=(W(i))Tδ(i+1)⊙σ′(z(i))
⊙ 表示矩阵或向量对应元素相乘
there is no δ(1),因为第一层代表输入 x
得到 ΔW 和 Δb:
ΔWij(l)=ΔWij(l)+aj(l)δi(l+1) for i,j in layers l=1⋯L−1
Δbi(l)=Δbi(l)+δi(l+1) for i in layers l=1⋯L−1
更新网络参数