深度学习(1)--基础概念

目录

一.计算机视觉(CV)

二.神经网络基础

三.神经网络整体架构


一.计算机视觉(CV)

(1).计算机视觉中图像表示为三位数组,其中三维数组中像素的值为0~255,像素的值越低表示该点越暗,像素的值越高表示该点越亮。

(2).图像表示 A*B*C,其中A,B分别为图像的长和宽,C则表示图像的颜色通道。

eg: 300*100*3 表示该图像的高度为300,宽度为100,颜色通道为3,即表示该图像有三个颜色通道。(RGB)

二.神经网络基础

1.得分函数:

(1).输入的图片经过得分函数获得对应每个类别的得分,其中x为图片参数,W为权重值参数。

(2).对于32x32x3的图片,一共有3072个像素点,所以像素点矩阵应当是一个3072x1大小的二维矩阵,而每个像素点对应一个权重值,所以权重值矩阵应当是一个1x3072大小的二维矩阵,两个矩阵相乘就可以得到对应该图片类别的一个得分。

(3).b为偏置项,其中W权重参数对结果起决定性作用,b偏置参数对结果进行微调。(b的矩阵大小和得分的矩阵大小相同,对于不同的类别分别进行不同的微调)

eg:将图片分为四个像素点,并选中三个类别图片的权重获取得分值的计算方法:

权重中正值表促进效果,负值表抑制效果,正值越大即对图像的决定性作用越强。

 2.损失函数:

损失函数(loss function)就是用来度量模型的预测值f(x)与真实值Y的差异程度的运算函数,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。

损失函数使用主要是在模型的训练阶段,每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,来降低真实值与预测值之间的损失,使得模型生成的预测值往真实值方向靠拢,从而达到学习的目的。

eg:根据前一步得分函数计算出的得分值通过损失函数来计算损失值

损失函数 = 数据损失 (有多种计算方法)+ 正则化惩罚项(防止过拟合的情况出现)

过拟合:预测值和样本标签值几乎完全一致的情况,损失函数极小但泛化性能差。训练集的损失函数值很小,但是验证集/测试集上的损失函数值很大。

3.前向传播:

传播过程:将得分值转化为概率值再转换为损失值

(1).exp操作是对数进行指数运算(e^x)。

(2).normalize归一化计算,将前一步计算出的值转化为概率。

(3).通过对数函数将概率值转化为损失值。

4.反向传播:

反向传播通过导数链式法则计算损失函数对各参数的梯度,并根据梯度进行参数的更新。

损失对参数梯度的反向传播可以被这样直观解释:由A到传播B,即由 ∂L/∂A 得到 ∂L/∂B ,由导数链式法则 ∂L/∂B=(∂L/∂A)⋅(∂A/∂B) 实现。所以神经网络的BP(Back-propagation)就是通过链式法则求出 L对所有参数梯度的过程。

可以一步一步的计算梯度值,也可以取一整块计算梯度值。

反向传播中的常见门单元:

(1).加法门单元:例如对式子x+y求梯度,分别对x和y求偏导得到的值都是1,所以得到的梯度值均为1*后一个式子计算出的梯度值,相当于均等分配。

(2).MAX门单元:将梯度传给最大的值。

(3).乘法门单元:例如对式子x*y求梯度,分别对x和y求偏导得到的是y和x,所以得到的梯度值分别为y*后一个式子计算出的梯度值以及x*后一个式子的梯度值,相当于互换梯度值。

三.神经网络整体架构

生物模型→数学模型

(1).隐藏层hidden layer1保存着由原始特征转化成的计算机能够识别的特征值。

(2).输入层input layer到隐藏层hidden layer的变化通过矩阵相乘实现,其中输入层矩阵所乘的矩阵即为权重矩阵。eg: I[1x3] X W[3x4] = H[1x4]

(3).hidden layer2保存着对hidden layer1的特征值进一步加工得到的特征值。此时应当乘一个4x4大小的权重矩阵。

(4).最后一步由隐藏层到输出层,其中同样乘以相应的权重矩阵。此时应当乘以一个4x1大小的权重矩阵。

(5).神经元个数越多,效果一般来说会越好,但是要避免过拟合等问题。

激活函数:

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。

神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论你构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。 (在每一层对input值进行权重值的线性计算后再进行激活函数的非线性计算,给下一层的神经元引入非线性元素)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

专业140总分420+南京大学851信号与系统考研经验电子信息通信信号与信息处理

今年专业140,数学140,总420,圆梦南京大学,一年多的备考,期间有段时间,有过犹豫,有过纠结,有过迟疑,但最后还是理性战胜感性,坚持了下来,总结这一年…

RTDETR 引入 超越自注意力:面向医学图像分割的可变形大卷积核注意力

医学图像分割在转换器模型的应用下取得了显著的进展,这些模型擅长捕捉广泛的上下文和全局背景信息。然而,这些模型随着标记数量的平方成比例增长的计算需求限制了它们的深度和分辨率能力。大多数当前的方法通过逐层处理D体积图像数据(称为伪3D),在处理过程中错过了关键的跨…

网址链接的二维码如何制作?扫码怎么跳转其他网页?

随着互联网的快速发展,大家可以从网上找到自己满足自己需求的信息或者其他内容,大多数情况下现在都可以用手机来完成。现在很多的内容都是需要通过扫码来查看的,那想要将一个网址链接生成二维码图片,具体该怎么实现这一需求呢&…

RAMROM

RAM(Random Access Memory),随机存取存储器,也叫主存,又称内存(动态ROM),是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度…

mybatis代码生成器

注意 适用版本:mybatis-plus-generator 3.5.1 以下版本 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。 // 演…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目,重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor,发现并没有安装 同理,也可以安装VSCode的插件 问题解决了…

性能进阶:使用JMeter进行websocket测试【建议收藏】

本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试。 包含websocket插件的下载安装、线程组及sampler的设置、csv参数化和组建分布式测试的方法、如何通过调整参数来获得发压机的最大并发数以及对测试过程的总结。 整篇文章只侧重介绍进行websocke…

磁盘的分区与文件系统的认识

磁盘的认识 了解磁盘的结构: 1、盘片 硬盘首先会有多个盘片构成,类似很多个独立的光盘合并在一起,每个盘片都有2个面,每个盘片都有一个对应的磁头,我们的磁头横移和盘面的旋转就可以读写到盘面的每一个位置&#xff0c…

基于springboot+vue的教师工作量管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

最简单解决:error: reference to ‘***‘ is ambiguous

目录 错误 错误原因 解决办法 错误 6_38.cpp: In function void TowerofHanoi(int, int, int, int): 6_38.cpp:17:9: error: reference to count is ambiguous count; ^ 6_38.cpp:3:5: note: candidates are: int count int count 0; ^ 错误原因…

HCIA——24FTP 的工作原理、功能、TFTP、控制连接、数据连接

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

SpringBoot进阶

SpringBoot解析 SpringBoot起步依赖 SpringBoot在配置上相比Spring要简单许多,其核心在于starter起步依赖。在使用SpringBoot来搭建一个项目时,只需要引入官方提供的starter起步依赖就可以直接使用,免去了各种配置。因为起步依赖可以引入某…

笔试面试题——二叉树进阶(二)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、二叉搜索树与双向链表1、题目讲解2、思路讲解递归展开图3、代码实现 二、从前序遍历和中序…

Flutter轮播图Banner

使用插件:flutter_swiper 实现轮播图 pubspec.yaml 增加 :flutter_swiper : ^lastest_version 在项目文件夹下打开命令行执行:flutter packages get 安装插件 home_page.dart中使用swiper 程序运行:先启动虚拟设备后,执行命令f…

【征服redis16】收官-redis缓存一致性问题解决方案

今天我们来写redis最后一篇:redis作为缓存时如何与数据库实现数据一致的问题。 最近看redis看得有点麻了,这篇就简单描述吧 目录 1.什么是缓存与数据库一致性问题 1.1 缓存一致性的概念 1.2 缓存不一致的场景 2.缓存不一致的解决思路 1.什么是缓存…

Pandas数据重采样

数据重采样 时间数据由一个频率转换到另一个频率 降采样(如D到M)升采样(如M到D) 方法:调用resample 降采样举例 import matplotlib.pyplot as plt import numpy as np import pandas as pd import datetime as dtrng…

git内部原理

git内部原理 介绍目录结构说明 介绍 项目的本地仓库中,包含一个隐藏的.git目录,其不同的文件产生都源于git的各种不同命令造成,文件目录如下所示: 目录结构说明 上面最核心重要的为object目录,目录最主要有三个对象…

【好用的AI工具】推荐测试人在用的Kimi Chat

一、功能介绍 发网址链接文章解析PDF文件分析,可以整理分析文章丢简历、给出面试问题聊天等 Kimi Chat 二、对于测试人带来的帮助 2.1 面试问题总结 问题一:Session和Cookie的区别 seeion 和 cookie 是两种不同的数据存储机制,它们在Web开…

C++ 并发编程 | 线程的状态

一、线程的状态 1、线程的状态 C线程有五种不同的状态:创建、就绪、运行、阻塞、终止。掌握线程状态可帮助我们跟踪程序的执行过程,并解决潜在的竞态条件和死锁问题,掌握它对于编写可靠和高效的多线程应用程序至关重要。下面分别介绍这几种状…

利用Intersection Observer实现图片懒加载性能优化

Intersection Observer是浏览器所提供的一个 Javascript API,用于异步的检测目标元素以及祖先或者是顶级的文档视窗的交叉状态 这句话的意思就是: 我们可以看的图片当中,绿色的 target element(目标元素)&#xff0c…