机器学习深度学习——从全连接层到卷积

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——非NVIDIA显卡怎么做深度学习(坑点排查)
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助

我们之前讨论的多层感知机十分适合处理表格数据,其中行对应样本,列对应特征。对于表格数据,我们寻找的模式可能涉及特征之间的交互,但是我们不能预先假设任何与特征交互相关的先验结构。

之前猫狗分类的例子中:假设我们有一个足够充分的照片数据集,数据集中是拥有标注的照片,每张照片具有百万级像素,这意味着网络的每次输入都有一百万个维度。如果我们将隐藏层的维度降低到1000,也会有109个参数,用多层感知机训练这玩意,这还不如直接记忆得了。
现如今的卷积神经网络可以帮助实现这个问题,是机器学习利用自然图像中一些已知结构的创造性方法。

从全连接层到卷积

  • 不变性
  • 多层感知机的限制
    • 平移不变性
    • 局部性
  • 卷积
  • 沃尔多在哪里
    • 通道

不变性

假设我们想从一张图片中找到某个物体,无论哪种方法找到这个物体,都应该和物体的位置无关。
我们可以从儿童游戏”沃尔多在哪里”得到灵感:尽管沃尔多的装扮很有特点,但是在混乱场景中找到他也不容易。然而沃尔多的样子并不取决于他潜藏的地方,因此我们可以使用一个“沃尔多检测器”扫描图像。该检测器将图像分割成多个区域,并为每个区域包含沃尔多的可能性打分,卷积神经网络就是将空间不变性的这一概念系统化。
总结一下两个原则:
1、平移不变性:不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应。
2、局部性:神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系。

多层感知机的限制

首先,多层感知机的输入是二维图像X,隐藏表示H(也就是第一层的输出)在数学上是一个矩阵,在代码中表示为二维张量。
使用X(i,h)和H(i,j)分别表示输入图像和隐藏表示中位置(i,j)的像素。为了使每个隐藏神经元都能接收到每个输入像素的信息,我们将参数从权重矩阵替换为四阶权重张量W。假设U包含偏置参数,我们可以将全连接层表示为:
[ H ] i , j = [ U ] i , j + ∑ k ∑ l [ W ] i , j , k , l [ X ] k , l = [ U ] i , j + ∑ a ∑ b [ W ] i , j , a , b [ X ] i + a , j + b [H]_{i,j}=[U]_{i,j}+\sum_k\sum_l[W]_{i,j,k,l}[X]_{k,l}\\ =[U]_{i,j}+\sum_a\sum_b[W]_{i,j,a,b}[X]_{i+a,j+b} [H]i,j=[U]i,j+kl[W]i,j,k,l[X]k,l=[U]i,j+ab[W]i,j,a,b[X]i+a,j+b
其中,从W到V是希望索引a和b通过在正偏移和负偏移之间移动覆盖了整个图像,只是形式上的转换。

平移不变性

检测对象在输入X中的平移,仅导致隐藏表示H中的平移。也就是说V和U实际上不依赖于(i,j)的值(这当然也是我们的目的),即:
[ V ] i , j , a , b = [ V ] a , b [V]_{i,j,a,b}=[V]_{a,b} [V]i,j,a,b=[V]a,b
因此我们可以简化H为:
[ H ] i , j = u + ∑ a ∑ b [ V ] a , b [ X ] i + a , j + b [H]_{i,j}=u+\sum_a\sum_b[V]_{a,b}[X]_{i+a,j+b} [H]i,j=u+ab[V]a,b[X]i+a,j+b
这就是卷积了,使用系数V(a,b)对位置(i,j)附近的像素(i+a,j+b)进行加权得到H(i,j)。注意:V(a,b)的系数比V(i,j,a,b)少很多,前者不再依赖于图像的位置了。

局部性

我们为了收集训练参数H(i,j)的相关信息,不应该偏离他很远。因此我们做个限制:令|a|>△和|b|>△的范围的V都置0,这样就可以把偏离它很远的地方都去掉了。所以我们可以把H重写为:
[ H ] i , j = u + ∑ a = − △ △ ∑ b = − △ △ [ V ] a , b [ X ] i + a , j + b [H]_{i,j}=u+\sum_{a=-△}^△\sum_{b=-△}^△[V]_{a,b}[X]_{i+a,j+b} [H]i,j=u+a=b=[V]a,b[X]i+a,j+b
上式就是一个卷积层,而卷积神经网络是包含卷积层的一类特殊神经网络,V被称为卷积核。

卷积

为啥上面操作被称为卷积,从数学中的卷积说起,两个函数f,g的卷积被定义为:
( f ∗ g ) ( x ) = ∫ f ( z ) g ( x − z ) d z (f*g)(x)=∫f(z)g(x-z)dz (fg)(x)=f(z)g(xz)dz
对于二维张量,则为:
( f ∗ g ) ( i , j ) = ∑ a ∑ b f ( a , b ) g ( i − a , j − b ) (f*g)(i,j)=\sum_a\sum_bf(a,b)g(i-a,j-b) (fg)(i,j)=abf(a,b)g(ia,jb)
和之前写的i+a、j+b其实一个意思的。

沃尔多在哪里

在这里插入图片描述
如图所示,卷积层根据滤波器V选取给定大小的窗口,并加权处理图片。

通道

这个方法有一个问题,我们忽略了一个图像一般包含三个通道(R、G、B)。实际上,图像不是二维的,而是一个由高度、宽度和颜色组成的三维张量,前两个轴与像素的空间位置有关,而第三个轴可以看作每个像素的多维表示。因此我们将X索引为X(i,j,k),由此卷积相应地调整为V(a,b,c)。
由于输入图像是三维的,我们的隐藏表示H也最好采用三维张量(对于每一个空间位置,我们想要采用一组而不是一个隐藏表示)。这样一组隐藏表示可以想象成一些互相堆叠的二维网格。我们可以把隐藏表示想象为一系列具有二维张量的通道。这些通道有时被称为特征映射(因为每个通道都向后续层提供一组空间化的学习特征)。
为支持输入X和隐藏表示H中的多个通道,我们可以在V中添加第四个坐标即V(a,b,c,d),则:
[ H ] i , j , d = ∑ a = − △ △ ∑ b = − △ △ ∑ c [ V ] a , b , c , d [ X ] i + a , j + b , c [H]_{i,j,d}=\sum_{a=-△}^△\sum{b=-△}^△\sum_c[V]_{a,b,c,d}[X]_{i+a,j+b,c} [H]i,j,d=a=b=c[V]a,b,c,d[X]i+a,j+b,c
其中H中的索引d表示输出通道,随后的输出将继续以三维张量H作为输入进入下一个卷积层。

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

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

相关文章

流量、日志分析

流量分析 知识点: 流量包分析简介 - CTF Wiki (ctf-wiki.org) Wireshark 基本语法,基本使用方法,及包过虑规则_wireshark语法_竹痕的博客-CSDN博客 MISC:流量包取证(pcap文件修复、协议分析、数据提取)…

【linux-keepalive】keepalive避免单点故障,高可用配置

keepalive: [rootproxy ~]# yum install -y keepalived [rootproxy ~]# vim /etc/keepalived/keepalived.conf global_defs {router_id proxy1 //设置路由ID号vrrp_iptables //不添加任何防火墙规则 } vrrp_instance V…

AI Chat 设计模式:13. 代理模式

本文是该系列的第十三篇,采用问答式的方式展开,和前面的文章有一些不同,我不再进行提问了,改为由 GPT 1 号提问,GPT 2 号作答,每一节的小标题是我从 GPT 1 号的提问中总结出来的。我现在是完完全全的旁观者…

H. HEX-A-GONE Trails 2023“钉耙编程”中国大学生算法设计超级联赛(7)hdu7354

Problem - 7354 题目大意:有一棵n个点的树,A和B分别从点x,y开始,每轮可以移动到一个相邻节点,但如果某个节点有人访问过,则两人都不能访问那个节点,先没有点可走的人输,问A有没有必…

LeetCode:Hot100的python版本

94. 二叉树的中序遍历

DOM基础获取元素+事件基础+操作元素

一.DOM简介 DOM,全称“Document Object Model(文档对象模型)”,它是由W3C定义的一个标准。 在实际开发中,我们有时候需要实现鼠标移到某个元素上面时就改变颜色,或者动态添加元素或者删除元素等。其实这些效…

SpringBoot复习:(22)ConfigurationProperties和@PropertySource配合使用及JSR303校验

一、配置类 package cn.edu.tju.config;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component;Component ConfigurationPropertie…

CentOS软件包管理rpm、yum

一、软件包概述 Linux常见软件包分为两种,分别是源代码包、二进制文件包。源代码包是没有经过编译的包,需要经过GCC、C编译器编译才能运行,文件内容包含源代码文件,通常以.tar.gz、.zip、.rar结尾;二进制包无需编译&am…

数据结构 二叉树(一篇基本掌握)

绪论 雄关漫道真如铁,而今迈步从头越。 本章将开始学习二叉树(全文共一万两千字),二叉树相较于前面的数据结构来说难度会有许多的攀升,但只要跟着本篇博客深入的学习也可以基本的掌握基础二叉树。 话不多说安全带系好&…

31 对集合中的字符串,按照长度降序排列

思路&#xff1a;使用集合的sort方法&#xff0c;新建一个Comparator接口&#xff0c;泛型是<String>&#xff0c;重写里面的compare方法。 package jiang.com; import java.util.Arrays; import java.util.Comparator; import java.util.List;public class Practice4 {…

在tensorflow分布式训练过程中突然终止(终止)

问题 这是为那些将从服务器接收渐变的员工提供的培训功能&#xff0c;在计算权重和偏差后&#xff0c;将更新的渐变发送到服务器。代码如下&#xff1a; def train():"""Train CIFAR-10 for a number of steps."""g1 tf.Graph()with g1.as_de…

高绩效项目管理助力企业数字化变革︱海克斯康数字智能大中华区PMO经理周游

海克斯康数字智能大中华区PMO经理周游先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;高绩效项目管理助力企业数字化变革。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 在当今项目驱动的…

【软件工程】3 ATM系统的设计

目录 3 ATM系统的设计 3.1体系结构设计 3.2 设计模式选择 3.3 补充、完善类图 3.4 数据库设计 3.4.1 类与表的映射关系 3.4.2 数据库设计规范 3.4.3 数据库表 3.5 界面设计 3.5.1 界面结构设计 3.5.2 界面设计 3.5.2.1 功能界面设计 3.5.2.2 交互界面 总博客&…

机器学习笔记

文章目录 编码器-解码器Batch Normalization好处 编码器-解码器 第二个input与transformer中的解码器类似。 Batch Normalization 尽量使得w1和w2之间呈现为正圆 训练模型的时候&#xff0c; μ \mu μ和 σ \sigma σ不可以认为是常数&#xff0c;而是包含数据的变量&…

Stable Diffusion - 哥特 (Goth) 风格服装与背景的 LoRA 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132177882 图像来源于 Goth Clothing 的 LoRA 效果&#xff0c;配合哥特 (Goth) 风格服饰的相关提示词。 测试模型&#xff1a;DreamShaper 8 哥…

Linux 权限

1. shell命令及其运行原理 1.1 是什么shell&#xff1f; shell是一个命令行解释器。 1.2 shell的作用&#xff1f; 在Linux操作系统中&#xff0c;用户一般是不与操作系统直接交互的&#xff0c;而是通过一个外壳程序来传递用户的需求和反馈结果给用户&#xff0c;shell就是一…

c++:day4

1.思维导图 2.shell函数获取uid和gid&#xff0c;并用变量接 #!/bin/bashfunction fun() {read -p "输入用户名" necho uid:id -u $necho gid:id -g $n } afun echo $a3.冒泡、选择和快排代码整理 /**************************************************************…

ChatGPT下架官方检测工具,承认无法鉴别AI内容

去年底&#xff0c;OpenAI 推出的 ChatGPT &#xff0c;带来了生成式人工智能涌现的热潮。它不仅能够协助完成撰写邮件、视频脚本、文案、翻译、代码等任务&#xff0c;还能通过学习和理解人类的语言来进行对话&#xff0c;并根据聊天的上下文进行互动。 但随之而来的争议也让人…

神码ai火车头伪原创插件怎么用【php源码】

本篇文章给大家谈谈python小程序代码50 到100行&#xff0c;以及python小程序代码100行&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 火车头采集ai伪原创插件截图&#xff1a; 目录 1 新建文件夹 2 获取指定文件或文件夹的绝对路径 3 删除指定路径的文件 …

中文版开源Llama 2同时有了语言、多模态大模型,完全可商用

可以说&#xff0c;AI 初创公司 LinkSoul.Al 的这些开源项目让海外开源大模型在国内的普及和推广速度与国际几乎保持了一致。 7 月 19 日&#xff0c;Meta 终于发布了免费可商用版本 Llama 2&#xff0c;让开源大模型领域的格局发生了巨大变化。 Llama 2 模型系列包含 70 亿、…