机器学习中的损失函数、梯度下降和逻辑回归模型详解

释放双眼,带上耳机,听听看~!
本文详细讲解了机器学习中的损失函数的定义和求解过程,梯度下降的原理和步骤,以及线性回归模型和逻辑回归模型的应用。通过学习本文,您将深入了解机器学习中的关键概念和方法。

导语

对于这章内容,首先会讲解一下损失函数,然后讲解梯度下降,最后讲解逻辑回归模型。

废话不多说。

上一章知识链接(损失函数)

下表包含的对于各个量的标记符号。

专业术语 标记
特征(features) x, x_train
目标(targets) y,y_train
参数(parameters) w(weight),b(bias),w,b
样本容量(parameters) m,m
第i个样本(ithi_{th}Training Example) x(i)x^{(i)}, y(i)y^{(i)}, x_i, y_i
第i个样本的预测值(The result of ithi_{th}training Example) fw,b(x(i))f_{w,b}(x^{(i)}),f_wb
预测值(prediction) y−haty-hat,y-hat

回想一下,你有一个Linear Regression Model,“y=wx+by=wx+b”,你初始化了它两个参数的值,输入特征值得到了一串预测值,通过损失函数与目标值,就得到了你初始的整个模型的损失有多大。

损失函数:

J(w,b)=12m∑i=0m−1(fw,b(x(i))−y(i))2J(w,b) = frac{1}{2m} sumlimits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) – y^{(i)})^2

为什么咱们的损失函数定义成这样?

  • 首先,在这一大坨里面,十分好理解的部分是:fw,b(x(i))−y(i)f_{w,b}(x^{(i)}) – y^{(i)},就是第i个样本的预测值减去目标值(实际值),也就是损失的量。
  • 为什么要平方呢?在这里,损失量可以说是一个标量,且得是一个正值。如果当预测值比目标值小,那么损失值就变成负数了,这不是我们机器学习体系所能理解的损失,反正,就不对了,因为损失得是一个量,跟正负没关系,所以要剔除正负号的影响。
  • 求和部分很好理解,就是把所有样本的损失值加起来;除以m很好理解,因为咱们损失函数求整个模型的平均损失时,第一来的小,第二来的客观。
  • 除以二的原因也很好理解。假设你初始的模型离理想的模型确实相差甚远,那么也就是说损失函数算出来的值很大。你可以在脑海里浮现y=x2y=x^2的图像了。假设我们初始的参数使损失函数在一定程度上远离最低点的点上,我们要使我们到达最低点,也就是要让我们函数点的导数等于0对不对?那我们就需要用到求导了。现在你知道为什么除以2了吗?没错,就说是为了求导时跟平方抵消。

上一章末:我们是用梯度下降的方法降低损失,从而训练出线性回归模型。

梯度下降(Gradient Descent)

梯度下降分为两个步骤:对两个参数求偏导数;梯度减少两个参数的值。对于线性回归模型,直到两个偏导数无限接近0。

求导过程……你应该学会自己求“复合函数”的导数了,知道这里x(i),y(i)x^{(i)},y^{(i)}变成常数也就是会求偏导数了。

两个偏导数分别是:

  • 对参数w:∂J∂w=1m∑i=0m−1(fw,b(x(i))−y(i))x(i)frac{partial J}{partial w}=frac{1}{m}sumlimits_{i = 0}^{m-1}(f_{w,b}(x^{(i)}) – y^{(i)})x^{(i)}

  • 对参数b:∂J∂b=1m∑i=0m−1(fw,b(x(i))−y(i))frac{partial J}{partial b}=frac{1}{m}sumlimits_{i = 0}^{m-1}(f_{w,b}(x^{(i)}) – y^{(i)})

梯度减少两个参数的方法:

  • 对参数w:w=w−α∂J∂ww=w-alphafrac{partial J}{partial w}

  • 对参数b:b=b−α∂J∂bb=b-alphafrac{partial J}{partial b}

αalpha是我们设置的learning rate,可以理解为你在函数高处梯度下山的步伐(梯度)的大小,不能太大,否则会使我们可能会错过最低点,却再也回不去(此时你每次更新参数后的损失会时大时小,也就是出现bug了),也不能太小,否则我们到达最低点所需时间会很长。

机器学习中的损失函数、梯度下降和逻辑回归模型详解

“In machine learning and statistics, the learning rate αalpha is a tuning parameter in an optimization algorithm that determines the step size at each iteration while moving toward a minimum of a loss function.”

(参考文献:www.educative.io/answers/lea…)

那么我们要怎么知道合适的learning rate呢?
多试几个吧,合理范围内选最大的,最快(到达极限)的。

逻辑回归模型(Logistic Regression Model)

逻辑回归模型也是有监督地机器学习(Supervised Learning)的一种,它实现的功能就是分类,回归逻辑值,比如0/1,0表示否定,1表示肯定,反之亦可。

逻辑回归模型的learning algorithm:

g(z)=11+e(−z)g(z)=frac{1}{1+e^{(-z)}}

z=wx+bz=wx+b

这个函数就是我们的sogmoid function了。不难看出,当z很大时,函数g接近1,当z很小时,函数g接近0。

机器学习中的损失函数、梯度下降和逻辑回归模型详解

“For binary classification problems, a chosen method makes predictions that match the label scheme. Direct prediction is what we call the output of a method when its co-domain matches label values directly. Perceptrons make direct predictions because they output to either 0 or 1 for any point, which are taken as actual label values.”

(参考文献:ai-master.gitbooks.io/logistic-re…)

一般对于返回值为0或1的分类工作就会用sigmoid function。但是,我们看到函数会发现,它有处于0~1之间的部分,我们使大于0.5的判断为1,反之则判断为0,此时它的输出就只有0和1了。

逻辑回归模型的Loss函数

  • fw,b(x(i))=sigmoid(wx(i)+b)f_{w,b}(x^{(i)}) = sigmoid(wx^{(i)} + b )

  • loss(fw,b(x(i)),y(i))=−log⁡(fw,b(x(i))),if y(i)=1loss(f_{mathbf{w},b}(mathbf{x}^{(i)}), y^{(i)}) =-log(f_{mathbf{w},b}( mathbf{x}^{(i)})) ,text{if $y^{(i)}=1$}

  • loss(fw,b(x(i)),y(i))=−log⁡(1−fw,b(x(i))),if y(i)=0loss(f_{mathbf{w},b}(mathbf{x}^{(i)}), y^{(i)}) =-log(1 – f_{mathbf{w},b}( mathbf{x}^{(i)})) ,text{if $y^{(i)}=0$}

合并改进后如下

loss(fw,b(x(i)),y(i))=−y(i)log⁡(fw,b(x(i)))−(1−y(i))log⁡(1−fw,b(x(i)))loss(f_{mathbf{w},b}(mathbf{x}^{(i)}), y^{(i)}) = -y^{(i)} logleft(f_{mathbf{w},b}left( mathbf{x}^{(i)} right) right) – left( 1 – y^{(i)}right) log left( 1 – f_{mathbf{w},b}left( mathbf{x}^{(i)} right) right)

机器学习中的损失函数、梯度下降和逻辑回归模型详解
(图片里的hθ(x)h_{theta}(x)就是fw,b(x(i))f_{w,b}(x^{(i)})。)

  • y=1y=1时,fw,b(x(i))f_{w,b}(x^{(i)})的值越接近0,loss趋于无穷大,因为y=−log(x)y=-log(x)在0~1之间是减函数,即−log⁡(fw,b(x(i)))-log(f_{mathbf{w},b}( mathbf{x}^{(i)}))为减函数。

  • y=0y=0时,fw,b(x(i))f_{w,b}(x^{(i)})的值越接近1,loss趋于无穷大,因为y=−log(1−x)y=-log(1-x)在0~1之间是增函数,即−log⁡(1−fw,b(x(i)))-log(1-f_{mathbf{w},b}( mathbf{x}^{(i)}))为增函数。

逻辑回归模型的梯度下降

因为仍然更新的是参数w,b的值,从而更新fw,b(x(i))f_{w,b}(x^{(i)})的值,所以我们仍然用cost function来做逻辑回归模型的梯度下降:

J(w,b)=12m∑i=0m−1(fw,b(x(i))−y(i))2J(w,b) = frac{1}{2m} sumlimits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) – y^{(i)})^2

不同的是,fw,b(x(i))f_{w,b}(x^{(i)})是sigmoid函数。其余全部照搬前文更新w,b的值,直到loss函数趋于0

总结

懂了就好。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

深度学习与GPU:计算机视觉和机器学习的突破

2023-12-13 21:29:14

AI教程

预训练模型对知识图谱补全的影响

2023-12-13 21:35:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索