52nlp的笔记,我的笔记中主要讨论偏微分方程的推导
分类算法 逻辑回归
分类问题的y取值是在一定范围
y = {0,1}或者y={0,1,2,3}
这种情况下线性回归方程并不适用,这时候可以采用逻辑回归算法
逻辑回归Logistic Regression
这样就使得 0≤hθ(x)≤1 ,这里 hθ(X) 的定义是
也就是,对给定的x, θ ,y=1的概率
决策边界Decision Boundary
如果我们假定阈值为0.5 ,也即
hθ(X)≥0.5
时,y=1;
hθ(X)≤0.5
时,y=0;
那么
hθ(X)=0.5
,也即
ΘTX=0
是决策边界。
代价函数 Cost Function
对于逻辑回归问题,我们选择对数损失函数/对数似然损失函数作为代价函数,这样的代价函数是凸函数,有global optimum 而不是很多个local optimum
简化的代价函数
总代价函数为
将代价函数合并成一个函数
这其实就是最大似然函数的形式
从而总的代价函数可以表示为
梯度下降算法
minθJ(Θ):
Repeat{
Θj:=Θj−α∂∂θjJ(Θ)
(simutaneously undate all
θj
)
}
其中
推导过程需要用到:
y=logx , ∂y∂x=1x
y=expx i.e. ex , ∂y∂x=expx
limx→+∞(1+1x)x=e
(f(x)g(x))′=f′(x)g(x)−f(x)g′(x)g(x)2
以及倒数的定义
Δy=f(x0+Δx)−f(x0)
ΔyΔx=f(x0+Δx)−f(x0)Δx
f′(x0)=limΔx→0ΔyΔx
推导过程:
将 hθ(X)=11+e−θTX 代入,得到
那么
调用 fminunc()函数
不用再编写循环和设置步长了,一个函数搞定

过拟合Overfitting
特征太多,拟合的太好,代价函数几乎为0,但预测结果并不好
过拟合发生时,我们需要
1)降低特征个数(手动/通过算法),代价是失去了部分信息
2)正规化:保留所有特征,但减少
θj
的大小,这样就保留了所有的特征
正规化 Regularization
使用数值小的参数,得到“简化”的h函数,降低过拟合的倾向性
线性回归的正规化
注意, θ0 单列出来,不在惩罚范围内
λ 为正规化参数,如果 λ 过大,则可能导致underfitting
assignment
plot样本数据的时候用到了find
% Find Indices of Positive and Negative Examples
pos = find(y==1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);
求解过程用到的函数其实也没怎么搞明白
% Set options for fminunc
options = optimset('GradObj', 'on', 'MaxIter', 400);
% Run fminunc to obtain the optimal theta
% This function will return theta and the cost
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial theta, options);