深度学习理论(李宏毅

2023-05-16

2022 - 再探宝可梦、数码宝贝分类器 — 浅谈机器学习原理_哔哩哔哩_bilibili

more parameters, easier to overfit, why?

但是怎么定这个有未知数的function呢、那通常假设你没有什么想法的话、往往你需要先对你的资料做一些观察、想象一下,假设有一个function可以成功的分类宝可梦跟数码宝贝、那这个function它应该长什么样子

所以,开始进行机器学习之前,也许我们先对资料进行一些观察。

好在经过一番观察以后。我发现 他们虽然长得很像,但其实还是有显著差异:画风不同

 

很多package呢可以帮你把一个图片里面的线呢把它画出来。细节不重要,总之扣一个library自动会产生这种边线的图

那怎么知道一张图片的边线比较简单还是复杂呢?算一下图里白色的pixel有多少

e函数代表,线条的复杂程度

 func. f只有一个未知参数h

这个func. f完全可以一般化到更复杂的情景,比如 h可以换成之前录音里讲过的θ

未知参数 所有的可能性集合起来叫 H,他的可能性是你自己决定的,这里我们假设说做完边缘探测后白色点的数目不会超过1万,这里不需要考虑小数点

|H| 在H里有多少可能的选择,这个数叫做  模型的复杂程度

模型的复杂程度很高,代表说他现在定出来的这个含有未知数的func.里面,选择性很多

接下来我们来定loss,

首先要有资料, loss是根据资料计算出来的,

给一个h,根据某一组dataset来计算loss

训练资料集,有个假设,训练资料集里的每一笔资料,是从一个更大的资料里被sample出来的,sample的过程有一个限制叫i.i.d.,独立同分布,即 sample每一笔资料时 每笔之间是independent,每次sample时分布永远是固定的,

有了D(train)之后,就可以找出一个h,让 用Dtrain所计算出的loss值 越小越好

期待理想和现实越接近越好,理想是找到一个h(all),用在D(all)上得到一个loss

h(train)和h(all)显然不同,因为是从不同的资料里找出来的,他们要minimize的loss func.是不一样的,loss func.不只是和h有关,也和define这个loss func.的资料有关

h(all)是D(all)上最好的h,

h(train)和h(all)到底有多大差距?

实际应用里,收集D(all)显然不切实际,所以常见做法是准备一个D(test),是从D(all)sample出来的,你期待这个D(test)对所有data是有代表性的

假设 图鉴里的819只宝可梦和971只digimon已经非常充足了,来看看分布长什么样?

我们把他的线条复杂程度画出来,分布如图,

纵轴代表有这种负责度的动物的个数

问题:even lower than h(all)?

但是,h(all)最低是说他在D(all) 这组data上、他的loss最低。并不代表他在所有可能的资料集上,他的loss 是最低的。

我们真正关心的是如果我们把h(train)用在D(all)上时,错误率是多少。

从D(train2)例子 我们得到结论,结果好坏 取决于你sample到什么样的资料

什么叫好的trainning data  用数学式表示:

δ是一个你自己设的数值,看你希望理想跟现实有多接近。大一点可以是0.1,小一点可以是0.00001

你只要能够sample到一个trainning的资料,满足:

对所有的h而言,计算在D(train)上 跟计算在D(all)上面的loss 差距<=δ/2

这意味着D(train) 跟D(all)很像,所以不管拿什么样的h过来,算出来的loss都是差不多的

 

 classification和regression的差距只是loss func.不同

sample到一组坏的训练资料概率有多大?

怎么计算橙色点占有的几率总共多大?直接一个个点算显然很麻烦。下面的方法来估测:

 

 

 

 N调大,每一个h可以弄坏的training data set变少了,要把某一个training set弄坏的难度就增加了

h数目变少,也可以让差的data set被sample到的几率变小

 前者是说,训练集中实例数多了,直观看,实例越多,越接近真实分布,自然不容易得到坏模型;后者是说模型变简单了,少了一些参数,自然得到坏模型的概率就小了。

加总有超过1的情况时有发生,所以几乎没有人在实作上会特别把这些理论拿出来在实际资料上进行计算。

这个理论在试图解释原理,告诉你说 model 的complicity和训练资料到底对结果造成什么影响

 VC-dimension  是一个方法,来计算一个参数是continues的模型的复杂程度

 H很小时,可以选择的h就很有限,L(h(all), D(all))就没办法很小,”大海捞针,针不在海里“

 

 2022 - 鱼与熊掌可以兼得的机器学习_哔哩哔哩_bilibili

 

why hidden layer?

我们可以通过一个hidden layer,制造出所有可能的function

怎么用network逼近这条线

piecewise linear function可以逼近任何function

why deep?

 e.g. 语言辨识

早年 :

一小段一小段的声音讯号,预测属于哪个phononing

WFST  rule-based,phononing转成文字

现在:你可以弄个Seq2Seq  的model,丢进声音讯号,直接输出文字

 deep learning真正的优势,当你要产生某个function时,需要较少的参数,比较不容易overfitting

奇偶校验(Parity Check)

 d是输入的sequence的长度,

 relu就是y=x(x>0),y=0(x<0)

 

 

 目标function  复杂且有规律,deep network更优,

需要多复杂:  y=x^2     even 可以


 复习;为什么需要深度学习?为什么需要hidden layer?

【合集】深度学习理论_李宏毅_Deep Learning Theory_哔哩哔哩_bilibili

每个network都是一个function

给定一个structure,填入不同的参数,得到的是一个function space

network structure:决定了neuron怎么连接,但没确定参数

deep 为什么比较好?

给定一个function,兜不同架构的network ,

同样的参数量下,deep network可以fit的比较好

或者希望network  fit 目标函数到某一个精确度,deep network需要的参数量是比较少的

 

 can shallow network fit any function?

(shallow network指只有一个hidden layer)

 universality theory:任何continuous的function 都可以用一个只有一个hidden layer的network来fit

证明:

一个由ReLU的activation function所组成的network,他定义出来的function,长相都是piecewise linear的,

 L-Lipschitz function,一个比较smooth的function

output 变化会被bound在某个范围内,

 L越大 代表function变化越快,越复杂,自然需要越多neuron 去fit

 ε代表,fit的accuracy, ε越小,要求的精准度越高,需要的neuron越多

CONTINUOUS...


梯度下降法

 在做梯度下降,就好像在玩帝国时代,

地图上多数地方都未知,这个地图上的海拔就是loss func,的值,现在要找海拔的最低点,冲撞车所在的位置就代表了一组参数,现在我们要用梯度下降方法,改变冲撞车位置, 调整参数,找到loss最低的地方,

首先随机初始一个位置,看看周围哪里比较低,就往低的地方走一步,重复,直到环顾四周最低的时候停下来,local minima,但是我们永远不会知道是不是global minima,除非开天眼

 为什么用梯度下降法,update参数loss会不降反增,

人物前面比较低、右边比较低、按照梯度下降法,应该往右前方踏出一步,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习理论(李宏毅 的相关文章

  • [云计算]OpenStack - Neutron

    Neutron在OpenStack中的位置 可以为虚拟机或者 OpenStack 组件提供网络服务 xff0c xff08 由 Nova network 独立出来的 xff09 随着需承载业务的能力的增长作为 Nova 子组件无法满足 过程
  • 后台架构师除了技术,还有97件事,你知道吗?

    对于架构师 xff0c 很多人可能觉得很笼统 架构师到底需要学习什么 xff1f 学习完哪些技术就可以到架构师的水准 在行业内的话其实并没有一个非常明确的标准 技术是一方面 xff0c 但是如果仅仅只是技术的话 xff0c 具体一名合格的架
  • Failed to read artifact descriptor for xxx.jar

    mavne 项目 pom xml 文件标红 错误如下 xff1a Failed to read artifact descriptor for xxx jar Failed to read artifact descriptor for x
  • imx6q平台上移植mt7601

    本文描述如何将MT7601 WiFi模块移植到IMX6Q开发板上 xff0c 分析移植过程中碰到的问题 xff0c 分析错误原因 xff0c 提供解决办法 一 MT7601实物图 二 验证开发板和USB MT7601硬件是否正常 步骤1 x
  • 在图片上画出标注目标框和类别python程序

    在图片上画出标注目标框和类别python程序 xff0c 还是比较简单的 xff0c 直接上一份代码 xff1a usr bin python coding UTF 8 2018 07 11 by DQ import cv2 import
  • iOS性能监控及自动化测试辅助工具对比-tidevice、py-ios-device(pyidevice)、sonic-ios-bridge(sib)

    对比项 tidevice py ios device xff08 pyidevice xff09 sonic ios bridge xff08 sib xff09 是否开源 github地址 https github com alibaba
  • git中tag与release的创建以及两者的区别

    简介 本文辨析在参与开源项目时会遇到的tag与release的概念区别与联系 xff0c 并比较两者的创建方法 定义 标签 xff08 tag xff09 是特定提交 xff08 commit 一个指针 xff0c 也就是每个tag对应一个
  • 如何评价数仓好坏

    评价一个数仓的好坏可以涉及相当多的维度 xff0c 这里简单分享一些在实习时了解到的比较看重的方面 模型合理性 一个数仓模型的诞生往往是为了满足产品提出来的业务需求 xff0c 但是如果一个模型仅仅只能做到完全为这一次需求而服务的话 xff
  • 数据倾斜的判断方法和解决方案

    数据倾斜的判断方法 首先点开任务的sparkUI界面中的Stages xff0c 对Duration一列进行排序 xff0c 观察看有没有某个stage出现运行时间远大于其它stage的情况出现 xff0c 假设有的话 xff0c 就点开D
  • 数据开发中的资源管理优化(spark运行)

    在数据开发中 xff0c 资源管理主要看关注于队列整体的CPU使用率 xff0c 内存使用率或者单个任务的CPU使用率 xff0c 内存使用率 CPU使用率 默认情况下是一个core执行一个task 如果此时CPU利用率过低 xff0c 那
  • 互联网大厂SQL真题(二)

    题目 xff1a 每天的日活数及新用户占比 新用户占比 61 当天的新用户数 当天活跃用户数 xff08 日活数 xff09 如果in time 进入时间和out time 离开时间跨天了 xff0c 在两天里都记为该用户活跃过 新用户占比
  • 互联网大厂SQL真题(三)

    题目 xff1a 近一个月发布的视频中热度最高的top3视频 问题 xff1a 找出近一个月发布的视频中热度最高的top3视频 注 xff1a 热度 61 a 视频完播率 43 b 点赞数 43 c 评论数 43 d 转发数 新鲜度 xff
  • Spark三种常见JOIN方式

    Spark join 基本原理 Spark join的基本实现流程如下图所示 xff0c Spark将参与Join的两张表抽象为流式表 StreamTable 和查找表 BuildTable xff0c 通常系统会默认设置StreamTab
  • 遛一遛8266的定时器

    一 xff1a 简述 硬件为ESP LAUNCHER开发板 使用GPIO12 要求是某一定时间指示灯状态发生改变 ESP8266定时功能的实现有两种方式 xff1a 软件定时器和硬件定时器 软件定时器的接口在 ESP8266 NONOS S
  • MYSQL8.0以上版本忘记ROOT密码

    MYSQL8 0 43 忘记Root密码 xff1a 1 以超级管理员打开cmd xff0c 关闭mysql服务2 跳过权限验证登录mysql3 在新的窗口中登录mysql4 切换到mysql xff0c 将密码置空 5 设置加密规则并更新

随机推荐

  • 深度学习【13】tensorflow保存graph和参数为pb文件

    from tensorflow python framework graph util import convert variables to constants graph 61 convert variables to constant
  • plsql查询数据显示为乱码解决方法

    使用plsql查询数据显示为乱码 xff1a 查看数据库编码 xff1a 通过网上搜索 xff0c 发现需要设置环境变量 xff0c 添加以下环境变量 xff1a LANG 61 zh CN GBK NLS LANG 61 34 SIMPL
  • 对抗网络之目标检测应用:A-Fast-RCNN

    对抗网络之目标检测应用 xff1a A Fast RCNN 论文 xff1a A Fast RCNN Hard Positive Generation via Adversary for Object Detection 点击下载 Caff
  • make -j20 出现以下报错: Ensure Jack server is installed and started

    如果出现的报错是 xff1a build core ninja mk 148 recipe for target 39 ninja wrapper 39 failed 综上所述 xff0c 其实就是 xff1a Android7 0 xff
  • QT中 窗口部件的 背景图片 的设置

    QT中 窗口部件的 背景图片 的设置 分类 xff1a QT 2013 04 08 11 06 359人阅读 评论 0 收藏 举报 目录 43 如何设置对话框的自定义的背景颜色 xff1f 2010 03 14 14 34 11 分类 xf
  • 刷LeetCode的一些心得(0基础大龄转码上谷歌)

    我之前就是完全0基础 大龄转码 xff0c 刷题上千然后进谷歌的 这里0基础指的是没学过编程语言 xff0c 没学过数据结构和算法 xff0c 一上来就直接做题那种 第一道题two sum xff0c 我显然不会做 我的笨方法就是看答案 x
  • 在Centos8 中使用Stratis管理本地存储(一)

    导读Stratis是RHEL8 Centos8中提供的一个新的本地存储管理工具 xff0c 它将有助于在块设备上创建分层存储 在RHEL8 Centos8中 xff0c 可以通过安装两个软件包获得Stratis 在RHEL7 xff0c 我
  • ncat命令使用实例

    导读Ncat工具功能类似于cat命令 xff0c 但用于网络 它是一个命令行的工具 xff0c 用于跨网络读取 写入和重定向数据 它被设计成一个可靠的后端工具 xff0c 可以与脚本或其他程序一起使用 ncat可以是端口扫描工具 xff0c
  • Ubuntu 20.04 使用realmd加入AD域

    导读本文展示如何使用 realmd sssd将 Ubuntu 20 04加入到 Active Directory 域 本文还进一步为通过 AD 登录的域用户配置 sudo 规则 设置主机名和DNS 下面命令用来设置正确的主机名和dns服务器
  • Linux下合并文件

    导读 我们在先前的文章中介绍过 cat 命令 的使用 xff0c 了解到该 命令 用于获取文件内容并将其输出到屏幕或其他设备中 事实上 xff0c cat 命令的最初目的是连接文件 xff0c 所以我们可以用它来合并文件 我们在先前的文章中
  • 私有云有哪些优势?

    导读从RightScale 2017的报告中我们发现 xff0c 平均每家公司正在使用1 8个公有云和2 3个私有云 xff0c 同时正在准备使用1 8个公有云和2 1和私有云 从这项数据中我们不难发现 xff0c 公司对于私有云的使用程度
  • 通过sonic-ci-helper插件与Sonic平台结合实现多设备批量安装应用

    一 sonic ci helper 插件 sonic ci helper 是为对接Jenkins CI流程建设的小助手 下载地址 xff1a Sonic Download Center 两种安装方式 xff1a xff08 1 xff09
  • 在Centos8 中使用Stratis管理本地存储(二)

    本文介绍如何通过向现有Stratis池中添加新磁盘和添加缓存磁盘 下面将介绍添加 删除 快照等内容 系统环境 Centos8 向Stratis池中添加其他磁盘 在Stratis管理下 xff0c 将新的块设备添加到现有池非常容易 在上一篇文
  • ubuntu升级后,停留在tty1界面,进不去桌面

    ubuntu升级后 xff0c 提示输入用户名 密码 xff0c 出现以下界面 xff1a 无法显示桌面 输入startx xff0c 即可进入桌面
  • Debian 无法拉取 https 源 -----清华源Debind-stretch

    已经配置好的清华源tsinghua sources Debind stretch可以直接docker pull 无法拉取 https 源 Debian 的软件源配置文件是 etc apt sources list 将系统自带的该文件做个备份
  • 阿里云弹性计算资源

    1 弹性计算 1 1 轻量级应用服务器 针对轻量级应用而生 xff0c 共享容器化的服务器 xff0c 使用个人网站 中小企业网站 个人博客等应用 1 2 企业级服务器 xff08 ECS xff09 企业场景对业务稳定性的要求高 xff0
  • tensorflow2的GPU版本安装

    一 安装Anaconda与Python 详情直接参考我的这篇文章Anaconda安装与配置 二 安装CUDA 1 首先查看本机GPU对应的cuda版本 xff0c 如下图所示 xff0c 本机cuda版本为11 6 xff0c 后面选择的c
  • C#控件及常用设计整

    1 窗体 1 2 Label 控件 3 3 TextBox 控件 4 4 RichTextBox控件 5 5 NumericUpDown 控件 7 6 Button 控件 7 7 GroupBox 控件 7 8 RadioButton控件
  • 五、中断服务程序的流程

    1 中断服务程序的流程 保护现场 中断服务 恢复现场 中断返回 保护现场 xff1a 程序断点的保护 xff08 中断隐指令完成 xff09 xff0c 寄存器内容的保护 xff08 进栈指令 xff09 保护程序的断点 包含了两部分内容
  • 深度学习理论(李宏毅

    2022 再探宝可梦 数码宝贝分类器 浅谈机器学习原理 哔哩哔哩 bilibili more parameters easier to overfit why 但是怎么定这个有未知数的function呢 那通常假设你没有什么想法的话 往往你