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

news2024/9/28 5:00:54

目录

前言

课程预览

第一讲

机器学习基本概念


前言

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

课程:

(强推)李宏毅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.coloradmin.cn/o/2172355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录Day17 图论-2

103. 水流问题 本题思路很简单 要求我们找到可以满足到达两个边界的单元格的坐标 有一个优化的思路就是 我们从边界的节点向中间遍历 然后用两个数组表示 一个是第一组边界的数组 一个是第二边界的数组 如果两个数组都遍历到了某一个单元格 就说明该单元格时满足题目要求的 #…

【Linux笔记】在VMware中,为基于NAT模式运行的CentOS虚拟机设置固定的网络IP地址

一、配置VMware虚拟网络 1、打开VMware虚拟网络编辑器: 点击VMware主界面上方的“编辑”菜单,选择“虚拟网络编辑器”。 2、选择NAT模式网络: 在虚拟网络编辑器中,选择VMnet8(或其他NAT模式的网络)。 取消勾…

ubuntu18.04 NVIDIA驱动 CUDA cudnn Anaconda安装

1、安装NVIDIA驱动 a.查看推荐驱动 ubuntu-drivers devicesb.打开软件更新,选择相应的显卡 c.重启查看安装情况,输入nvidia-smi 2、安装CUDA 下载链接https://developer.nvidia.com/cuda-toolkit-archive 安装CUDA: sudo bash cuda_11…

ECharts图表图例3

java 用ecplise软件 可视化图表 代码&#xff1a; <! DOCTYPE html > < html > < head > < meta charset " UTF -8"> <1--引入 ECharts 脚本--> < script src " js / echarts . js "></ script > <…

力扣(leetcode)每日一题 2516 每种字符至少取 K 个 | 滑动窗口

2516. 每种字符至少取 K 个 给你一个由字符 a、b、c 组成的字符串 s 和一个非负整数 k 。每分钟&#xff0c;你可以选择取走 s 最左侧 还是 最右侧 的那个字符。 你必须取走每种字符 至少 k 个&#xff0c;返回需要的 最少 分钟数&#xff1b;如果无法取到&#xff0c;则返回…

专业团队如何提升多媒体翻译水平

随着对全球化内容需求的增长&#xff0c;提供准确且与文化相关的多媒体翻译的复杂性也在增加。Logrus IT团队对这一过程至关重要&#xff0c;确保翻译的各个方面——从语言适应到技术同步——都能以精确、创造性和文化洞察力来处理。以下是我们的专业团队如何在为全球观众转换多…

数据加密标准(DES)详解:原理、步骤及Python实现

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

【H2O2|全栈】关于CSS(8)CSS3扩充了哪些新鲜的东西?

目录 CSS3入门 前言 准备工作 边框属性的扩充 border-image 盒子阴影 背景属性 渐变属性 线性渐变 径向渐变 重复渐变 案例 自定义字体 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 从本期开始&#xff0c;CSS的知识从CSS的2.x时代…

27 基于51单片机的方向盘模拟系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;采用两个MPX4115压力传感器作为两路压力到位开关电路&#xff0c; 采用滑动变阻器连接数模转换器模拟重力加速度传感器电路&#xff1b; 一个按键控制LED灯的点亮与…

看Threejs好玩示例,学习创新与技术(ThreePipe)

下面这个示例我觉得特别棒&#xff0c;我会推荐给我们的美工&#xff0c;以后产品的宣传图用它。比如下面这个图&#xff0c;不需要PS&#xff0c;仅需拖拽一个照片进去&#xff0c;它会自动铺到笔记本电脑上。完成后点击截图就可以得到高清图片&#xff0c;不需要摆拍和PS。大…

机械加工常识

1 机加工工艺 增材&#xff1a;浇铸、3D打印 减材&#xff1a;齿轮机、车床、铣床、磨床 冷加工 热加工&#xff1a;焊接 拔制 2 公差设定与加工精度等级 H7/g6: 1个叫公差&#xff0c;两个合到一起叫公差配合 7和6是加工精度等级 基孔制&#xff1a;a&#xff5e;h形成间隙…

linux-CMake

linux-CMake 1.安装CMake工具2.单个源文件3.多个源文件4.生成库文件5.将源文件组织到不同的目录下6.可执行文件和库文件放置到单独的目录下7.常见的命令 CMake使用。 1.安装CMake工具 sudo apt-get install cmake2.单个源文件 1.先在文件夹里创建两个文件&#xff1a;main.c&…

excel统计分析(3): 一元线性回归分析

简介 用途&#xff1a;研究两个具有线性关系的变量之间的关系。 一元线性回归分析模型&#xff1a; ab参数由公式可得&#xff1a; 判定系数R2&#xff1a;评估回归模型的拟合效果。值越接近1&#xff0c;说明拟合效果越好&#xff1b;值越接近0&#xff0c;说明拟合效果越…

回归预测|基于小龙虾优化LightGBM的数据回归预测Matlab程序COA-LightGBM 多特征输入单输出 含基础模型

回归预测|基于小龙虾优化LightGBM的数据回归预测Matlab程序COA-LightGBM 多特征输入单输出 含基础模型 文章目录 一、基本原理COA-LightGBM 多特征输入单输出回归预测的原理和流程2.1 蟋蟀优化算法&#xff08;COA&#xff09;2.2 LightGBM3.1 数据准备3.2 模型构建3.3 参数优化…

6.8方框滤波

基本概念 方框滤波&#xff08;Box Filter&#xff09;是一种基本的图像处理技术&#xff0c;用于对图像进行平滑处理或模糊效果。它通过在图像上应用一个固定大小的方框核&#xff08;通常是矩形&#xff09;&#xff0c;计算该区域内像素值的平均值来替换中心像素的值。这种…

C# + SQLiteExpert 进行(cipher)加密数据库开发+Costura.Fody 清爽发布

一&#xff1a;让 SQLiteExpert 支持&#xff08;cipher&#xff09;加密数据库 SQLiteExpert 作为SQlite 的管理工具&#xff0c;默认不支持加密数据库的&#xff0c;使其成为支持&#xff08;cipher&#xff09;加密数据库的管理工具&#xff0c;需要添加e_sqlcipher.dll &…

服务器端请求伪造(SSRF)漏洞解析

免责申明 本文仅是用于学习检测自己搭建的靶场环境有关SSRF的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内…

828华为云征文|华为云Flexus云服务器X实例搭建部署H5美妆护肤分销商城、前端uniapp

准备国庆之际&#xff0c;客户要搭个 H5 商城系统&#xff0c;这系统好不容易开发好啦&#xff0c;就差选个合适的服务器上线。那可真是挑花了眼&#xff0c;不知道哪款性价比高呀&#xff01;就像在琳琅满目的选择前。最终慧眼识珠&#xff0c;选择了华为云 Flexus X。至于为什…

嵌入式学习--数据结构+算法

嵌入式学习--数据结构算法 数据结构 1.1数据 1.2逻辑结构 1.3存储结构 1&#xff09;顺序存储结构 2&#xff09;链式存储结构 1.4操作&#xff08;数据的运算&#xff09; 算法 2.1算法与程序 2.2算法与数据结构 2.3算法的特性 2.4如何评价一个算法的好坏&#xff1f; 2.5时间…

在IDEA中构建Jar包,安装Jar包到Maven仓库并在Maven项目中使用

文章目录 0. 关于本文1. IDEA构建Jar包1.1 准备一份Java代码&#xff08;就是你要构建工件的代码&#xff09;1.2 进行如下步骤构建工件 2. 关于Maven3. 将Jar包安装到Maven仓库4. 使用安装的Jar包依赖 0. 关于本文 本文内容&#xff1a; 借助IDEA构建Jar包将Jar包安装到Mave…