深度学习逻辑回归Logistic Regression(入门)
自己的笔记
最经典的例子就是房价预测了。通过这个例子来记录下自己对深度学习的理解。(如果理解有误,欢迎指正)
1.房价预测
假设房价只由房子的大小决定,这里用x表示,而房子的价格用y表示。(前提我们有一些数据(x,y))在坐标轴上描点,如下图,我们需要做的就是找出一条直线以使点尽量在直线上。

直线的方程为y=ax+b,在这里,我们把它写成y=wx+b,在我们已知x和y的情况下,我们要求的就是参数w和b。
所以首先要学搭建神经网络。

这是单个神经网络(规模较小),规模较大的神经网络是由多个单神经元组成。在这里,x通过神经元可得到y,当我们搭建起神经网络后,只要给x,便可得到y。
实际上,房屋的价格不仅仅受房屋的大小影响,还受邮编(由邮编可知道地域等),周边的富裕程度等影响。所以,往往x不止一个特征,而是由多个特征组成。我们可以得到下面的图。

在第一层,我们把每个特征(x1,x2,x3)都作为输入给每个神经元,由每个神经元自行决定哪个特征是影响最大的,最后得到价格y。
实际上,由常识可知价格不可能为负的,所以价格不可能小于0。另外,在这里我们把价格大于50000的映射为1,小于等于50000的映射为0。那么我们需要用一个激活函数来作用于价格y。常用的激活函数有sigmod函数,ReLU函数。这里我们用sigmod函数作用于y。sigmod函数的图像如下图:

sigmod的值域为[0,1]。所以把sigmod作用于y=wx+b即 sigmod(wx+b)即可把y映射到[0,1]的区间。
接下来要做的就是学习参数w和b。
我们用一个损失函数来衡量真实值与预测值的接近程度。
误差平方:L(y真,y预)=1/2(y真-y预)^2;
但在逻辑回归中我们经常会用别的损失函数(训练单一样本特征):
L(y真,y预)=-((y真*log(y预))+(1-y真)log(1-y预))
我们可以直观地看下这个损失函数:
当y真为0时,L(y真,y预)=-log(1-y预),想要y预小接近0,则L(y真,y预)要尽可能小。
当y真为1时,L(y真,y预)=-log(y预),想要y预大接近1,则L(y真,y预)也要尽可能小。
所以只要损失函数越小就越接近真实结果。
接下来要定义一个成本函数,这个是衡量所有样本特征的即:
cost :

所以要训练参数w,b,就要使J尽可能小。
接下来用梯度下降法来训练或学习参数w,b。
我们要做的就是找到一个w,b使得成本函数J尽可能小。
以一个参数w为例:
一开始w会随机初始化一个值。

我们要做的就是找到一个w使得J(w)最小。

我们让w等于上面这个等式,学习率自己调整。

由这个图可知,当斜率大于0时即(dJ(w)/dw)>0,w逐渐减小。
当斜率小于0时即(dJ(w)/dw)<0,w逐渐增大。通过以上w的式子不断迭代,所以当斜率(dJ(w)/dw)趋于0时,便可找到一个w使得J(w)最小。
b也和w一样,这里不在赘述。
以上便是我对逻辑回归的理解。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)