4

logistic回归

 2 years ago
source link: https://alisitaweb.github.io/2018/01/08/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0logistic%E5%9B%9E%E5%BD%921/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

logistic回归

发表于 2018-01-08

假如有一张图片需要识别是否是猫作为输入,如果是猫,输出1,否则,输出0
图片在计算机中保存,要分为三个矩阵,分别对应红绿蓝三个颜色通道,
为了方便,这里用5X4的演示

把这些亮度值,放入一个特征向量(feature vector)x中
x=[255,251,.......,255,134.....]
如果图片是64X64的,向量x的总维度
64X 64X3 = 12288
nx=12288
来表示向量x的总维度
在二分分类问题中,目的是训练出一个分类器,以图片的特征向量作为输入量,预测输出的y是0,还是1

用(x,y)来表示一个样本,训练集有m个集合组成
{(x^(1),y^(1)},(x^(2),y^(2)),.....(x^(m),y^(m))}
表示整个训练集
m_train
表示训练集
m_test
表示测试集
为了更好的表示,定义一个大矩阵X,
X=[...... x^(1)...... , .......x^(2)........ , ..... , ......x^(m)......]
这个矩阵有m列,有nx行
定义一个矩阵Y
Y=[y^(1),y^(2),.....y^(m)]
=enter description here
=enter description here

logisitic回归(logistic Regression)

已知输入向量x,例如是一张图片,判断是否是猫图,需要一个算法,得出预测值ŷ,ŷ是一个概率(当x满足条件是,y就是1)
x是一个nx维向量,参数w也是一个nx维向量,b是一个实数
ŷ = sigmoid(w^T * x + b)
sigmoid是为了将概率限制在[0,1]

logisitic回归损失函数(logistic Regression cost function)

Loss(error)function:
L(ŷ,y)=-(ylogŷ+(1-y)log(1-ŷ))
Cost function:
J(w,b) = 1/m * L(ŷ^(i),y^(i)) = -1/m * ( y^(i)logŷ^(i) + (1-y^(i)log(1-ŷ^(i)))
i = [1,m]
要让J越小越好

logistic回归中的梯度下降法

对于单个样本
假设有两个样本特征向量x1,x2,
参数w1,w2,b
z = w1x1 + w2x2 + b
ŷ = a = sigmoid(z)
L(a,y)
然后向前求导数
da = dL(a,y)/da = -(y/a)+(1-y)/(1-a)
dz = dL/dz = a-y
dw1 = x1 * dz
dw2 = x2 * dz
db = dz
然后更新w1,w2,b
w1 = w1 - αdw1
w2 = w2 - αdw2
b = b - αdb

对于m各训练样本
下面实现的是伪代码
J=0; dw1=0; dw2=0;db=0;
for i=1 to m
z^(i) = w^T*x^(i) + b
a^(i) = sigmoid(z^i)
J += -( y^(i)loga^(i) + (1-y^(i)log(1-a^(i)))
dz^(i) = a^(i) - y^(i)
dw1 += x1^(i)dz^(i)
dw2 += x2^(i)dz^(i)
db += dz^(i)
J /= m
dw1 /= m 注释 dw1 = dJ/dw1
dw2 /= m
db /= m
w1 = w1 - αdw1
w2 = w2 - αdw2
b = b - αdb

Donate comment here

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK