一、说明
一个最常见的分类算法.
- m : 训练集个数
n : 特征个数- 训练集: {(x(1),y(1)),...,(x(i),y(i)),...,(x(m),y(m))} .
- x(i)∈Rn, y(i)∈{0,1}
- 模型参数: θ=(θ0,θ1...,θα,...,θn) .
- 上标
(i)
表示第
i
个数据,下标
α 表示第 α 维特征。
y 的两个取值对应两种不同的分类。这里只说明二分类问题。
二、Logistic Function
又名 Sigmoid Function. 函数定义及其导数:
三、模型训练
Hypothesis Funcition (模型预测值):
y^=g(z)=g(∑αθαxα). (x0=1是偏置项)
其值的意义是数据点 x 属于分类 y=1 的概率。
Cost Function:
J(θ)=−1m∑i=1m[y(i)logg(z(i))+(1−y(i))log(1−g(z(i)))]+λ2∑α=1nθ2α.
最后一项是正则项,求和中不包含 α=0 对应的偏置项的参数。所以在下面的梯度中,偏置参数与其他参数的梯度有所不同。
Gradien:
∇μJ(θ)=−1m∑i[y(i)g′(z(i))g(z)+(1−y(i))−g′(z(i))1−g(z(i))]∂z(i)∂θμ+λ2∂∂θμ∑α=1nθ2α=−1m∑i[y(i)(1−g(z(i)))−(1−y(i))g(z(i))]x(i)μ+λ22θμ=−1m∑i(y(i)−y^(i))x(i)μ+λθμ
update:
θμ←θμ−η∇μJ(θ)
更新策略,具体有 BGD (batch gradient descent), SGD (stochastic gradient descent) .