Machine Learning and Deep earning 简介

1-Layer Nets (Logistic Regression)
一般化的函数模型是$f(x)=\sigma(w^Tx+ b)$ 参数 $w\in R^d$,b是偏差项

1-Layer Nets (Logistic Regression)

一般化的函数模型是
$$f(x)=\sigma(w^Tx+ b)$$
参数 $w\in R^d$,b是偏差项

$\sigma$ 是非线性的方程,一般是sigmod 函数: $\sigma (x)=1 / (1+exp(-x))$.
有的时候也可以写成 $f(x)=\sigma (w^T x)$, 当 $w=[w,b]$ 和 $x=[x,1]$

一些其他的非线性方程,比如: $f(x)=(e^x-e^{-x}) / (e^x+e^{-x}))$

以下分别是sigmod函数和tanh的函数图像:

$tanh(z)$函数是sigmod函数的变种。它的取值范围是[-1,1],而sigmod函数是[0,1].
最后要说明的是,有一个等式我们以后会经常用到:如果选择 $ f(z) = 1/(1+\exp(-z)) $ ,也就是sigmoid函数,那么它的导数就是 $ f’(z) = f(z) (1-f(z)) $ (如果选择tanh函数,那它的导数就是 $ f’(z) = 1- (f(z))^2$ ,你可以根据sigmoid(或tanh)函数的定义自行推导这个等式。

sigmoid激活函数的值域为 [0,1];如果我们使用双曲正切型激活函数,那么应该选用 -1 和 +1 作为标签

Training 1-Layer Nets: Gradient

我们假定使用最下二乘误差函数 Loss(w)
$$Loss(w) = 1/2 \sum_m(\sigma(w^Tx^{(m)}) - y^{(m)})^2$$
梯度是:
$$\nabla_mLoss=\sum_m\sigma(w^Tx^{(m) }- y^{(m)})\sigma’(w^Tx^{(m) })x{(m)}$$
可以计算出$\sigma (x)=1 / (1+exp(-x))$,$$\sigma ‘(x)=\sigma(x) (1-\sigma(x))$$
$\nabla_mLoss$ 写成如下的形式:
$$\nabla_mLoss=\sum_mError^{(m)}\sigma’(in^{(m)})x^{(m)}$$

算法

1.Gradient decent (GD)

  1. 初始化参数W
  2. 计算梯度$$\nabla_mLoss=\sum_mError^{(m)}\sigma’(in^{(m)})x^{(m)}$$
  3. $w\longleftarrow w-\gamma(\nabla_mLoss)$, $\gamma$是learning rate
  4. 重复2,3步骤直到调节满足(收敛条件)

随机梯度下降 (SGD)

  1. 初始化参数W
  2. 对于每一个训练样本$(x^{(m)},y^{(m)})$
  3. $w\longleftarrow w-\gamma(\nabla_mLoss)$,$\gamma$ 是learning rate
  4. 重复2,3步骤直到调节满足(收敛条件)