第六周:机器学习

news2025/1/21 0:57:43

目录

摘要

Abstract

一、深度学习的优化算法

1、SGD

2、SGDM

3、Adagrad

4、RMSProp 

5、Adam算法

二、分类器

三、卷积神经网络

总结


摘要

接着上周学习率在训练中的影响,本周对深度学习常见的几种优化算法做了总结,着重分析Adam算法的优缺点和具体步骤;接着又深入学习了分类器的用法,以宝可梦和数码宝贝为例,提出了数据收集不全的问题并提出了解决方案;最后较浅层次的了解了卷积神经网络中卷积层的运作方式,以及一些常用术语。 

Abstract

Following last week's impact of learning rate in training, this week's summary of several common optimization algorithms for deep learning, focusing on the strengths and weaknesses of Adam's algorithm and specific steps; followed by an in-depth study of the use of classifiers, with Pokémon and Digimon as examples of the incomplete collection of data and proposed solutions; and finally, a more superficial level of understanding of the workings of the convolutional layer in the convolutional neural networks, the and some common terms. 

一、深度学习的优化算法

1、SGD

SDG是随机梯度下降法,是梯度下降法的其中一种。该算法的优点就是收敛效果较好,一般都能够降到最低点;缺点是收敛速度较慢,因为每一步都要计算各个方向的梯度,而且可能会出现震荡的情况,会导致停在local minima处。 

 

2、SGDM

SGDM是带有动量的梯度下降法。加入动量后,梯度下降的方向还由上一次移动的方向和大小决定与梯度共同决定,解决了卡在local minima出不来的情况。

 

3、Adagrad

Adagrad是自适应学习率算法。通过所有梯度历史平方值之和的平方根\sqrt{\sum_{i=0}^{t-1}(g_{i})^{2}},从而使得步长单调递减。它根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题。 

 

该算法存在一个问题:如果刚开始的梯度非常大,那么学习率就会很小,梯度不断累加导致走几步就可能出现stuck的情况(学习率很小几乎为零)。 

4、RMSProp 

RMSProp算法使用了小批量随机梯度按元素平方的指数加权平均来调整学习率。 

 

能够看出RMSProp算法与Adagrad算法的计算不同点在学习率下边的分母,前者是之前所有的梯度和,后者是融入动量思想加权平均(只关注前一段梯度)。后者解决了由于学习率小导致stuck的情况。

但是该算法也存在一个问题:没有使用SGDM,所以没有解决stuck在local minima的情况。

5、Adam算法

Adam(Adaptive Moment Estimation):就是将SGDM算法和Adagrad算法结合。是深度学习中常用的优化算法。Adam算法的核心思想是利用梯度的一阶动量和二阶动量来动态调整学习率,既保持了动量法的优点,又结合了RMSProp的自适应学习率特性。 

 从上图算法中可以看出,t是梯度更新的步长,g_{t}是第t次梯度大小和方向,m_{t}v_{t}分别是一阶动量和二阶动量,\hat{m_{t}}\hat{v_{t}}分别是m_{t}v_{t}的偏置矫正,\theta则是需要更新的所有未知参数的集合。

Adam算法的具体步骤:

step1 计算梯度g_{t}

step2 计算指数加权平均值m_{t}及其平方的指数加权平均值v_{t}

step3 对m_{t}v_{t}进行修正

step4 用修正后的\hat{m_{t}}\hat{v_{t}}值对参数进行更新

指数加权平均?

使得数据更加平滑,减少噪声。在距离预测数据更远的数据影响小,距离较近的影响较大。公式如下:m_{t}=\beta_{1}m_{t-1}+(1-\beta_1)g_{t}v_{t}=\beta_{2}v_{t-1}+(1-\beta_{2})g_{t^{2}}

修正?

若是处理数据序列足够长,那么指数加权平均可以使得数据光滑;但是若处理数据序列较短,学习的步长过小,就会导致训练的效果不佳,所以要进行修正。公式如下:\hat{m_t}=m_t/(1-\beta_1^t)\hat{v_t}=v_t/(1-\beta_2^t)

L2正则化和权重衰减?

在AdamW算法中,它将“权重衰减”引入了更新参数的方法中,而在Adam算法中更新参数是L2正则化方法。

参考文章1:5分钟快速掌握 Adam 优化算法 

参考文章2:深度学习中的Adam优化算法详解_adam完整公式及参数-CSDN博客

参考论文: http://arxiv.org/pdf/1412.6980

warm-up? 

在深度学习训练初期,梯度较大,希望学习率小一些,防止出现stuck在local minima或者梯度爆炸,这个时期称为warm-up期;度过warm-up期后,希望学习率增大一些,加快训练效率,该时期称为中期;最后需要学习率不断下降直至结束,该时期称为learning rate decay期。 

参考文章:https://www.cnblogs.com/chentiao/p/16778453.html 

二、分类器

案例:宝可梦和数码宝贝分类

step1 带有未知参数的function

step2 选定损失函数 

从上图可以看出总的损失函数L(h,D)的计算方式,其中h是指分界参数(该特征中用来区分宝可梦和数码宝贝),D是指数据集中的数据(x_i,y_i)

也可以用交叉熵!!!

问题:数据全部收集齐全很困难

解决:选取一些范例(假设是在完整数据集中选出来的),并假设范例之间独立同分布

上图中h^{all}的计算是在搜集到了完整数据集D^{all} 的理想状态下得出的,而h^{train}是在搜集了一部分数据集D^{train}的现实状态下得到的。

前面在计算中可以得出,D^{all}中最好的hh^{all}D^{train}中最好的hh^{train}。但是h^{train}是否是D^{all}最好的仍存疑。

现在需要比较h^{all}h^{train}在同一数据集D^{all}上的差距。比较好的情况是希望二者很接近。

 从直观角度看,左边h^{train1}表现较好,使得“理想”与“现实”很接近;右边h^{train2}表现较差,舍得“理想”与“现实”不太接近。 如何衡量是否二者比较接近,如下:

下面的式子是大前提(一直成立),也就是无论在完整数据集D^{all}还是部分选取数据集D^{train}上,得出的h都使得损失值比较接近。现在就要逐步推导出“现实”与“理想”的差距。也就是下面的式子成立的条件下,上面的式子也成立。推导如下:

问题:理想和现实差距较大的概率怎么计算?如何让其概率降低?

解决1:

 

假设h_1h_2 、h_3分别使得一部分数据集fail,那么总数据集fail的概率就是各个h的fail率之和。

  

解决2:N增大,或者h减小

h的减小会导致一些矛盾(next lecture) 

三、卷积神经网络

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。

影像分类

一张图片可以分为3维的向量,分别是长、宽、通道数(RGB)。长、宽决定了图片的像素,通道数决定了图片的颜色。

问题1

获取观察图片的一小部分,而不是全部。如下图:

每一个neural都着重关注一个pattern,各司其职 

简化1

每个neural只负责一个receptive field(感受野),将3*3*3的感受野拉直为27个input作为下图蓝色neural的输入。可以人为设定每个neural负责的区域。 

不同neural负责的receptive field可以相互重叠,而且不同的neural可以负责相同的receptive field 

如何调整不同的感受野?滑动窗口的方式,如下:

 

首先需要选定滑动的步长stride,从左至右滑动或从上至下滑动。若是滑动到边界,有一部分超出边界时,需要padding进行填充(填充为0或者其他方式均可)。 

问题2

相同的部分却出现在不同图片的不同位置,比如下图“鸟嘴”的位置不相同,但是负责它们的neural是一致的:

简化2 

既然不同neural的是负责同一件事情,那么可以ichu参数共享的概念,如下:

 

共享参数,两个在不同图像中相同的pattern,可以让处理该pattern的neural共享参数filter 

卷积层 

以上两个问题的提出和解决,实际上就是卷积操作的两个步骤。首先是将图像分为N*N个pattern,接着需要选定给卷积核,也就是共享参数n*n的filter,然后将它从左至右、从上至下与receptive  field进行计算,得到特征图。

 

step1 filter1与红框中的receptive field对应元素进行相乘加和 

step2 红框向右按照stride大小移动

step3 重复上述,直至图像的所有部分都被扫完一遍

step4 若是filter不止一个,那么就再次用filter2与原图像进行计算,得到好几个channel。 

注:其中步长stride、filter数量、receptive fiel大小都是根据实际情况而定的。 

问题3

下采样(池化)为了减少运算量,但是不会影响物体本身

简化3 

下采样pooling实际上就是缩小图片,一般是在卷积以后进行依次pooling。方法有max pooling、mean pooling等。 

以max pooling为例,步骤如下:

step1 将卷积后的特征图分为几个相同大小的部分(如上图4个红框)

step2 找出每个部分最大的特征值(如上图红框中的黑框) 

总结

本周学习主要分为以下三个部分:第一是深度学习的常用优化算法,一方面复习了前面的内容和总对所学优化算法的总结,另一方面学到了Adam算法解决了梯度下降的stuck问题(卡在local minima或者震荡不往前走);第二是针对分类任务时数据集收集不完整做出了解决;第三是初识卷积神经网络。接下来,我会更深入的了解分类器中的矛盾问题并学习如何解决,在CNN学习完后将进行案例代码实践。

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

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

相关文章

太阳光强光照射实验在材料科学中的应用

强光照射实验方法 所谓的强光照射即使用人造太阳光模拟器设备模拟太阳光的真实光照环境。强光照射实验是一种在材料科学中常用的实验方法,主要用于研究材料在强烈光照条件下的稳定性、性能变化及其内在机制。实验通常涉及将材料置于特定波长和强度的光源下&#xff…

【vulnhub】DerpNStink靶机

靶机安装 下载地址:DerpNStink: 1 ~ VulnHub 信息收集 靶机IP扫描 nmap 192.168.93.0/24 端口扫描,开放21、22、80端口 nmap -A 192.168.93.158 -p- 目录扫描 dirsearch -u http://192.168.93.158 进行网址访问,页面上只有个单词DeRPn…

IJCAI 2024 | 时空数据(Spatial-Temporal)论文总结

2024 IJCAI(International Joint Conference on Artificial Intelligence, 国际人工智能联合会议)在2024年8月3日-9日在韩国济州岛举行。 本文总结了IJCAI2024有关时空数据(Spatial-temporal) 的相关论文,如有疏漏,欢迎大家补充。…

【微服务】springboot 整合 SA-Token 使用详解

目录 一、前言 二、认证与授权介绍 2.1 什么是认证 2.1.1 认证的目的 2.1.2 认证基本步骤 2.2 什么是授权 2.2.1 常用的授权模型 三、微服务中常用的认证安全框架 3.1 Spring Security 3.1.1 Spring Security 特点 3.2 JWT (JSON Web Tokens) 3.2.1 JWT特点 3.3 其…

鸿蒙笔记--Socket

这一节主要了解鸿蒙Socket通信,在鸿蒙系统中,Socket TCP通讯是一种常用的网络通信方式,它提供了可靠的、面向连接的数据传输服务。它主要用到ohos.net.socket这个库; 栗子: export default class SocketUtils {public static c…

跟《经济学人》学英文:2024年08月03日这期 How deep is Britain’s fiscal “black hole”?

How deep is Britain’s fiscal “black hole”? Rachel Reeves sets out her first big decisions as chancellor set out: 陈述,阐明 “Set out” 的意思是陈述、阐明或展示。在这个上下文中,指的是Rachel Reeves作为财政大臣阐明了她的第一个重要决…

数据结构(8):排序

1 排序的基本概念 稳定性!!! 分类[内部、外部] 机械硬盘的读取是很慢的!!! 总结 2 内部排序 2.1 插入排序 前面时 保存好的 是排好序的哦 一个一个检查!然后放到改在的位置 只有小的时候换&am…

AI论文速读 | 2024MM【开源】时间序列预测中频率动态融合

📰题目:Pre-Training Identification of Graph Winning Tickets in Adaptive Spatial-Temporal Graph Neural Networks 🖋作者:Xingyu Zhang(张星宇), Siyu Zhao(赵思雨), Zeen Song…

200kg大载重履带遥控无人车技术详解

200kg大载重履带遥控无人车(以下简称“无人车”)是一种专为复杂地形和高负载运输设计的智能化车辆。它集成了先进的动力系统、高效的行走机构、灵活的操控系统以及强大的负载能力,能够在人难以到达或危险的环境中执行物资运输、勘探探测、应急…

【八股文】网络基础

1.简述一下TCP和UDP的区别? 特性TCP(Transmission Control Protocol)UDP(User Datagram Protocol)连接类型面向连接,需要建立三次握手连接无连接,发送数据无需建立连接数据传输提供可靠的数据传…

5款免费写作神器,高效率自动生成文章

在当今数字化的时代,写作变得越来越重要,而各种免费的写作神器也应运而生,为创作者们提供了极大的便利。以下是本文为大家详细介绍5个免费写作神器,帮助大家提高写作效率,让创作不再烦恼。 1、火呱ai写作 这是一款综合…

MySQL事务,锁,MVCC总结

mysql中最重要的就是事务,其四大特性让我们维持了数据的平衡,一致。那么事务究竟是什么,与什么相关,他的使用步骤,以及使用过程中我们会遇到什么问题呢?下面我们一起学习交流! 1.MySQL的存储引擎&#xff…

Redis学习[7] ——如何使用Redis实现分布式锁?

如何用Redis实现分布式锁? 9.5.1 为什么Redis能用来实现分布式锁? 分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。如下图所示: Redis可以被多个客户端共享访问,可…

jenkins自动化构建docker镜像并上传至harbor仓库

1、插件下载 首先进入jenkins之后需要现在“Maven”、“GitLab”、“Jdk”、“SSH”、“Git”的相关插件,这里不再赘述,需要什么插件直接安装即可 搜索对应插件后选择直接安装即可 2、系统全局配置 2.1 Maven配置 配置maven安装的相应的setting文件 …

How does age change how you learn?(2)年龄如何影响学习能力?(二)

Do different people experience decline differently? 不同人经历的认知衰退会有不同吗? Do all people experience cognitive decline uniformly?Or do some people’s minds slip while others stay sharp much longer? 所有人经历的认知衰退都是一样的吗?还是有些人…

计时器(Python)

代码 import time from tkinter import ttk import threading from tkinter import scrolledtext import tkinter as tkclass TimerApp:def __init__(self, root):self.root rootself.root.title("计时器")self.screen_w, self.screen_h self.root.winfo_screenwi…

Conditional Detr

encoder和detr相同,只修改了decoder部分。

(STM32笔记)九、RCC时钟树与时钟 第一部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 九、RCC时钟树与时钟 九、RCC时钟树与时钟1、时钟树HSE时钟HSI时钟锁相环时钟系统时钟HCLK时钟PCLK1时钟PCLK2时钟RTC时钟独…

iPhone苹果手机Safari浏览器怎么收藏网页?

iPhone苹果手机Safari浏览器怎么收藏网页? 1、iPhone苹果手机上找到并打开Safari浏览器,并访问要收藏的网页; 2、打开网页后,点击导航上的更多功能; 3、在更多里,找到并点击添加到个人收藏,完成储存即可添…

2023华为od机试C卷【分配土地】Python实现

思路: 我们可以用哈希结构,此题适合用字典,键为出现的非零数字,值为列表,列表为【minrow,maxrow,minrol,maxrol] import sys def main():m,n map(int,input().split())rects {}for i in range(m):nums [int(i) f…