logistic回归
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回归
假如有一张图片需要识别是否是猫作为输入,如果是猫,输出1,否则,输出0
图片在计算机中保存,要分为三个矩阵,分别对应红绿蓝三个颜色通道,
为了方便,这里用5X4的演示
把这些亮度值,放入一个特征向量(feature vector)x中x=[255,251,.......,255,134.....]
如果图片是64X64的,向量x的总维度
64X 64X3 = 12288nx=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行
定义一个矩阵YY=[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,bz = 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,bw1 = 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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK