李宏毅 机器学习与深度学习【2022版】 03

2024-08-30 02:20

本文主要是介绍李宏毅 机器学习与深度学习【2022版】 03,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、卷积神经网络CNN
  • 二、使用验证集,模型还过拟合的原因
  • 三、深度学习的优点
  • 四、Spatial Transformer Layer

一、卷积神经网络CNN

CNN在影像识别中,表现比较好。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
每个感受野 receptive field 都有一个神经元去探测鸟嘴,是没有没要的,所以可以共享它们的参数。


在这里插入图片描述


在这里插入图片描述
如果两个神经元在同一个感受野中,不能共享参数。因为它们的输入相同,参数也相同,将会导致输出也想通。


在这里插入图片描述
可以理解为在一个感受野中,每一个神经元提取一个特征。


在这里插入图片描述
共享的参数称之为filter。如图中,两个红色神经元共享的参数称之为filter 1。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
输入数据与卷积核做内积,得到的加过叫 Feature Map


在这里插入图片描述
每一个filter提取一种特征。


在这里插入图片描述
上图中,的第二层卷积形状为 3 × 3 × 64 3 \times 3 \times 64 3×3×64,是因为输入值有64个通道。

在这里插入图片描述
第二层卷积层的filter大小为 3 × 3 3 \times 3 3×3,它侦测第一层卷积层的范围就是 3 × 3 3 \times 3 3×3,而它实际侦测原图像的范围就是 5 × 5 5 \times 5 5×5,只要叠的层数够深,侦测的范围就会够大。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
Pooling不改变通道数,只是减小长宽。它主要是用来减少数据量的。并不是所有卷积层之后,都要接池化层,比如下围棋,所以需要根据情况,进行使用。


在这里插入图片描述
CNN没有对放大和旋转图片的不变性,所以我们需要data augmentation

二、使用验证集,模型还过拟合的原因

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
所以通常希望待选模型数量要少,训练集要大,就不容易过拟合。


三、深度学习的优点

深度学习可以两者兼顾
在这里插入图片描述


为什么我们想要网络更深,而不是更胖?

在这里插入图片描述
虽然一个隐层的网络可以表现任何函数,而参数量相同的情况下,瘦高的网络比胖短的网络表现更好。


在这里插入图片描述
类比剪纸,先折叠再剪,比直接剪,会少剪很多刀。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
达到相同的效果,深度学习需要更少的参数,进而需要更少的数据就可以避免过拟合。
如果目标函数,即可以是loss特别低的函数,是复杂有规律的,深的神经网络比胖的表现更好,例如在语音、影像上面的应用。


四、Spatial Transformer Layer

在这里插入图片描述
Spatial Transformer Layer作用就是将输入的image旋转变换为cnn认识的数据。当然它也可以transform cnn的feature map。


在这里插入图片描述


例如,如下图,连接箭头的起点的weight设置为1,其他都为0,这样就能完成旋转和平移的变换。
在这里插入图片描述


以下是该NN找出控制该连接的方法:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
这里存在的问题是,在参数为非整数时,得到的 layer l-1 的索引值也是小数。如果简单地取离它最近的索引值,会造成参数的梯度总是为零。因为参数发生略微变化时,输出值: layer l-1 的索引值并不会变化,进而loss不会发生变化,所以梯度总是零,就没法训练优化。


解决方法:可以采用双线性插值法。
在这里插入图片描述


在这里插入图片描述
Localisation net: 就是输出变换矩阵的六个权重参数的神经网络。
Grid generator: 根据Localisation net计算的变换矩阵,实现像素点坐标的对应关系,即由目标图片的索引,计算得到原图片的索引。
Sampler: 对上一步算出的位置(即layer l-1 的索引值),进行双线性插值,得到最终输出。


应用举例如下:
在这里插入图片描述

这篇关于李宏毅 机器学习与深度学习【2022版】 03的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119526

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程