李宏毅2021春季机器学习课程笔记1:Introduction, Colab & PyTorch, HW1

李宏毅机器学习(2021)学习笔记 01 李宏毅老师《机器学习2021》课程的学习笔记。 阅读详情

1. Introduction

  1. 机器学习的目的:寻找一个函数,对于给定的输入,这个函数可以输出相应结果。
    例如:一段语音输入,输出识别出的语言、一张图片输入,输出目标种类、“围棋”状态输入,得到下一步落子位置。
    在这里插入图片描述
  2. 根据不同的功能,可以将函数大致分为以下几类:
    1. 回归问题(Regression): 输出是一个标量(scalar)
    2. 分类问题(Classification):给定相应输出选项(classes),输出正确的类型
    3. 结构化学习(Structured Learning):创造有结构的相应输出(图像、文件)

实例

  1. 如何找到这个函数呢?
    老师给我们以一个例子作为示范:预测Youtube上次日的流量
    在这里插入图片描述

    1. 首先以当日流量作为自变量 x x x,次日流量作为预测目标 y y y
      流程如下:建立模型、定义损失函数、优化模型
      在这里插入图片描述
      1. 建立模型:确定函数的结构、参数个数(weight/bias),需要相关domain knowledge以及一定的研究经验,这里我们先从最简单的线性函数: y = b + w 1 x y = b + w_1x y=b+w1​x,其中 x x x是已知的特征feature; w w w是权重weight, b b b是偏置量bias, w w w和 b b b为未知量,需要从数据中学习得到。

      2. 定义损失函数:损失函数是一个关于模型参数的的函数 L ( b , w ) L(b,w) L(b,w),他代表着预测值与标签值label的偏差量,越小说明模型与训练集的预测结果越接近。常用的 l o s s loss loss函数有MAE和MSE等。在这里插入图片描述

      3. 优化模型:在做完一次训练后,我们要找到使得loss更小的模型参数,因此需要优化更新模型的参数。 在这里插入图片描述
        我们使用梯度下降法(Gradient Descent)进行优化,

        1. 对于一个参数 w w w:
          在这里插入图片描述
          1. 首先随机选择一组参数 w 0 w_0 w0​,
          2. 计算出对应的损失函数 l o s s loss loss对于 w w w的梯度,
          3. 根据设定的学习率(learning rate)与梯度相乘作为步长,更新后 w w w
          4. 迭代多次更新 w w w(结束条件:梯度趋于0或达到迭代次数)
        2. 对于两个参数 w w w和 b b b:
          在这里插入图片描述
          在这里插入图片描述
          与一个参数类似,只是微分变为偏微分,梯度下降时同时更新两个参数。
      4. 测试:将输入结果与测试数据进行对比在这里插入图片描述通过对比发现,数据有明显的周期性,因此修改 F u t u r e Future Future为前 j j j日的数据,这样模型的参数量也会随之增加。

    2. 令 j j j =1、7、28、56,分别进行训练测试后,我们发现随着自变量的增加,预测效果变好的速度慢慢变慢。
      在这里插入图片描述
    3. 线性函数变为神经网络
      通过画出函数图像,我们可以发现线性的模型过于simple,不论如何调整参数都无法很好的拟合。
      在这里插入图片描述我们需要一种更为有弹性flexible的模型,这种模型本身的问题称为model bias。
      如下图,这时我们可以用很多条蓝线相加的结果sum来拟合在这里插入图片描述
      通过极限的思想,对于任何一个分段线性函数Piecewise linear curve,甚至是非线性函数,都可以用足够数量的蓝线之和进行拟合。
      在这里插入图片描述
      这种蓝线(hard sigmoid)可以用sigmoid这个函数近似表示
      在这里插入图片描述这样我们只需要改变相应的 c c c、 w w w、 b b b就可以改变sigmoid的形状在这里插入图片描述
      这样,我们就得到了用多个 s i g m o i d sigmoid sigmoid函数进行拟合的最终模型
      在这里插入图片描述
      新的模型相比之前的模型,具有了更多的参数
      在这里插入图片描述
      利用线性代数的知识,我们可以将函数用矩阵的形式表现出来在这里插入图片描述
      将 r r r代入 s i g m o i d sigmoid sigmoid,得到下一步的数值
      在这里插入图片描述
      在这里插入图片描述
      最后,我们就得到了模型的结构,以及相关的未知参数
      在这里插入图片描述
      对于大多数的网络,我们也会使用 R u L U RuLU RuLU来代替 S i g m o i d Sigmoid Sigmoid作为激活函数在这里插入图片描述
      而如果将一层神经网络的输出再作为神经网络的输入代入,那么就构成了多层的神经网络,即深度学习在这里插入图片描述
      在实际的运行过程中,不会一次运行所有数据,而会用batch:将整个数据分成很多batch,每次运行一个batch,update一次参数;将所有batch运行完一次,是为一个epoch。
      batch size也是一个需要设置的超参。
      请添加图片描述

2. Colab使用与上传结果

Google Colab,全名Colaboratory,是由谷歌提供的免费的云平台,可以使用keras、tensorflow等框架进行深度学习。最近Colab平台已经将K80 GPU更换成Tesla T4 GPU,提供了更强的算力,可以完美“薅谷歌的羊毛”。对于刚入门机器学习或深度学习的用户,这个平台是不二之选。Colab网页链接放在这里

  1. 首先,使用这个平台是需要科学上网的,所以如果无法科学上网的同学可以在本地使用jupyter或者pycharm等方法做
  2. 使用这个平台需要有一个google账号,登入后界面如下
    在这里插入图片描述
    在文件这里可以选择文件,以及上传到云端、Github,下载到本地等操作在这里插入图片描述
    在这里选择连接服务器后,可以使用GPU/TPU能够提升训练网络的速度,在菜单栏点击修改-笔记本设置即可改变硬件配置,一般选择GPU模式。在这里插入图片描述
    在这里插入图片描述
  3. 在主界面新建代码块输入如下指令便可查询显卡信息
!nvidia-smi
  1. 导入数据有三种办法:
    - 直接上传文件
    - 上传到Google Drive并导入
    - 从github下载
    第一种方法对于较大的文件,很容易出现断开连接,上传失败的情况。
    一般建议用第二种方法,使用如下代码挂载Google Drive读取数据,这样不会存在数据丢失的情况。
    代码运行后在下方会出现链接,点击链接登录会出现验证码,复制粘贴到方框内便能在文件目录下挂载Google Drive文件夹,读取数据。
from google.colab import drive
drive.mount('/content/gdrive')
!ls

优点:白嫖、对买不起GPU的学生党来说是重大福音、显卡对比前一代K80有较大提升
缺点:连接不稳定,断开就重跑GG,如果想要在CV/NLP领域做科研发好的论文显然性能是不够的,建议配好的服务器或者到极客云/阿里云/腾讯云租界云服务器。

常用命令行

ls : List all files in the current directory
ls -l : List all files in the current directory with more detail
pwd : Output the working directory
mkdir : Create a directory named
cd : Move to directory named
gdown : Download files from google drive
wget : Download files from the internet
python <python_file> : Executes a python file

3. Pytorch

参考文档Deep Learning with PyTorch: A 60 Minute Blitz

4. HW1

代码已上传Github:菜鸡初学者的机器学习

李宏毅机器学习笔记.pdf 李宏毅机器学习&middot;笔记自己整理成了PDF,现在分享给大家。 立即下载

相关推荐

cellranger安装以及使用

接受cellranger count的输出数据,将同一组的不同测序样本的表达矩阵整合在一起,比如tumor组原来有4个样本,PBMC组有两个样本,现在可以使用aggr生成最后的tumor和PBMC两个矩阵,并且进行标准化去掉测序深度的影响。但是由于病毒基因组太小了,且注释结果只有CDS没有exon,所以曲线救国,将CDS整体替换为exon,也不进行过滤了,直接下一步。虽然安装完毕,但是现在要运行cellranger的话需要在终端输入cellranger的整个路径。自动执行这个命令,需要将“

m0_59974475的博客 9397

机器学习笔记1

1.问题模型: 1.1回归问题(Regression): eg:房价预测,温度预测; 1.2分类(Classification): eg:邮件分类,输入图片输出预测; 2.问题求解 2.1建立模型 一般根据domain knowledge建立模型,例如y=w*x+b,x为输入,y为输出,w和b为参数 2.2定义损失函数 MAEloss/MSEloss/Cross-entropy: 2.3优化参数 优化的目标是找到使L最小的参数,即找到使得loss最小的参数w和b 优化方法

wolf_qu的博客 277

从配置文件加载顺序揭秘:为什么你的logback.xml读不到application.yml?

本文深入解析了Spring Boot中logback.xml无法读取application.yml配置的原因,揭示了Spring Boot配置加载机制与日志系统初始化的时序问题。通过对比logback.xml与logback-spring.xml的差异,提供了使用springProperty标签和系统属性传递等解决方案,帮助开发者有效解决日志配置问题。

weixin_29214335的博客 365

Google colab档案存取教学《李宏毅2021机器学习深度学习》

1. 透过档案共用连结 一般来说,Google Drive 的档案连结会是类似下面的结构:https://drive.google.com/open?id=1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV 其中 “open?id=” 后面的那一串乱码称为 file_id 在 colab 中,我们可以直接用 file_id 下载档案,优点是这个过程不需要再手动输入任何讯息,但缺点是下载下来的档案在程式执行完毕后就会消失,也就是每一次都必须重新下载,使得执行时间增加。 # 下載 file_i

weixin_47924038的博客 611

企业微信微盘API权限避坑指南:为什么你的Python脚本无法获取文件列表?

本文深入解析了企业微信微盘API的权限模型,解释了为何即使使用超级管理员账号,Python脚本也可能因权限不足而无法获取文件列表。核心在于微盘API基于“应用身份”而非“用户身份”进行校验,应用只能访问自身创建的空间。文章提供了构建文件上传代理、利用事件回调等合规的替代方案,帮助企业实现高效数据同步。

weixin_29322553的博客 534

NFC门禁卡复制全解析:从M1卡到UID卡的攻防实践

本文深入解析了NFC门禁卡的安全机制与攻防实践。从M1卡基于Crypto1算法的原理漏洞讲起,详细阐述了利用Proxmark3等工具进行侦听、破解密钥及使用UID卡进行复制的完整攻击链条。同时,为防御方提供了从升级CPU卡、启用全扇区认证到部署多因子验证的系统性防护策略,旨在帮助管理员构建更稳固的物理安全防线。

weixin_29182481的博客 1403

李宏毅21《机器学习》课程笔记

课程地址:(强推)李宏毅2021春机器学习课程_哔哩哔哩_bilibili 仅作为个人学习笔记的记录,欢迎大家讨论和指正 1.机器学习基本概念(P2) Machine Learning(机器学习) 机器学习学习到底是什么?一句话概括:让机器具备找一个函式(数)的能力 如:识别语音、识别图片、AlphaGo训练一个合适的函式进行自动下棋,等等。 Different Type Of Function(函数类别) 根据函式的不同,机器学习也有不同的类别 1.Regression 输出为具体.

weixin_55768678的博客 816

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

王老师青少年编程 1741

李宏毅机器学习笔记:RNN循环神经网络

第3个输入为[2,2],结合前一个memory的输入为[6,6],这个时候hidden layer的输出为[16,16],output为[32,32]。这个时候结合前一个memory的输出[2,2],hdden layer的输出为[6,6],output为[12,12]。举例来说,我们输入的第一个向量为[1,1],则hidden layer的输出为[2,2],先被储存起来,输出为[4,4]。这样,将词汇向量化之后,我们指导,网络的输入为一个个的词汇向量,网络的输出则为:y1表示词汇属于。

夏之微风的博客 2690

联想开天N70z/N79Z G1d笔记本Win驱动下载

本文介绍了联想开天N70Z/N79Z G1d笔记本在Win11系统下的驱动安装方法。提供了WiFi网卡驱动(RealtekWlan)和显卡驱动(ZX C960 GPU)的详细安装步骤,包括手动更新驱动和卸载流程。驱动安装后成功支持5G WiFi连接并正确识别显卡型号。文中附有系统信息和安装效果截图,同时提供了官方驱动下载地址及备用下载链接。该指南适用于需要为联想开天N70Z/N79Z G1d笔记本安装Win11驱动的用户参考。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3900

RAG的“诊断艺术”:从测试集结果倒追根源,精准优化检索、排序与生成

当RAG应用给出一个糟糕的答案时,开发者的第一反应可能是:“我的Prompt写得不够好?”这种基于“感觉”的猜测往往是低效的。通过构建一个包含黄金上下文信息的测试集,我们可以像一位经验丰富的医生一样,对RAG系统的各个“器官”进行独立的“健康检查”。一个用于RAG诊断的测试集,除了问题和答案,还需要包含中间环节的“黄金标准”。如果你的RAG流程包含Re-ranker,那么在评估完初期的召回后,需要单独评估Re-ranker的效果。RAG的优化是一个持续的过程,应该形成一个闭环。的文档块尽可能多地召回。

kakaZhui的博客 154

李宏毅 || 机器学习笔记一

李宏毅机器学习2021/2022年学习笔记

JiduoW的博客 6409

零基础学习CANoe Panel(5)——改变变量的值,控件图像也改变,这是怎么回事?

Panel 中控件的图像随着值变化,是怎么回事?

蚂蚁小兵 2146

李宏毅2021春季机器学习课程视频笔记1:Introduction, Colab & PyTorch Tutorials, HW1

李宏毅2021年春季机器学习深度学习课程学习笔记1: Introduction Colab Tutorial PyTorch Tutorial HW1

诸神缄默不语的博客 5166

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

李宏毅《机器学习2022》笔记

李宏毅《机器学习2022spring》笔记

weixin_44298961的博客 2402

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

李宏毅《机器学习》笔记

在GAN中,对于真实的训练样本的分布,记作PdataxPdata​x,这个分布也就是GAN试图去拟合、逼近的分布。另外有一个由参数控制的分布记作PGx;θP_G(x;θ,其实也就是GAN或者说Generator生成的对象的分布。简单来说我们的目标就是让PGx;θP_G(x;θ和越PdataxPdata​x接近越好。

Kazeya的博客 3490

李宏毅机器学习笔记

记录学习李宏毅机器学习的过程,方便知识点的梳理。

m0_69646701的博客 707

1-3 李宏毅2021春季机器学习教程-Google Colab教学-助教许湛然

Introduce Colaboratory, or "Colab" for short, allows you to write and execute Python in your browser, with Zero configuration required Free access to GPUs Easy sharing Colab Demo : Google Colaboratory In this demo, your will learn the following : Dow

csdn_xmj的博客 1081

【学习笔记】李宏毅-机器学习MachineLearning

参数,表示蓝色function的个数。i 越大说明红色curve转折点越多,越逼近真实曲线。将上图的蓝框式子用图展开表示:其中r为x的线性组合,激活函数输入前的形式。r 的三个长表达式可以用矩阵简化成一个式子:图底部的颜色小方块。注意形状代表矩阵格式。所以虚线框和红框内容等价。都是为了计算 r = b+wx计算出r1,r2,r3后,分别通过sigmoid function,得到a1,a2,a3。直接用 a =σ(r)表示。

usernameisnotexist的博客 2313

李宏毅机器学习课程笔记01 | Introduction of Machine/Deep Learning

函数的输入是b和w,函数的输出是输入某个特定的b和w,模型结果是是好还是不好L越大说明模型不好,L越小说明模型好假设有一个损失函数L(0.5k,1) ,模型为y=b+wx1 => y=0.5k+1x1(k是千人的意思)训练数据(本案例过去的订阅次数)输入到模型(函数)中,比如x输入1月1日订阅人数4.8k,计算得到模型预测的y(1月2日订阅人数)为5.3k,但实际只有4.9k求取估测的值跟实际的值(Label) 之间的差距。

好好学习天天向上 1339

李宏毅机器学习 (ML) 课程学习笔记

【持续更新】李宏毅深度学习课程学习笔记。

十子木的博客 944

李宏毅机器学习课程笔记

李宏毅机器学习课程笔记,持续更新~1. Convolutional Neural Network2. Recurrent Neural Network3. Graph Neural Network4. Generative Adversarial Network5. Auto-encoder6. Transformer7. ELMO, BERT, GPT1. Transfer Learning2. Anomaly Detection3. Attack Machine Learning Models4. Ex

godblesstao的博客 1997

[NLP李宏毅笔记一] 机器学习&pytorch&Google Colab

1,不同类型的函数 机器学习的两大类任务:regression和classification EXAMPLE: 输入后台数据,ML预测明日点击量步骤: step1, 【model】y是预测26号观众数(预测不一定对,之后要修正),x是25实际观测数,【unknown parameters】w和b是修正参数,weight、bias。 step2,定义损失函数Loss EXAMPLE: 用2017/1/1预测1/2的值 算的Loss,越小越好,误差越小 两种计算方法 ...

arispy的博客 905

李宏毅-机器学习-RNN-笔记

李宏毅-机器学习课程-笔记

qq_41789315的博客 1291

李宏毅 机器学习

李宏毅机器学习,学习笔记记录——P3深度学习简介、反向传播

qq_61833632的博客 1138
上一篇: 【机器学习基础】(一) 爬山算法 ( Hill Climbing )与模拟退火(SA,Simulated Annealing)
下一篇: 李宏毅2021春季机器学习课程笔记2:General Guidance
Andy in boots
博客等级 码龄7年 73粉丝 69原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值