-
【日常学习笔记】
-
>Binary Classification
-
>>二元分类:给定一个输入x(代表图片,文字等),输出y为0或1
-
>>解释:把x划分为0或者1,这就是二元分类。有点类似判断题
-
>>举例:
-
给一张图片,判断是不是猫咪
-
给一堆邮件,判断哪些是垃圾邮件,哪些不是
-
听一段音乐,判断是不是贝多芬的曲子
-
给一个GPS坐标,判断是不是在中国
-
-
>>一些参数约定:
-
设x: 自变量, 特征值,也叫输入, 维度为n,表示每个样本数据都是n维的,例如
-
样本数据1:李现:x_1 = (帅气,gun神,年纪大,爱借钱,脚臭)
-
设y:输出,每一个样本都是0或1,一般可以写成(y1,y2,...)
-
设m:训练集样本数量
-
设m_test:测试集样本数量
-
设样本i表示为:(x(i),y(i))
-
则样本表示为:((x(1),y(1)),(x(2),y(2)),....,(x(m),y(m)))
-
则矩阵x(1) = [维度1 维度2 ...维度n]^T,
-
比如李现=[帅气,gun神,年纪大,爱借钱,脚臭]^T,
-
(^T表示矩阵的转置,这里就是竖着写)
-
设矩阵X = [x(1) x(2) ... x(m)]
-
则X是n*m的矩阵
-
同理,设Y = [y(1) ...y(m)],例如[0 1 0 1 0 0 1 1 1]
-
则Y就是1*m的矩阵
-
-
>Logistic Regression
-
还是在二元分类的情况下,逻辑回归的思路是
-
>>已知x,求y的估计y`,y`=条件概率P(y=1|x)
-
y`=SIGMOD(w^T*x + b),
-
其中w^T*x表示矩阵乘法,类似线性回归方程
-
w1x1 + w2x2 = 1,等于矩阵形式:[w1 w2] ^T * [x1 x2] = 1
-
其中b是常数,SIGMOD函数= 1/(1+e^(-x))
-
>>我们现在求一下Loss Function
-
最简单的是平方误差,
-
L(y`,y) = 1/2(y`-y)^2,
-
但是这个函数在计算梯度下降时出现多个局部最佳,难以收敛,
-
换成下面这个
-
L= -(ylog2y` +(1-y)log2(1-y`))
-
分析一下这个函数
-
因为y只有两个取值,0或者1,而y`定义域是[0,1]
-
!!!分类讨论:
-
(1)当y = 0时,L(0,y`) = -log2(1-y`),
-
log2(x)增函数,负负得正,所以L随y`减少而减少
-
(2)当y = 1时,L(1,y`) = -log2y`,
-
L减函数,L随y`增加而减少
-
我们目标是降低损失,成本最低,所以要求L尽量小,
-
L比较小就是上面分析的两个情况
-
-
>>我们现在定义一下cost function
-
cost =J(w,b) = -1/m*∑( y(i)log2y`(i) +(1-y(i))log2(1-y`(i)) ), i= 1 to m
-
总结:cost:所有的,loss:一次的
-
-
>Gradent descent
-
>>梯度下降:假设你站在山坡上,需要寻找最快下山的路,不妨按照当时所在地的斜率(或偏导/梯度)的方向下山,这个方向是最快的
-
算法:
-
Repeat{
-
w := w - a*dJ/dw;
-
}
-
其中:=表示赋值,update,相当于自变量w修改为原来的w减去dJ/dw的值,比如
-
原来在点(2,3),这点斜率dJ/dw为1.5,学习速率a = 1,那么点(2,3)更新为点(2-1.5,3-1.5) = (0.5,1.5)
-
如果是多维,导数就要变成偏导数,详情见高等数学
【日常学习】深度学习(deeplearning.ai)
最新推荐文章于 2023-03-30 20:48:41 发布