深度学习笔记

机器学习

通过案例了解机器学习

1.基本知识

机器学习就是使机器具备学习的能力,具体来说就是使机器具备找到函数的能力。

根据要找的函数的不同,机器学习也有不同的分类。

有的就是找一个能够预测未来的一个函数,函数的输出是一个数值。这个找函数的任务被叫做回归(regression)

有的就是让机器做选择题,人类给定选项,让机器做选择。这个任务被称为分类(classification)。Alphago就是一个例子。

除了分类和回归,还有一种结构化学习。不是输出预测的数值,或做一个选择题,而是生成有结构的东西,比如画与文章。

2.案例学习

我们为自媒体工作者找一个函数,这个函数可以根据过往的数据来预测明天的观看次数。

说具体一些:假设后台可以看到很多相关的信 息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明 天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数。

机器学习就是找函数,找函数分为三步:1.写出一个带有未知参数的函数f, 其能预测未来观看次数。2.定义损失(loss),其实就是误差   3.找到最优解

我们先写出一个函数,例如 y=b+w∗x1

y 是准备要预测的东西,要预测的是今天(2月26日)这个频道总共观看的人,y就假 设是今天总共的观看次数。x1是这个频道,前一天(2月25日)总共的观看次数,y跟x1都是数值,b跟w是未知的参数,它是准备要通过数据去找出来的,w跟b是未知的,只是隐约地猜测。这个猜测不一定是对的,等一下回头会再来修正这个猜测。总之,y=b+w∗x1,而b跟w是未知的。带有未知的参数 (parameter)的函数称为模型(model)。w称为权重(weight),b称为偏置(bias)。这是第一个步骤。

第2个步骤是定义损失(loss),损失也是一个函数。这个函数的输入是模型里面的参数, 模型是y =b+w∗x1,而 b 跟 w 是未知的,损失是函数L(b,w)。损失函数L怎么求?就是将全部误差加起来,再求平均值,也就是下面的公式。

 为什么说L是关于w与b的函数,为什么说它的输入是模型里面的参数。

我们计算error时,将预测值减与实际值,而预测值为b+w∗x1。所以e= |b+w∗x1-y实际|。Loss就是很多的误差加起来,再取平均。我们要找到一个输入(即b和w)使得L的输出最小。

如图所示的等高线图,就是试了不同的参数(b,w), 计算它的损失,画出来的等高线图称为误差表面(error surface)。可以回忆一下初中地理的登高线图,我们手中拿的只是一个平面地图,但是我们脑海中可以想象高度是什么,途中红色是高的部分(高山),蓝色是低的部分(盆地)。当然这里只是一个类比而已。

 接下来是第三步,找到最优解的问题。这个可以让损失最小的w跟b称为w∗跟b∗,代表它们是最好的一组w跟b,可以让损失的值最小。梯度下降(gradient descent)是经常会使用优化的方法。为了简化,且让我们直观的看到,这里只考虑一个变量,我们固定b,改变w,得到不同的损失值。怎么样找一个w让损失的值最小呢?如图1.3所示,首先要随机选取一个初 始的点w0。接下来计算 ∂L ∂w |w=w0,在 w 等于w0 的时候,参数w 对损失的微分。计算在这一 个点,在w0 这个位置的误差表面的切线斜率,也就是这一条蓝色的虚线,它的斜率,如果这 一条虚线的斜率是负的,代表说左边比较高,右边比较低。

我们可以想像说有一个人站在这个地方,他左右环视一下,算微分就是左右环视,它会知道左边比较高还是右边比较高,看哪边比较低,它就往比较低的地方跨出一步。 这一步的步伐的大小取决于两件事情:

  • 第一件事情是这个地方的斜率,斜率大步伐就跨大一点,斜率小步伐就跨小一点。
  • 这里的学习率(learning rate)η 也会影响步伐大小。学习率是自己设定的,如果η 设 大一点,每次参数更新就会量大,学习可能就比较快。如果η设小一点,参数更新就很 慢,每次只会改变一点点参数的数值。这种在做机器学习,需要自己设定,不是机器自 己找出来的,称为超参数(hyperparameter)。

Q: 为什么损失可以是负的?

A: 损失函数是自己定义的,在刚才定义里面,损失就是估测的值跟正确的值的绝对值。 如果根据刚才损失的定义,它不可能是负的。但是损失函数是自己决定的,比如设置一 个损失函数为绝对值再减100,其可能就有负的。这个曲线并不是一个真实的损失,并 不是一个真实任务的误差表面。因此这个损失的曲线可以是任何形状。

梯度下降有一个很大的问题,没有找到真正最好的解,没有找到可以让损失最小的w。在 图1.4 所示的例子里面,把w 设定在最右侧红点附近这个地方可以让损失最小。但如果在梯 度下降中,w0是随机初始的位置,也很有可能走到wT 这里,训练就停住了,无法再移动w的 位置。右侧红点这个位置是真的可以让损失最小的地方,称为全局最小值(globalminima), 而wT 这个地方称为局部最小值(local minima),其左右两边都比这个地方的损失还要高 一点,但是它不是整个误差表面上面的最低点。

有两个参数的情况下使用梯度下降,其实跟刚才一个参数没有什么 不同。如果一个参数没有问题的话,可以很快的推广到两个参数。 假设有两个参数,随机初始值为w0,b0。要计算w,b跟损失的微分,计算在w=w0的位 置,b=b0 的位置,要计算w对L的微分,计算b对L的微分。计算完后更新w和b,把w0 减掉学习率乘上微分的结果得到w1,把b0 减掉学习率乘上微分的结果得到b1。

而移动的方向就是把w和b更新的方向结合起来,也就是一个向量(红色的箭头)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值