李宏毅机器学习笔记06 | 鱼和熊掌可以兼得的机器学习 - 内容接宝可梦

本章提要

深度学习可以在较少参数量的情况下得到比较低的loss: h a l l = a r g min ⁡ h ∈ H L ( h , D a l l ) h^{all}=arg \min_{h \in H}L(h,D_{all}) hall=argminhHL(h,Dall)

引入

如何权衡模型的复杂程度 Tradeoff of Model Complexity

理论上,理想与现实接近的方法

  1. 增加训练样本数量,N越大 D t r a i n D_{train} Dtrain越接近 D a l l D_{all} Dall P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
  2. 减少模型复杂性,|H|候选项的数目越小, P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。

矛盾点

数据集中样本的数量N我们难以控制,为了理想和现实比较接近,选了一个较小的|H|。|H|太小,能选择的h数量太少,可能找不到使 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小的h。(大海捞针,针不在大海)

|H|较大,可以找到使 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小的h,但是这样理想和现实的差距比较明显。

在H中找出一个h使得 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小,把这个h称为 h a l l h^{all} hall h a l l = a r g min ⁡ h ∈ H L ( h , D a l l ) h^{all}=arg \min_{h \in H}L(h,D_{all}) hall=argminhHL(h,Dall)

=> 最优情况(H很小但又可以让L很低):如果可以找到一个H ① H is Small ,很少的候选成员 ② 成员h都是精英,可以让Loss很低

=> 问题:深度学习如何做到这件事的?

Why Hidden Layer?

核心: 可以通过一个Hidden Layer制造出所有可能的function

隐藏层 (Hidden Layer)是人工神经网络中的中间层,位于输入层和输出层之间。它的作用是对输入数据进行特征提取和变换,为最终的输出层提供高层次特征。

隐藏层的主要任务是通过线性变换和激活函数来捕捉数据中的复杂模式和特征。

怎么找一个function(network)来逼近随便画的一条线? => 可以用Piecewise Linear Curves逼近任何连续曲线

  1. 先将这条线分段,然后将每个分段的端点连接起来,得到分段函数(图中绿色的线) ,使用这个分段函数来逼近原来的黑线。

在这个案例中可能绿色的线不是很逼近黑色的线,但可以直觉的想如果分段分的越细,那么就绿色的线越接近黑色的线。

  1. 可以使用一个hidden layerneural network轻易制造出绿色的线。使用一个常数项+一堆阶梯型的function制造绿色的线。

    观察发现:绿色的线=常数项+一堆特定形状的蓝色function(这里的特定形状指的是图上蓝色function的形状)  => 任何的function都可以`hidden layer的neural network制造出来
    

  1. 怎么表示阶梯型的function(蓝色的线)呢?
    1. 方法1:使用Sigmoid Function逼近蓝色的线。

蓝色的线也称为hard Sigmoid Function

Sigmoid Function(S形函数): y = c 1 1 + e − ( b + w x 1 ) = c s i g m o i d ( b + w x 1 ) y = c\frac{1}{{1+e^{-(b+wx_1)}}} = c\;sigmoid(b+wx_1) y=c1+e(b+wx1)1=csigmoid(b+wx1)

2. 方法2:使用`ReLU`Rectified Linear Unit线性整流单元(两个水平线有一个转折点)表示`Hard Sigmoid`

每一个hard sigmoid可以使用两个线性整流单元Rectified Linear Unit(ReLU)叠加

总结

方式1:使用sigmoid function

  1. hidden layer里每一个neural都可以制造出一个阶梯型的function
  2. 把不同的sigmoid function加起来再加上常数项就可以得到绿色的线
  3. 任何的Piecewise Linear Curves去逼近任何function

neural network选择的activation function 是sigmoid,hidden layer通过设定不同的$ w,b $制造出不同的sigmoid function

方式2:使用ReLU,hidden layer里每一个neural选择的激活函数是ReLU

问题引出:深度学习效果更好

每一列Neural叫做一个hidden layer,很多hidden layer被叫做Deep,这一套技术被叫做Deep Learning深度学习

有一层hidden layer的neural可以产生任何的function,那为什么还要搞deep network(多层hidden layer)?

直觉:当Layer越叠越越深的时候,参数量越多,模型越复杂,理想越来越好。如果有足够的训练资料那么理想和现实也不会差太多。 => 所以深度学习需要很多的资料

这里的直觉只是我们通常这么认为,但不一定正确

问题:当参数量一样(未知参数量一样)的时候,Fat+Short的网络和Thin+Tall的网络谁的效果更好?

实验表明:Thin+Tall的网络效果更好

为什么深度学习效果更好?

虽然一层hidden layer的neural可以产生任何的function,但往往用一个deep的架构更有效率。

:::tips
deep learing的核心:产生同一个function,使用deep的架构需要的参数量更少,可能需要较少的训练资料就可以了(不容易overfitting)。

:::

误解:大模型很多个layer增加了参数,如果没有足够的data,就会产生overfitting。

原因探究:为什么deep?

类别案例

当剪窗花时,直接剪操作很复杂,但如果折起来剪比较有效率。

这里将纸对折的事情可以类比为deep learning里hidden layer做的事情。

当把一个network deep的时候会发生什么

一层的neural

一层的network里包含了两个neural,输入为x,输出为 a 1 a_1 a1,采用的激活函数为ReLU。

假设参数已知,第一个neural的weight=1,bias=-0.5;第二个neural的weight=-1,bias=0.5。所以进入neural的x分别为x-0.5-x+0.5

第一个neural:当输入x>0.5时,输出=2*输入。当输入x<0.5时,输出为0。

第二个neural:当输入x<0.5时,输出=2*输入。当输入x>0.5时,输出为0。

结合起来就可以得到输入的x和输出 a 1 a_1 a1之间的关系。

第二层的neural

a 1 + b i a s a_1+bias a1+bias,这里的bias设置为-0.5。

第二层第一个neural输入为 a 1 − 0.5 a_1-0.5 a10.5,放入一个ReLU

第二次第二个neural输入为 − a 1 + 0.5 -a_1+0.5 a1+0.5,放入一个ReLU

可以很容易知道 a 1 a_1 a1 a 2 a_2 a2的关系和 x x x a 1 a_1 a1的关系一致。

x从0->0.5时, a 1 a_1 a11->0 a 2 a_2 a21->0->1

x从0.5->1时, a 1 a_1 a10->1 a 2 a_2 a21->0->1

这里从课堂上的讲法来说,只有当neural的输出2才会有这个结果,所以弹幕说的老师课后更正应该是正确的。两个ReLu的结果2再求和得到输出。

第三层的neural

a 2 a_2 a2 a 3 a_3 a3的关系 = a 1 a_1 a1 a 2 a_2 a2的关系 = x x x a 1 a_1 a1的关系。、

使用同样的思路,可以得到 x x x a 3 a_3 a3的关系

以此类推

使用deep network输入x与输出y的关系:如果有k层layers,每层有两个neural,总共 2 k 2k 2k个neural,那么输出的y有 2 k 2^k 2k个线段。 => 参数量小,比较简单的模型

使用一个shallow network表示同样的关系:每一个neural只能制造一个线段, 2 k 2^k 2k个线段需要 2 k 2^k 2k个neural。 => 参数量大,比较复杂的模型,复杂的模型更容易overfitting,所以需要更多的资料

如果目标的function是复杂(也不用太复杂)且有规律的(音像、语音),那么deep network优于shallow network

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

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

相关文章

java八股文之JVM

1.什么是程序计数器 程序计数器是 JVM 管理线程执行的“定位器”&#xff0c;记录每个线程当前执行的指令位置&#xff0c;确保程序流程的连续性和线程切换的准确性。线程私有的&#xff0c;每个线程一份&#xff0c;内部保存的字节码的行号。用于记录正在执行的字节码指令的地…

Android设计模式之观察者模式

一、定义&#xff1a;定义对象间一种一对多的依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 二、核心角色&#xff1a; Subject&#xff1a;抽象主题被观察的角色&#xff0c;管理观察者集合&#xff0c;提供注册…

海康gdb流程

gdb相关 在initrun.sh文件里加入&#xff0c;注意需要在hikauto起来之前 # 设置core dump大小 ulimit -c unlimited if [ $? -eq 0 ];then echo "core dump size set success" else echo -e "\33[31m core dump size set fail\33[0m" fi echo …

springBoot统一响应类型3.3版本

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…

【空间变换】欧拉角与四元数

核心 欧拉角描述的是一种变换&#xff0c;只关注变换后的结果&#xff0c;不关注变换过程中的运动 而四元数不仅良好地表示了一种变换&#xff0c;也很好地表示了一种运动过程&#xff0c;又避免了万向节死锁Gimbal Lock变换顺序&#xff0c;是欧拉角变换的一部分&#xff0c;…

基于Linux下的MyBash命令解释器

项目介绍&#xff1a;⼀个⽤C语⾔实现的简单shell&#xff0c;可以接受⽤⼾输⼊的命令并执⾏操作&#xff0c;⽀持多管道和重 定向。 mybash---打造自己的命令解释器 目前我们Linux的系统默认的命令解释器是bash; 命令解释器&#xff08;也称为命令行解释器或shell&#xff0…

Linux常见使用场景

一、文件查看与内容操作 ​1. cat ​作用&#xff1a;查看文件内容&#xff08;一次性输出全部内容&#xff09;。​常用选项&#xff1a; -n&#xff1a;显示行号。-b&#xff1a;仅对非空行显示行号。 ​示例&#xff1a; cat file.txt # 查看文件内容 cat -n fil…

Ingredient-oriented Multi-Degradation Learning for Image Restoration论文阅读

摘要&#xff1a;重点在于关联多个任务本质的联系。 不同恢复任务的关联性很重要。 揭示退化现象的内在机理联系很有意义。 多合一的方法能在单一模型中处理多种退化问题&#xff0c;可扩展性较差。 成分导向范式挖掘不同图像退化现象背后的物理规律或特征模式。 成分导向退化重…

禅道后台命令执行漏洞

漏洞简介 禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体&#xff0c;是一款专业的研发项目管理软件&#xff0c;完整地覆盖了项目管理的核心流程。 禅道管理思想注重实效&#xff0c;功能完备丰富&#xff0c;…

密码学——知识问答

目录 1、阐述公开密钥算法的定义&#xff0c;结合RSA算法说明公钥密码的基本要求。 说明公钥与私钥两种密码学并举例与其应用 1. 公钥密码学&#xff08;非对称加密&#xff09;&#xff1a; 2. 私钥密码学&#xff08;对称加密&#xff09;&#xff1a; 对比公钥与私钥密码…

PDF多表格结构识别与跨表语义对齐:基于对抗迁移的鲁棒相似度度量模型

文章目录 一. 项目结构二.流程分析2.1 批处理器核心代码解析 三. 跨页表格相似度匹配原理3.1 表头内容相似度-特征向量归一化3.2 表头内容相似度-余弦相似度3.3 定时缓存清理 ocr扫描有其局限性。对于pdf文本类型这种pdfbox&#xff0c;aspose-pdf&#xff0c;spire直接提取文本…

es 3期 第27节-运用Script脚本实现复杂需求

#### 1.Elasticsearch是数据库&#xff0c;不是普通的Java应用程序&#xff0c;传统数据库需要的硬件资源同样需要&#xff0c;提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库&#xff0c;不是关系型数据库&#xff0c;不具备严格的ACID事务特性&#xff…

23、web前端开发之html5(四)

十二. HTML5实践示例 前面我们详细讲解了HTML5的特点&#xff0c;包括语义化标签、增强的表单功能、多媒体元素&#xff08;如<video>和<audio>&#xff09;、Canvas绘图、SVG集成以及离线存储等。以下是一些详细的HTML5实践示例&#xff0c;展示如何使用HTML5的新…

海思烧录工具HITool电视盒子刷机详解

HiTool是华为开发的一款用于海思芯片设备的刷机和调试工具&#xff0c;可对搭载海思芯片的机顶盒、智能电视等设备进行固件烧录、参数配置等操作。以下为你详细介绍&#xff1a; 功能用途 固件烧录&#xff1a;这是HiTool最主要的功能之一。它能够将下载好的适配固件文件烧录到…

软考中级-软件设计师 23种设计模式(内含详细解析)

23种设计模式 &#x1f3af; 创建型设计模式&#x1f4cc; 抽象工厂&#xff08;Abstract Factory&#xff09; 设计模式&#x1f4cc; 工厂方法&#xff08;Factory Method&#xff09;设计模式&#x1f4cc; 单例&#xff08;Singleton&#xff09;设计模式&#x1f4cc; 生成…

thinkphp8.0\swoole的websocket应用

环境&#xff1a;centOS7.9、php8.3、thinkphp8.0\think-swoole4.1 我用的官方think-swoole插件 第一步&#xff1a;根据官方文档&#xff0c;需要安装此扩展插件 composer require topthink/think-swoole 第二步&#xff1a;在根目录下config文件夹下编辑swoole.php配置文…

Ubuntu服务器挂载时遇到文件系统错误怎么办

在Ubuntu服务器上挂载分区时&#xff0c;如果遇到文件系统错误&#xff0c;通常可能是由于磁盘损坏、文件系统损坏、不正确的卸载等原因造成的。以下是详细的排查与修复步骤&#xff1a; 一、查看错误信息 首先&#xff0c;尝试手动挂载并观察具体错误&#xff1a; sudo mount …

【设计模式】策略模式(Strategy Pattern)详解

策略模式&#xff08;Strategy Pattern&#xff09;详解 一、策略模式的定义 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一组算法&#xff0c;将每个算法封装起来&#xff0c;并使它们可以相互替换&#xff0c;从而让算法的…

软考笔记5——软件工程基础知识

第五章节——软件工程基础知识 软件工程基础知识 第五章节——软件工程基础知识一、软件工程概述1. 计算机软件2. 软件工程基本原理3. 软件生命周期4. 软件过程 二、软件过程模型1. 瀑布模型2. 增量模型3. 演化模型&#xff08;原型模型、螺旋模型)4. 喷泉模型5. 基于构建的开发…

Vim 实用指南

导航 简介Vim 的来历Vim 语言 Vim 的三种模式Normal&#xff08;普通模式&#xff09;Insert&#xff08;插入模式&#xff09;Visual&#xff08;可视模式&#xff09;三种模式转换 普通模式实用技巧说明复制当前行并粘贴使用上一个命令撤销上一个操作最常用的跳转命令查找对应…