机器学习和深度学习 -- 李宏毅(笔记与个人理解1-6)

news2025/3/1 1:39:24

机器学习和深度学习教程 – 李宏毅(笔记与个人理解)

day1

课程内容

  1. 什么是机器学习 找函数
  2. 关键技术(深度学习) 函数 – 类神经网络来表示 ;输入输出可以是 向量或者矩阵等
  3. 如何找到函数: supervised Learning 、 self supervised learning (pre train 又叫 Foundation Model 著名的例子有 Bert)、 Generative Adversarial Network、 Reforcement Learning
  4. 进阶内容 : Anomaly Detection 、 Explainable Al 、 Model Attack、 Domain Adaptation、NetWork Compression、 Life- Long learning 、 Meta Learning = learn to learn

Day2

introduction of Machine /deep Learning

Machine 是什么?

函数的不同类型

预测 分类

Structured learning 产生一个有结构的物件

一个例子 : Youtube Channel 的订阅量 找一个函数可以预测明天的观看次数

Step 1. y = w x1 +b Based on domain knowledge

Step 2. Define Loss From Training Data; Loss is a function of parameters L(b, w)

Step 3. Optimization w *, b * = arg min L ; Gradient Descent : 步长等于切线斜率(微分);然后还有一个n (ita)学习率来控制 w的变化长度 – > 通常自己设定hyperparameters

问题: 有可能陷入局部最优点; 可能的改进方法(self thinking)

1 取更好的初始点

2 改变学习率

3 找到所有的局部最优点(可以通过改变学习率进行跳出), 进行比较(例如找到十个不同的 局部最优点,然后进行min)

老师的伏笔: 高斯梯度 真正的痛点是什么?盲猜是 梯度消失 (wrong)

Gradient Descent

高斯梯度法的一般步骤:image-20240405193643648

image-20240331160958811

how to improve linear model?

因为 linear model 过于简单 造成了一定的 model bias; 需要有更多未知参数的model

如图所示 , 红色的线可以由 常数+ 一系列蓝色的线来拟合

image-20240331163714307

具体步骤如下:

image-20240331164018134

0+1+2+3 = red line

发现:

所有的piecewise linear curves 都可以由blue line 组成

发现 more:

beyond piecewise linear 也可以

how to represent this function (blue line )?

image-20240331164617726

用一个近似的曲线表示 sigmoid function

more thinking:

  1. how to find the first sigmoid ? 数学变换?–> 人口增长的背景下,概率论中的伯努利分布 f(x|p)=px (1-p)1-x
  2. and w and b here 和 前面的linear functon 是否有关?无关

实际可用的拟合函数(折线函数)

image-20240331195542107

这里补充说明一点, 之前走了弯路, 以为这里的合成函数是一个分段函数, 后面的学习纠正过来, 这里就是单纯的 三个sigmoid 函数进行了 相加(有点多余, but who knows how could I say that )

NOw we have a new model which is more flexible

image-20240331195721846 image-20240331200013967

这里的w 表示特征,j表示特征的个数, 老师讲 如果是7天的话 j 就是1-7, 有一点点不明不白, 难道说之前的预测例子,是一个多特征的问题吗?

回忆, 好像确实和之前的linear model 有一点点不同, 一开始 取前一天,y = wx1 +b;后来取前七天的时候image-20240331200529105

注意这里的x 表示前j天的订阅次数, w 和b 是需要拟合的参数,也就是说这里至少需要拟合出7 组不同的w 一共有8 个参数(加上 b)。是根据前七天的订阅量, 预估第八天,相当于前七天是 不同的特征,预测第八天的特征,虽然老师这里的例子是实数值;换一个例子来表示可以这样理解: 选西瓜判断好坏瓜, 一开始只选择颜色(取值有 012 ),后来加上了 大小、响度,气味等不同的性状(取值为 0 1 2 ),然后预测瓜的取值(0 / 1 ); 从这个角度理解, 这个玩意儿相当于训练出 不同特征对于 结果影响的权重! nice

得出结论, 是的老师之前讲的例子确实相当于一个多特征的例子 √

言归正传, 那么这里老师讲得到一个 关于w 的参数矩阵, 和b,c 的参数向量,以及 最外面的b ;

那么接下来的问题就变成,优化 这些参数使得 L 最小 (nice!)

image-20240331203102456

卡住了;

简单顺一下这个图是什么意思: x 表示前 1 2 3 天 的订阅量;

当 j 不变的时候, j = 1 ,表示,通过三个 blue line image-20240331203428921去拟合 前一天的订阅量和y(第二天的订阅量)的关系;需要 3*3 +1 = 10 个参数; j = 2 / 3 的时候同上, ok pass ~

注意:w i j _{ij} ij 在这里表示每一个blue line 的斜率,w i j _{ij} ij表示每一个特征在每一次sigmoid 函数中所占的权重

more thinking :

这里的r1 ~r3 表示什么呢?根据式子来理解, 就只能是三种sigmoid 函数方法占预测结果的权重了

Day3

改写为向量和矩阵乘法的格式image-20240405193757628

接下来就分别把r 放到sigmoid方式里

image-20240402155902778

简写以后 (向量化)

image-20240402155920608

整个过程的向量表示: y = b + cT a在这里插入图片描述

一系列线性代数的表示方法(简洁)

Before we find the parameter (unknown) ,define some variable

image-20240402160557674

Loss L(theta)


image-20240402161613791

并不是用L 中的数据来训练参数,每一次更新参数的步骤叫做一次 epoch

Q:老师伏笔, 为什么这里要使用batch?

Day4

image-20240404170836887

这里的batch Size 也变成了hyperparameter

一个hard Sigmoid 也等于两个relu的叠加image-20240404171251360

ActivationFunction

image-20240404171417570

哪一种比较好?

神经网络训练的层数-- 又一个 hyperparameter

image-20240404171637780

a fancy name

image-20240404172105715 image-20240404172252689

为什么深? 而不更宽呢

Fully connect feedforward

在这里插入图片描述

image-20240404174249655

这里可以用来推导矩阵的表示image-20240404174539553

image-20240404174701660

image-20240404175108549

相当于在隐藏层中,做了特征提取;输出层相当于一个多分类器image-20240404175415340

FAQ

image-20240404180133128

Loss 的定义

image-20240404180343018

这里的这个函数用的很奇怪,没见过,但是简单分析一下, 这个式子表示的还是y 和 y ’ 的差距;but含奇怪的一点是 这里老师说 让这个参数越小越好 ……不应该是越大越好吗?因为有一个 负号

明白了 应该就是越小越好, 这里老师拿一个多分类的问题举例,所以这里用到了交叉熵的概念, 信息熵越小, 说明信息的混乱程度越小, 分类的 y1 --y10 越精确,之后的loss 见下一页ppt

image-20240404180942211

啊 这里Loss 为啥上面的系数是 n 啊…… 哦对,我sb,n表示的是c 的序号,而不是幂次;

怎么回事, 怎么乱糟糟的, 这个c i 到底是什么时候出现的?本质上还是对交叉熵的概念不了解导致的

交叉熵(cross Entropy)

…… 这个概念暂时悬而未解吧

这里注意一下哈,

首先这个交叉熵的概念先放下, 就先用最常见的欧氏距离来表示这里的 y 和y '的差距,ok,第一个问题解决了;

第二点, 为什么这里需要用c i 以及它表示的是什么意思, 简单理解的话就是说, 每一个输入对应的一个输出和真实值的距离;因此有多少组输入就会有多少个c

第三点, c 对w的偏微分 一定是 ci 到 cn 同时进行 且等于 0 的,否则不能保证他们的和最小 (c i 到cn的和)

Day5 BackPropagation

什么是方向传播?

在train neru network 的时候 GradientDiscent的运作方式

Gradient Descent

image-20240405004715930

在这里插入图片描述

cn 表示 yn 和yn(head) 距离的function

chain Rule

正向传播:

image-20240405003912719

找到规律,对谁的偏微分 ,就等于该输入

反向传播:

image-20240405010416466
在这里插入图片描述

老师这里说 sigmoid ‘(z )是一个常数, 因为z在决定 前馈的 时候就已经决定好了;提问, 为什么?如何理解这个已经决定好了?
如果是按照常数的理解方法的话, z’ 又从何谈起呢?

…… 这个暂时学不进去了

Day6 BackPropagation(2)

image-20240405191755463

用手推导了一遍具体数字的题目,对反向传播有了更深的理解: 本质上就是梯度下降法;没有丝毫新奇之处;只在于 在深度学习中, L(g(h(……w))),然后我们无法直接求出 L对w 的微分, 需要经过chain rule来进行,这个过程就是反向传播;

至于老师这里说的 sigmoid ‘(z )是一个常数;是因为 z 在前面的前馈中已经计算出来了,就等于输入值和w的线性相加,所以带入以后是一个常数;其实老师讲的很清楚了,是自己对过程不太清晰,把自己绕进去了。

两个case:

case1 . output layer

直接求即可

case2 . hiden layer(not output Layer)

我猜测还是和之前的一样,直到变成case1 为止

image-20240405192123796 image-20240405192242622

ok 我猜对了~嘿嘿

image-20240405192813225

ok 小结一下,反向传播的意义在于减少运算~ 与其正向的求不出来算好几遍 对输出层的偏微分, 不如最开始就直接算 输出层的偏微分

但是扩大的倍率(图中的三角形)需要前一次的正向传播才能求出

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

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

相关文章

Redis 最佳实践 [后端必看]

文章目录 1. Redis 键值设计1.1 优雅的 key 结构1.2 拒绝 BigKeyBigKey的危害如何发现BigKey①redis-cli --bigkeys② scan 扫描③第三方监控④网络监控 如何删除 BigKey 1.3 恰当的数据类型总结: 2. 批处理优化3. 服务器端优化-持久化配置4. 服务器端优化-慢查询优…

产品经理有门槛吗?

转行NPDP也是很合适的一条发展路径,之后从事新产品开发相关工作~ 一、什么是NPDP? NPDP 是产品经理国际资格认证,美国产品开发与管理协会(PDMA)发起的,是目前国际公认的唯一的新产品开发专业认证&#xff…

移植 amd blas 到 cuda 生态

1,下载源码 GitHub - ROCm/rocBLAS: Next generation BLAS implementation for ROCm platform $ git clone --recursive https://github.com/ROCm/rocBLAS.git 2, 编译 2.1 不带Tensile的编译 如果是在conda环境中,需要deactive conda 环境…

线上商城做活动,页面氛围布置不能少

一个商城系统要做营销,该从哪些方面入手营造商城活动氛围,对于线上商城系统来说,除了营销的价格氛围,另一个重要的氛围就是视觉氛围,能让人第一眼注意到,并产生兴趣,这就迈出了营销的关键一步。…

《springcloud alibaba》 五 gateway网关

目录 gateway基础版本pom.xmlapplication.yml启动类测试 gateway集成nacosorder-nacos和stock-nacos项目微调cloud-gateway调整测试 gateway集成nacos简写版本内置断言自定义断言工厂规范 全局过滤器gateway流控降级pom.xmlapplication.yml测试流控具体配置api流控 降级代码版本…

数字社交的新典范:解析Facebook的成功密码

在当今数字化时代,社交媒体已经成为人们日常生活的重要组成部分,而Facebook作为最知名的社交媒体平台之一,其成功之处备受瞩目。本文将深入解析Facebook的成功密码,探讨其在数字社交领域的新典范。 1. 用户体验的优化 Facebook注…

Dude, where’s that IP? Circumventing measurement-based IP geolocation(2010年)

下载地址:https://www.usenix.org/legacy/event/sec10/tech/full_papers/Gill.pdf 被引次数:102 Gill P, Ganjali Y, Wong B. Dude, Wheres That {IP}? Circumventing Measurement-based {IP} Geolocation[C]//19th USENIX Security Symposium (USENIX Security 10). 2010.…

UE_导入内容_Maya静态网格体导出为FBX的常规设置

注意事项:单位设置统一为cm;轴朝向,Maya默认y轴朝上,UE4 z轴向上;变换枢轴,UE4会将导入模型前世界中心作为枢轴中心,要旋转就需要注意了;法线,UE4内材质默认单面显示&…

ubuntu 更改 ssh 默认端口

出于加固安全考虑,一般公司会禁用 ssh 的 22 端口号,因此我们需要改为其他端口。 1、ssh 命令行登录 进入台式机,修改 /etc/ssh/sshd_config 文件中的 Port 配置行,将 22 改为 8022,保存修改后,重启 ssh 服…

MySQL 主从 AUTO_INCREMENT 不一致问题分析

作者:vivo 互联网数据库团队 - Wei Haodong 本文介绍了 MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。 一、问题描述 1.1 问题现象 在 MySQL …

如何选择一款好用的电子名片,作为全员营销工具,又提升企业品牌形象!

移动互联网发展渐趋成熟的今天,企业的营销方式已经发生的很大的转变,传统的营销方式已经无法适应数字化时代的营销节奏,使用数字化营销工具能够帮助企业实现快速传播,精准定位你客户群体。同时,通过对营销数据的分析&a…

2024最新最简单的安卓底部菜单栏教程

2024最新最简单的安卓底部菜单栏教程 大界面跳转 public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);BottomNavigationView b…

SQLite Android 绑定(十八)

返回:SQLite—系列文章目录 上一篇:SQLite 在Android安装与定制方案(十七) 下一篇:SQLite—系列文章目录 ​ 应用程序编程 加载共享库 在使用任何与 SQLite 相关的方法或对象之前,本机 SQLite 必…

数字货币:金融创新的未来?

随着科技的进步,数字货币作为一种新型的金融工具正逐渐走进人们的视线。那么,数字货币究竟是什么?它有哪些优势?它是否真的能够引领金融创新的未来?本文将从专业角度出发,深入探讨这些问题。 一、数字货币的…

MySQL高级(索引分类-聚集索引-二级索引)

目录 1、主键索引、唯一索引、常规索引、全文索引 2、 聚集索引、二级索引 3、回表查询 4、通过id查询和通过name查询那个执行效率高? 5、 InnoDB主键索引的 B tree 高度为多高呢? 1、主键索引、唯一索引、常规索引、全文索引 在MySQL数据库&#xff0c…

在vite中限制node版本

1.修改package.json文件 {"name": "wine-store-frontend","version": "0.0.0","private": true,"type": "module","scripts": {"dev": "vite --open","build"…

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波——附3个算法源码

效果: MPU6050姿态解算-卡尔曼滤波四元数互补滤波 目录 基础知识详解 欧拉角 加速度计(Accelerometer)与姿态测量 陀螺仪(Gyroscope)与姿态测量 姿态解算算法1-互补滤波 姿态解算算法2-四元数法 姿态解算算法3-卡尔曼滤波 组成 1.预测状态方程 2. 预测协方…

Hibernate多事务同时调用update(T t) ,字段被覆盖问题

前言 今天现网有个订单卡单了,经过排查发现没有任何异常日志,根据日志定位发现本应该更新的一个状态,sql肯定执行了(使用了Hibernate的ORM框架),但是数据库里面的状态没有更新。大概逻辑如下 String hql from orderInfo where i…

Qt6 multimedia开发一个摄像头录像机

Qt 6 附加模块multimedia可用于多媒体的开发,今天使用它可以快速开发一个摄像头录像机。 毕业季用作本科毕业设计软件应该可以的。 支持的功能 无边框窗口,并且支持拖拽,调整窗口大小切换摄像头配置摄像头原格式、分辨率、帧率、画面质量、…

opencv图像处理技术(形态学操作)

形态学(Morphology)是数学中研究形状、结构和变换的分支,而在图像处理中,形态学主要用于描述和分析图像中的形状和结构。形态学操作通常涉及基本的集合运算,如腐蚀、膨胀、开运算、闭运算等,以及与结构元素…