当前位置: 首页 > news >正文

网站素材模板旅游/搜索软件

网站素材模板旅游,搜索软件,建设银行临江市支行网站,这么建立com的网站在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓…

在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓,要比单个模型的原理重要得多。

新关注和有所遗忘的同学可以点击下方的链接回顾一下之前的线性回归和梯度下降的内容。

讲透机器学习中的梯度下降

机器学习基础——线性回归公式推导(附代码和演示图)

回归与分类

在机器学习当中,模型根据预测结果的不同分为两类,如果我们希望模型预测一个或者多个连续值,这类问题被称为是回归问题。像是常见的未来股票价格的估计、未来温度估计等等都算是回归问题。还有一类呢是分类问题,模型的预测结果是一个离散值,也就是说只有固定的种类的结果。常见的有垃圾邮件识别、网页图片鉴黄等等。

我们之前介绍的逻辑回归顾名思义是一个回归问题,今天的文章讲的呢是如何将这个回归模型转化成分类模型,这个由线性回归推导得到的分类模型称为逻辑回归

逻辑回归

逻辑回归这个模型很神奇,虽然它的本质也是回归,但是它是一个分类模型,并且它的名字当中又包含”回归“两个字,未免让人觉得莫名其妙。

如果是初学者,觉得头晕是正常的,没关系,让我们一点点捋清楚。

让我们先回到线性回归,我们都知道,线性回归当中 y = WX + b。我们通过W和b可以求出X对应的y,这里的y是一个连续值,是回归模型对吧。但如果我们希望这个模型来做分类呢,应该怎么办?很容易想到,我们可以人为地设置阈值对吧,比如我们规定y > 0最后的分类是1,y < 0最后的分类是0。从表面上来看,这当然是可以的,但实际上这样操作会有很多问题。

最大的问题在于如果我们简单地设计一个阈值来做判断,那么会导致最后的y是一个分段函数,而分段函数不连续,使得我们没有办法对它求梯度,为了解决这个问题,我们得找到一个平滑的函数使得既可以用来做分类,又可以解决梯度的问题。

很快,信息学家们找到了这样一个函数,它就是Sigmoid函数,它的表达式是:

357572dfd95e096f6b1db8d0418b7666.png

它的函数图像如下:

3c9f8ea71dade02bee91d6837a9ab772.png

可以看到,sigmoid函数在x=0处取值0.5,在正无穷处极限是1,在负无穷处极限是0,并且函数连续,处处可导。sigmoid的函数值的取值范围是0-1,非常适合用来反映一个事物发生的概率。我们认为

σ(x) 表示x发生的概率,那么x不发生的概率就是 1 - σ(x) 。我们把发生和不发生看成是两个类别,那么sigmoid函数就转化成了分类函数,如果 σ(x) > 0.5 表示类别1,否则表示类别0.

到这里就很简单了,通过线性回归我们可以得到

00f6409abfa62fff48ef6345454c1307.png

也就是说我们在线性回归模型的外面套了一层sigmoid函数,我们通过计算出不同的y,从而获得不同的概率,最后得到不同的分类结果。

损失函数

下面的推导全程高能,我相信你们看完会三连的(点赞、转发、关注)。

让我们开始吧,我们先来确定一下符号,为了区分,我们把训练样本当中的真实分类命名为y,y的矩阵写成 Y 。同样,单条样本写成 x , x 的矩阵写成 X。单条预测的结果写成 y_hat,所有的预测结果写成Y_hat。

对于单条样本来说,y有两个取值,可能是1,也可能是0,1和0代表两个不同的分类。我们希望 y = 1 的时候,y_hat 尽量大, y = 0 时, 1 - y_hat 尽量大,也就是 y_hat 尽量小,因为它取值在0-1之间。我们用一个式子来统一这两种情况:

4e1d139e638f22b1f7c3c34ec7ac1750.png

我们代入一下,y = 0 时前项为1,表达式就只剩下后项,同理,y = 1 时,后项为1,只剩下前项。所以这个式子就可以表示预测准确的概率,我们希望这个概率尽量大。显然,P(y|x) > 0,所以我们可以对它求对数,因为log函数是单调的。所以 P(y|x) 取最值时的取值,就是 log P(y|x) 取最值的取值。

b493206f3f6ac1d18987cc2136d43e74.png

我们期望这个值最大,也就是期望它的相反数最小,我们令

bd1691f5ed6d3b14ad6678ea7ab4a73e.png

这样就得到了它的损失函数:

18ae4824989eb45abea1a568bb8afc0b.png

如果知道交叉熵这个概念的同学,会发现这个损失函数的表达式其实就是交叉熵。交叉熵是用来衡量两个概率分布之间的”距离“,交叉熵越小说明两个概率分布越接近,所以经常被用来当做分类模型的损失函数。关于交叉熵的概念我们这里不多赘述,会在之后文章当中详细介绍。我们随手推导的损失函数刚好就是交叉熵,这并不是巧合,其实底层是有一套信息论的数学逻辑支撑的,我们不多做延伸,感兴趣的同学可以了解一下。

硬核推导

损失函数有了,接下来就是求梯度来实现梯度下降了。

这个函数看起来非常复杂,要对它直接求偏导算梯度过于硬核(危),如果是许久不碰高数的同学直接肝不亚于硬抗苇名一心。

ade04cadcb25c9674f76ec1fa217eb85.png

为了简化难度,我们先来做一些准备工作。首先,我们先来看下σ 函数,它本身的形式很复杂,我们先把它的导数搞定。

77509348117bf958bd84c57fbbe2c048.png

因为 y_hat = σ(θX) ,我们将它带入损失函数,可以得到,其中σ(θX)简写成σ(θ) :

7cc17ea96bd209a6a71e30a89827553e.png

接着我们求 J(θ) 对 θ 的偏导,这里要代入上面对 σ(x) 求导的结论:

363b945b9b4cc57919d3d503c45c0ff6.png

代码实战

梯度的公式都推出来了,离写代码实现还远吗?

不过巧妇难为无米之炊,在我们撸模型之前,我们先试着造一批数据。

我们选择生活中一个很简单的场景——考试。假设每个学生需要参加两门考试,两门考试的成绩相加得到最终成绩,我们有一批学生是否合格的数据。希望设计一个逻辑回归模型,帮助我们直接计算学生是否合格。

为了防止sigmoid函数产生偏差,我们把每门课的成绩缩放到(0, 1)的区间内。两门课成绩相加超过140分就认为总体及格。

2d25f5bfaa9ec45a3089c4f12c201ccf.png

这样得到的训练数据有两个特征,分别是学生两门课的成绩,还有一个偏移量1,用来记录常数的偏移量。

接着,根据上文当中的公式,我们不难(真的不难)实现sigmoid以及梯度下降的函数。

2bf9363d9bb6a71a0e0e33a1234d5c7b.png

这段函数实现的是批量梯度下降,对Numpy熟悉的同学可以看得出来,这就是在直接套公式。

最后,我们把数据集以及逻辑回归的分割线绘制出来。

097c155cf08a23efc7d2e3d69b4704e2.png

最后得到的结果如下:

9db92f8f8681c247a6cba139152c5ca2.png

随机梯度下降版本

可以发现,经过了1万次的迭代,我们得到的模型已经可以正确识别所有的样本了。

我们刚刚实现的是全量梯度下降算法,我们还可以利用随机梯度下降来进行优化。优化也非常简单,我们计算梯度的时候不再是针对全量的数据,而是从数据集中选择一条进行梯度计算。

基本上可以复用梯度下降的代码,只需要对样本选取的部分加入优化。

cfd38e0b28894b1016968075e6a1bc3b.png

我们设置迭代次数为2000,最后得到的分隔图像结果如下:

6a1a9d6962bf1b801f0a8801883dec05.png

当然上面的代码并不完美,只是一个简单的demo,还有很多改进和优化的空间。只是作为一个例子,让大家直观感受一下:其实自己亲手写模型并不难,公式的推导也很有意思。这也是为什么我会设置高数专题的原因。CS的很多知识也是想通的,在学习的过程当中灵感迸发旁征博引真的是非常有乐趣的事情,希望大家也都能找到自己的乐趣。

今天的文章就是这些,如果觉得有所收获,请顺手点个关注或者转发吧,你们的举手之劳对我来说很重要。

http://www.lbrq.cn/news/1287361.html

相关文章:

  • 网站设计团队/微信小程序怎么开通
  • 外贸网站建站m/优化设计答案六年级
  • 眼镜东莞网站建设/旅游产品推广有哪些渠道
  • 官方网站、门户网站是什么意思?/好的竞价账户托管外包
  • 电子商务网站建设 价格/快速优化seo
  • 做快递单的网站会不会是骗人的/网络营销的主要内容包括
  • 襄阳做网站价格/全网网络营销推广
  • php动态网站开发案例答案第二章/管理方面的培训课程
  • 普洱住房和城乡建设委员会网站/武汉seo网站优化运营
  • 临沂网站建设培训学校/html网页制作
  • 吉林商城网站建设/广州网站优化软件
  • 免费做网站教程/怎么推广销售
  • 河南建网站/抖音怎么运营和引流
  • 通过企业画册宣传_网络网站建设_新闻媒体合作等方式_/福州网站建设策划
  • 响应式网站的排版/网站搜索优化官网
  • 网站代运营收费/官网建设
  • wordpress 网页排版错误/抖音seo关键词优化怎么做
  • 网站技术培训/青岛网站建设公司
  • 网站建设遵循的原则/百度竞价最低点击一次多少钱
  • 网站session/网络公司seo教程
  • 优化一个网站需要多少钱/徐州seo外包
  • 著名网站织梦/搜索广告排名
  • 做网站跟网站设计的区别/爱站seo综合查询
  • 做企业网站要怎么设计方案/百度上怎么发布作品
  • 深圳做网站公司排名/seo搜索优化招聘
  • 网站开发设计技术/最近几天的重大新闻事件
  • 北京网站建设维护/高级搜索引擎
  • 佛山免费发布信息的网站/网络营销的种类有哪些
  • 天猫官方网站首页/软文网站有哪些
  • 网站源码php/网络营销管理
  • [Linux入门] 初学者入门:Linux DNS 域名解析服务详解
  • JavaScript中.splice()的用法
  • 公域流量向私域流量转化策略研究——基于开源AI智能客服、AI智能名片与S2B2C商城小程序的融合应用
  • [NPUCTF2020]ReadlezPHP
  • [LeetCode]每日温度
  • 【初识数据结构】CS61B中的快速排序