Datawhale AI x 魔搭 夏令营第五期 深度学习(入门)方向 task01笔记

今日目标

首先了解什么叫做机器学习和深度学习,就两个概念有个系统性的认识(这里可能不一定全部从课本中出知识点,如果觉得不够可能会从网络上摘取,并且做好备注),而后根据所给出的案例进行更深刻的理解,下面我们正式进入学习时间。

什么是机器学习和深度学习

机器学习顾名思义,就是让机器具有学习能力,具体来讲,机器学习就是让机器具备找一个函数的能力。为什么说是找函数呢,根据课本的意思和我自己的理解,大概就是所有的任务其实都是找函数,有的工作很困难,单凭人是不能找到这个函数的,这个时候我们就需要机器这个功能强大的发明去找到这个隐藏的复杂的函数,进而输入一个不论是文本,图片还是声音等等,经过函数处理能够得到我们想要的“输出”,这就是机器学习。

分类和回归

随着要找的函数不同,机器学习有不同的类别。假设要找的函数的输出是一个数值,一个标量(scalar),这种机器学习的任务称为回归。另一个常见的任务是分类(classification,)。分类任务要让机器做选择题。人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。总的来说根据个人的理解,两者的区别在于一个是输出一个数值,另一个是做选择题。

但是根据我在网络上的搜索,发现其实这两类有一个统一的名称:监督学习 (Supervised Learning)那既然有这个学习种类,那肯定也有其他的学习种类是吧,所以我就从网络上找了些其他的作为给大伙的补充:

机器学习的种类

机器学习的问题种类可以大致分为以下几类:

1. 监督学习 (Supervised Learning):
   - 分类 (Classification):预测样本所属的类别。例如,垃圾邮件检测(垃圾邮件或非垃圾邮件)、图像识别(猫或狗)。
   - 回归 (Regression):预测连续值。例如,房价预测、股票价格预测。

2. 无监督学习 (Unsupervised Learning):
   - 聚类 (Clustering):将数据集分成多个组或簇。例如,客户分群、图像分割。
   - 降维 (Dimensionality Reduction):将高维数据映射到低维空间。例如,主成分分析(PCA)、t-SNE。

3. 半监督学习 (Semi-Supervised Learning):
   - 结合了少量带标签数据和大量未带标签数据进行训练。例如,使用少量标记的图像和大量未标记的图像进行图像分类。

4. 强化学习 (Reinforcement Learning):
   - 通过与环境的交互来学习策略以最大化累积奖励。例如,自动驾驶、游戏中的智能体。

5. 自监督学习 (Self-Supervised Learning):
   - 使用数据本身生成标签进行训练。例如,通过预测图像的部分内容来学习图像表示。

6. 多任务学习 (Multi-Task Learning):
   - 同时解决多个相关任务。例如,联合预测图像中的物体类别和位置。

7. 迁移学习 (Transfer Learning):
   - 将在一个任务中学到的知识应用到另一个相关任务中。例如,将在ImageNet上预训练的模型应用到特定的图像分类任务中。

案例学习

我们现在做一个预测视屏点击次数的预测,一般来说几乎是根据前几天的点击量来预测今日的点击量(猜测),而后就会得到一个概念:带有参数的函数叫做模型。

而后就是定义损失,损失也是一个函数。其实损失就是用来判断这个函数的选择是否是合适的符合实际情况的。打个比方我们现在确定了一个函数,而后计算出10天内的点击量的预测值,而后和实际情况进行对比(一般来说相减取绝对值),而后绝对值越小说明越符合实际情况(这个应该也很好理解)

下面这些我觉得用自己的话实在讲不明白,还是照搬课本吧,大伙自己要多看多想:

有一些任务中 y 和 yˆ 都是概率分布,这个时候可能会选择交叉熵(cross entropy),这个是机器学习的第 2 步。刚才举的那些数字不是真正的例子,以下的数字是真实的例子,是这个频道真实的后台的数据,所计算出来的结果。可以调整不同的 w 和不同的 b,求取各种w 和各种 b,组合起来以后,我们可以为不同的 w 跟 b 的组合,都去计算它的损失,就可以画出图 1.2 所示的等高线图。在这个等高线图上面,越偏红色系,代表计算出来的损失越大,就代表这一组 w 跟 b 越差。如果越偏蓝色系,就代表损失越小,就代表这一组 w 跟 b 越好,拿这一组 w 跟 b,放到函数里面,预测会越精准。假设 w = −0.25, b = −500,这代表这个频道每天看的人越来越少,而且损失这么大,跟真实的情况不太合。如果 w = 0.75, b = 500,估测会比较精准。如果 w 代一个很接近 1 的值,b 带一个小小的值,比如说 100 多,这个时候估测是最精准的,这跟大家的预期可能是比较接近的,就是拿前一天的点击的总次数,去预测隔天的点击的总次数,可能前一天跟隔天的点击的总次数是差不多的,因此 w 设 1,b 设一个小一点的数值,也许估测就会蛮精准的。如图 1.2 所示的等高线图,就是试了不同的参数,计算它的损失,画出来的等高线图称为误差表面(error surface)。这是机器学习的第 2 步。

再接着发现玩损失我们肯定要进行优化我们的模型对不对,所以啊很显然下一步就是最优化问题

很显然影响这个损失的肯定是找到最合适的w和b,那么我们最常用的办法去找到最合适的解就是所谓的梯度下降(gradient descent)

为了要简化起见,先假设只有一个未知的参数 w,b 是已知的。w 代不同的数值的时候,就会得到不同的损失,这一条曲线就是误差表面,只是刚才在前一个例子里面,误差表面是 2 维的,这边只有一个参数,所以这个误差表面是 1 维的。怎么样找一个 w 让损失的值最小呢? 如图 1.3 所示,首先要随机选取一个初始的点 w0。接下来计算 ∂L∂w |w=w0,在 w 等于 w0 的时候,参数 w 对损失的微分。计算在这一个点,在 w0 这个位置的误差表面的切线斜率,也就是这一条蓝色的虚线,它的斜率,如果这一条虚线的斜率是负的,代表说左边比较高,右边比较低。在这个位置附近,左边比较高,右边比较低。如果左边比较高右边比较低的话,就把 w 的值变大,就可以让损失变小。如果算出来的斜率是正的,就代表左边比较低右边比较高。左边比较低右边比较高,如果左边比较低右边比较高的话,就代表把 w 变小了,w 往左边移,可以让损失的值变小。这个时候就应该把 w 的值变小。我们可以想像说有一个人站在这个地方,他左右环视一下,算微分就是左右环视,它会知道左边比较高还是右边比较高,看哪边比较低,它就往比较低的地方跨出一步。这一步的步伐的大小取决于两件事情:• 第一件事情是这个地方的斜率,斜率大步伐就跨大一点,斜率小步伐就跨小一点。• 另外,学习率(learning rate)η 也会影响步伐大小。学习率是自己设定的,如果 η 设大一点,每次参数更新就会量大,学习可能就比较快。如果 η 设小一点,参数更新就很慢,每次只会改变一点点参数的数值。这种在做机器学习,需要自己设定,不是机器自己找出来的,称为超参数(hyperparameter)

是不是感觉密密麻麻不知道讲啥的,我一开始看也有一样的感觉,所以啊我就决定上网看看有没有更好理解的版本,哎还真给我找到了,但这由于是别人的东西,所以我把他的链接放在我这,大家有需要的可以点进自行阅读,我只摘取部分:

机器学习-梯度下降算法原理及公式推导_梯度下降计算公式-CSDN博客

梯度下降的直观理解:

1.梯度下降直观理解解释
        梯度下降法的基本思想可以类比为一个下山的过程,如下图所示函数看似为一片山林,红色的是山林的高点,蓝色的为山林的低点,蓝色的颜色越深,地理位置越低,则图中有一个低点,一个最低点。

             

       假设这样一个场景:一个人被困在山上(图中红圈的位置),需要从山上下来(找到山的最低点,也就是山谷),但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的方向走,然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。

                               

       假设这座山最陡峭的地方是无法通过肉眼立马观察出来的,而是需要一个复杂的工具来测量,同时,这个人此时正好拥有测量出最陡峭方向的工具。所以,此人每走一段距离,都需要一段时间来测量所在位置最陡峭的方向,这是比较耗时的。那么为了在太阳下山之前到达山底,就要尽可能的减少测量方向的次数。这是一个两难的选择,如果测量的频繁,可以保证下山的方向是绝对正确的,但又非常耗时,如果测量的过少,又有偏离轨道的风险。所以需要找到一个合适的测量方向的频率(多久测量一次),来确保下山的方向不错误,同时又不至于耗时太多,在算法中我们成为步长。

按照梯度下降算法的思想,它将按如下操作达到最低点:

第一步,明确自己现在所处的位置

第二步,找到相对于该位置而言下降最快的方向

第三步, 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低

第四部, 回到第一步

第五步,终止于最低点

按照以上5步,最终达到最低点,这就是梯度下降的完整流程。当然你可能会说,上图不是有不同的路径吗?是的,因为上图并不是标准的凸函数,往往不能找到最小值,只能找到局部极小值。所以你可以用不同的初始位置进行梯度下降,来寻找更小的极小值点。

(原文链接:https://blog.csdn.net/iqdutao/article/details/107174240)

这大概就是一个总体的流程了

总结

通过这段学习我还是收货颇丰的,现在能够比较深刻的了解什么叫做机器学习,同时通过案例也能更好地理解一些专有名词,让他们不再是高高在上的东西,而是切切实实能被我们所了解熟悉的知识。希望自己能再接再厉,努力学到更多的东西,也很感谢这个平台给我学习的机会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值