机器学习笔记(李宏毅老师2021/2022课程)【更新中】

目录

前言

课程预览

第一讲

机器学习基本概念


前言

本文主要记录在听李宏毅老师的课时对应做的课堂笔记

课程:

(强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili


课程预览

机器学习=找函数 (找一个人类写不出来的复杂函数) 课程侧重深度学习(类神经网络的整个类型)
  输入:各种各样 eg:vector、Matrix、Sequence
  输出:各种各样 eg:scalar、classification(类别)、image、text


教机器的种种方法:

1、Supervised Learning (监督学习) 【lecture 1-5】

  • eg:让机器学会给他一张图片,判断是宝可梦还是数码宝贝
  • 做法:收集一大堆的训练资料  比如抓很多动物,然后标记它是宝可梦还是数码宝贝 标注就称为label 标注好后叫机器自动找出一个方向,这个方向的输入是动物,输出告诉是宝可梦还是数码宝贝
  • 存在问题:标记是一个非常耗费人工的事情,可能收集到的标记资料不会太多,而且如果要为每一个任务收集足够的标准资料,非常麻烦所以引入了self-supervised Learning

2、Self-supervised Learning (无监督学习) 【lecture 7】

  • Pre_train:Develop general purpose knowledge  (预训练:在训练之前先练成一些基本功) 又叫做Foundation Model
  • eg:让机器学会做各种不同影响辨识相关任务的基本功,把基本功练好以后可以在新的任务上做得更好  练基本功时,不需要任何标准,只需要发一大堆影像资料,机器就会自动学会我们要它学习的基本能力         最知名的模型:BERT  还有GPT-3 GPT-2 T5等模型
  • Downstream Tasks (下游任务:真正要机器学会的任务)  在进行基本功能的预训练以后机器就可以在我们真正关心的下游任务上面得到好的结果
  • Pre-trained Model和Downstream Tasks的关系类似作业系统和应用之间的关系,就像现在开发一个软件简单很多,因为核心和最难得部分已经被作业系统实现了(如Android studio等)

3、Generative Adversarial Network (生成对抗网络)  【lecture 6】

  • x->function->y  只需要收集大量的x和收集到大量的y,不需要他们之间成对的关系,机器就有自动把它们之间的关联找出来
  • eg:语音识别

    监督学习:要收集大家的声音讯号,然后这些声音讯号需要标注出对应的文字,就可以让机器学会怎么把一段声音转成一段文字

   GAN:可以使机器只听大量的声音讯号,接下来读大量的文字,文字不需要使同样的来源,不需要讲它的内容,机器也有办法自动学会做语音辨别这件事情

4、Reinforcement Learning (强化学习)  【lecture 12】

用途:不知道要怎么标注资料的时候,比如想要叫机器学会下围棋,看到棋盘知道下一手下到哪里,但人类可能也不知道下一手下在哪里,此时就可以利用RL技术(即不知道怎么标注资料,但能判断好坏,能定义什么叫成功的情况)


除了追求正确率以外,还要关注其他事情

5、Anomaly Detection (异常检测)  【lecture 8】

假设真的训练成功一个宝可梦跟数码宝贝的分类器,如果提供的图片是恐龙,那机器回答什么?即异常检测就是让机器能够具备回答我不知道的能力

 6、Explainable AI  (可解释性AI)  【lecture 9】

假设真的训练成功一个宝可梦跟数码宝贝的分类器,真的代表它聪明吗?真的代表它知道宝可梦长什么样子吗?未必。我们要让它不只是回答正确的答案,同时还要告诉我们为什么它知道答案应该是这样

7、Model Attack (模型的攻击)     【lecture 10】

尽管如今影像辨别系统很厉害,对图片添加杂讯,机器识别失败,这就是人类对模型的攻击

8、Domain Adaptation  (领域自适应)   【lecture 11】

在进行机器学习时往往假设训练资料和测试资料它们的分布是类似的,这样测试的正确率会非常高,但假如训练资料是黑白的,测试资料是彩色的,此时的正确率就会大大下降,这是要解决的问题

9、NetWork Compression (模型压缩)   【lecture 13】

将很大的模型进行压缩,使得其能够在手机/智能手表等上面跑

10、Life-long Learning  (终身学习)  【lecture 14】

11、Meta learning (元学习)  【lecture 15】

前14讲都是人去设计了一个学习的演算法,让机器具备分类的能力。这一讲讲机器从大量的任务里面自己发明新的演算法,机器不再使用人发明的算法,而是从过去的学习经验里面发明出新的演算法

Few-shot learning is usually achieved by meta-learning (用非常少量的资料就进行学习)


第一讲

机器学习基本概念

用一句话概括机器学习:让机器具备找一个函数的能力

一、函数的不同种类

1、Regression:The function outputs a scalar.  (回归:函数输出标量。)

eg: 预测PM2.5 输入为今天的PM2.5数据、今天的温度、臭氧浓度等,通过函数f,输出明天的PM2.5值  这一个函数的任务就是Regression

2、Classification:Give options(classes),the function outputs the correct one (分类:给出选项(类),函数输出正确的选项)

eg: 邮箱里面收到很多邮件,判断其是否为垃圾邮件  输入是一封电子邮件,通过f,输出实现规定好的选项中符合的一个

阿尔法狗也是一样,输入是棋盘上黑子和白子的位置,通过f,输出从19X19的选项选出一个正确的选项

3、Structured Learning:Create something with structure(image,document)

让机器不只是做选择和输出数字,而是要产生一个有结构的物件(图片、文件等),即让机器学会创造这件事情

二、机器怎么找一个函数呢?

     例子:假设需要根据自己的youtube频道的前一天的阅读点击率去预测明天有可能的点阅的次数,怎么找这个函数呢?

    机器学习找这个函数的过程可以分为三个步骤

1、Function with Unknown Parameters  (参数未知的函数)

  • y = f(youtube数据)  猜测数学式长什么样?输入跟y有什么关系呢?   []里面为名称,一些名词的定义
  • Model: y = b + wx₁  (base on domain knowledge) (带有Unknown parameters的Function成为Model)
  • y:no.of views on 2/26(今天的观看人数 未知)   x₁:no.of views on 2/25(前一天观看人数)[feature]
  • w[weight] and b[bias] are unknown parameters(learned from data)

2、Define Loss from Training Data (从训练数据中定义损失)

  • Loss is a function of parameters  L(b,w)  Loss:how good a set of values is

  输入是Model里面的参数b,w 输出是当把一组未知的参数设定某一个数值时,这个数值好还是不好

  • eg:L(0.5k,1) y = 0.5k + 1x₁  How good it is?

   训练资料是这个频道过去的点击次数,把点阅次数代入函数,比对计算结果和真实结果,计算差距,得到e₁=|y-y^|

    label指的就是正确的数值y^(真实值)  计算过去每一天的点阅次数,都可以得到一个差距e然后把每一天的差距加起来然后取得平均  Loss: L = 1/N∑e  L越大代表这一组参数越不好,L越小代表这一组参数越好

计算差距的方法可以有多种  得到的L可能有正有负

如所取的e = |y-y^| 所得到的L is mean absolute error(MAE)

              e = (y-y^)₂ 所得到的L is mean square error(MSE)

如果y和y^都是几率分布的话可以选择Cross-entropy

通过给参数设置不同的数值,得到对应的Loss 并将其绘制成等高线图,该等高线图称为Error Surface

3、Optimization (最佳化) 

  可以让L最小的w,b组合记为w*,b*

  • 方法:Gradient Descent  

     ①(Randomly)Pick an initial value wº    

    先假设未知的参数只有一个w,当w代表不同数值的时候就会得到不同的Loss,怎么样找到一个w去让这个loss的值最小呢?随机选取一个初始的点wº

     ② compute ∂L/∂w

    计算w等于wº的时候,w这个参数对loss的微分是多少,结果是负数,说明左边比较高右边比较低,那么就把w的值变大从而使得L变小

    如果算出来是整数,说明左边比较低右边比较高,那么就把w的值变小,可以使得L变小

【变大变小的步伐取决于两件事——①微分(斜率)有多大,斜率越大不步伐越大 ②η:learning rate (学习速率 自己设定的 速率越大,每次参数就会update很大 学习可能就比较快)   在机器学习中需要自己设定的东西叫做hyperparameters   第一步中的未知参数是机器自己找出来的】

     ③update w iteratively

     wº移动步伐后为w₁,步伐为η∂L/∂w,重复以上步骤

  • 停下来的情况:①失去耐心,最多计算几次就结束 ②微分值算出来刚好是0
  • 该方法存在的问题:没有真正找到最好的解,没有找到那个可以让Loss最小的w,可能只找到Local minima 而找不到global minima。真的可以让Loss最小的地方叫做global minima(最大值)   还有Local minima(极小值)。但如果真正的去训练网络,自己用这个方法,可以发现local minima是一个假问题,真正面临的问题不是local minima而是另有其它

  • 两个参数使用Gradient Descent的步骤

对两个参数进行计算后绘制等高线图及使用Gradient Descent方法的过程如图所示:

上述三个步骤所得到的结果是一个让人满意的结果吗?也许不是。这三个步骤合起来叫做训练,是在已经知道的资料上进行计算Loss。而我们真正的目的是要去测明天未知的点阅次数。

因而接下来应该拿这个函数去预测一下未来一年的每天的可能点阅次数,然后得到平均误差,结果发现在没看过的资料上误差值比看过的资料要大

分析结果继续优化  真实结果有周期性——七天一循环,周五六观看人数少

因此我们可以修改模型,改为将前七天的资料直接复制到拿来当做进行预测的数据。甚至可以考虑更多天28天、56天。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/436710.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何测试网络质量?

如何测试网络质量? 通过百度网盘分享的文件:winMTR 链接:https://pan.baidu.com/s/1Zfw4jciNhng35nfwBlF75Q 提取码:6622 –来自百度网盘超级会员V2的分享 下载WINMTR工具,在启动处输入www.baidu.com 判断方法&…

借助spring的IOC能力消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在前边讲到了如何借助HashMap、枚举类、switch-case消除条件判断,这里讲到我们最常见的用spring的IOC能力来消除代码中的逻辑判断。其实大部…

2.点位管理开发(续)及设计思路——帝可得后台管理系统

目录 前言一、页面原型二、修改1、页面展示2、新增 3 、总结思路 前言 提示&#xff1a;本篇继续点位管理的改造 一、页面原型 页面展示新增 二、修改 1、页面展示 页面修改&#xff1a;修改标签换行、顺序顺序、地址过长时换行问题&#xff1b; <el-table v-loading…

JVM(HotSpot):字符串常量池(StringTable)

文章目录 一、内存结构图二、案例讲解三、总结 一、内存结构图 JDK1.6 JDK1.8 我们发现&#xff0c;StringTable移入了Heap里面。所以&#xff0c;应该想到&#xff0c;StringTable将受到GC管理。 其实&#xff0c;1.6中&#xff0c;在方法区中的时候&#xff0c;也是受GC管…

工单管理系统功能解析,企业运营效率提升利器

工单管理系统如ZohoDesk提供工单生成分配、跟踪、数据分析、客户服务管理及移动兼容等功能&#xff0c;提升效率、增强服务、便于监管和降低成本&#xff0c;是现代企业信息化建设的重要部分。 一. 工单管理系统一般有哪些功能 1. 工单生成与分配 工单管理系统的基础功能是创…

19 vue3之自定义指令Directive按钮鉴权

directive-自定义指令&#xff08;属于破坏性更新&#xff09; Vue中有v-if,v-for,v-bind&#xff0c;v-show,v-model 等等一系列方便快捷的指令 今天一起来了解一下vue里提供的自定义指令 Vue3指令的钩子函数 created 元素初始化的时候beforeMount 指令绑定到元素后调用 只…

Java增强for循环遍历集合删除指定值不安全问题

在这里因为remove方法有两种参数&#xff0c;一种是对象&#xff08;删除此元素&#xff09;&#xff0c;一种是Integer &#xff08;删除此下标对应的元素&#xff09;。恰好我对象类型就是Integer&#xff0c;所以或默认为删除下标对应元素&#xff0c;造成下标越界不安全。可…

Python的异步编程

什么是协程&#xff1f; 协程不是计算机系统提供&#xff0c;程序员人为创造。 协程也可以被称为微线程&#xff0c;是一种用户态内的上下文切换技术。简而言之&#xff0c;其实就是通过一个线程实现代码块相互切换执行。 实现协程有那么几种方法&#xff1a; greenlet&…

高校体育场小程序|高校体育场管理系统系统|体育场管理系统小程序设计与实现(源码+数据库+文档)

高校体育场管理系统小程序 目录 体育场管理系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道…

关于Elastic Search与MySQL之间的数据同步

目录 前言 思路分析 同步调用 异步通知 监听binlog 选择 实现数据同步 思路 运行项目 声明交换机、队列 1&#xff09;引入依赖 2&#xff09;声明队列交换机名称 3&#xff09;声明队列交换机 发送MQ消息 接收MQ消息 前言 Elastic Search中的酒店数据来自于MyS…

C++进阶(3): 二叉搜索树

二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一颗空树&#xff0c;或者具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有的节点的值都小于等于 根节点的值若它的右子树不为空&#xff0c;则右子树上所有的节点的值都大于等…

指针(4)

目录 1. 数组名的理解 但是有两个例外 sizeof(数组名)&#xff0c; • &数组名 2. ⼀维数组传参的本质 2.1指针打印数组 3.冒泡排序 4.二级指针 5 指针数组 5.1 指针数组模拟二维数组 1. 数组名的理解 前面数组中提到 数组名的地址就是首元素的地址&#xff0c; 代…

国庆节快乐

葡萄城在这里祝大家国庆快快乐&#xff1a; 10月葡萄城活动&#xff1a; 公开课 【从软件应用走向数据应用——葡萄城技术赋能数据挖掘】 新版本发布&#xff1a; 活字格 V10.0 Update1新版本发布

【cache】浅析四种常用的缓存淘汰算法 FIFO/LRU/LFU/W-TinyLFU

本文浅析淘汰策略与工作中结合使用、选取&#xff0c;并非针对算法本身如何实现的 文章目录 FIFOLFULRUW-TinyLFU实践与优化监控与调整 FIFO first input first output &#xff0c; 先进先出&#xff0c;即最早存入的元素最先取出&#xff0c; 典型数据结构代表&#xff1a;…

2024年10月1日历史上的今天大事件早读

989年10月1日 北宋政治家范仲淹出生 1814年10月1日 反法联盟各参加国在奥地利首都维也纳召开会议 1927年10月1日 苏联开始实施第一个五年计划 1930年10月1日 中国收回威海卫租界 1931年10月1日 日本人在东北拼凑伪政权 1938年10月1日 大型纪录片《延安与八路军》开拍 194…

65.【C语言】联合体

目录 目录 1.定义 2.格式 3.例题 答案速查 分析 4.练习 答案速查 分析 5.相同成员的联合体和结构体的对比 6.联合体的大小计算 2条规则 答案速查 分析 练习 答案速查 分析 7.联合体的优点 8.匿名联合体 1.定义 和结构体有所不同,顾名思义:所有成员联合使用同…

VS code user setting 与 workspace setting 的区别

VS code user setting 与 workspace setting 的区别 引言正文引言 相信有不少开始接触 VS code 的小伙伴会有疑问,user setting 与 workspace setting 有什么区别呢?这里我们来说明一下 正文 首先,当我们使用 Ctrl + Shift + P 打开搜索输入 setting 后,可以弹出 4 个se…

【2023工业3D异常检测文献】M3DM: 基于混合融合的多模态工业异常检测方法

Multimodal Industrial Anomaly Detection via Hybrid Fusion 1、Background 随着3D传感器的发展&#xff0c;最近发布了具有2D图像和3D点云数据的MVTec-3D AD数据集&#xff0c;促进了多模态工业异常检测的研究。 无监督异常检测的核心思想是找出正常表示与异常之间的差异。…

Android Studio Dolphin 中Gradle下载慢的解决方法

我用的版本Android Studio Dolphin | 2021.3.1 Patch 1 1.Gradle自身的版本下载慢 解决办法&#xff1a;修改gradle\wrapper\gradle-wrapper.properties中的distributionUrl 将https\://services.gradle.org/distributions为https\://mirrors.cloud.tencent.com/gradle dis…

2024 maya的散布工具sppaint3d使用指南

目前工具其实可以分为三个版本 1 最老的原版 时间还是2011年的&#xff0c;只支持python2版的maya 2 作者python3更新版 后来作者看maya直到2022上还是没有类似好用方便的工具&#xff0c;于是更新到了2022版本 这个是原作者更新的2022版本&#xff0c;改成了python3&#…