深度学习—神经网络基本概念

news2024/11/18 21:36:45

一,神经元

1.生物神经元与人工神经元

1.1神经元是人脑的基本结构和功能单位之一。人脑中有数1000亿个神经元,其功能是接受(树突),整合(细胞体),传导(轴突)和输出(轴突末梢)信息实现信息转换。

1.2生物神经元特性:兴奋性,传导性

1.3神经元的类型(按功能划分):感觉神经元,运动神经元,联络神经元。

1.4人工神经元

人工神经元单元由线性函数和激活函数构成

3.人工神经网络

3.1生物神经细胞功能比较简单,需要通过很多神经元一起协作完成复杂功能,通过一定的连接方式或信息传递方式进行协作的神经元可以看做是一个网络,就是人工神经网络,简称神经网络ANN

3.2人工神经网络包括输入层,隐藏层和输出层。

3.3根据不同神经元之间的连接关系,我们可以将神经网络分为:前馈网络,反馈网络和图网络

二,感知机

1.感知机是Frank 在1957年所发明的一种最简单的人工神经网络。单层感知机本质上是一个二分类器。

2.1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器本质上是一种线性模型,只能处理线性分类问题,无法处理非线性数据。

3.隐藏层越多,神经网络的分辨能力越强(分类能力的特征表达能力)

4.神经网络在感知器的模型上做了以下三点的扩张:

加入隐藏层,隐藏层可以有多层,增强模型的表达能力。输出层的神经元也可以不止一个,可以有多个输出,模型就可以灵活的应用于分类回归,以及其他的机器学习领域比如将维和聚类等。

对激活函数做扩展,包括Sigmoid函数,Softmax和ReLU等。

三,激活函数

1.激活函数

在这里插入图片描述
在这里插入图片描述

1,Sigmoid函数
是传统神经网络中常用的激活函数,输出值是0-1.
对中央区信号增益比较强(兴奋状态),两侧比较弱(抑制状态)
优点:单调连续,求导连续,输出是有界的网络比较容易收敛
缺点:在远离中心点的两侧导数趋于0,就会造成当网咯比较深时,越来越多的反向传播梯度会落入这个饱和区,梯度的模就会越来越小,难以训练,构成梯度消失.e5da4d989cb5fa6bfe8b9857.png)2.TanH函数
优点:输出值在-1到1之间,是关于0点对称,它比Sigmoid在中间区是变化比较敏感的,接近超出这个区,就会失去敏感性,处于饱和状态,输出输入能保持非线性单调上升下降,容错性比较好
3,Softsign函数
优点在于比Tanh相比更加平坦,更慢,能更好的解决梯度消失问题.导数比Tanh的导数更复杂.
4,ReLU函数
优点;在于梯度下降过程中能快速收敛,导数恒为1,有效缓解梯度消失问题
缺点:没有上界,训练结果会比较发散,在0点处是不可导,如果想要导数需要添加一个定义,转折点处在某些问题上显的不平滑.
5.SoftPlus函数
跟ReLU很像,可以看做是ReLU函数的平滑,根据神经科学家研究,ReLU和Softplus跟脑神经元激活模型很像.
6.SoftMax函数
将向量中的元素介于0-1之间,各个元素和为1,可以经常作用于多分类的输出.

2.如何选择激活函数?
  • 非线性:引入激活函数就是要引入神经网络中的非线性
  • 连续可微性:对于梯度优化方法很必要,如果选择局部不可微的函数,我们就要强行定义此处的函数,比如ReLU.
  • 有界性:如果激活函数有界,基于梯度训练会比较稳定,如果是无界训练会更有效应,但是会比较发散.
  • 单调性:激活函数是单调的话,单层模型相关损失函数会是凸的.
  • 平滑性:有单调导数平滑函数在某些情况下泛化效果是比较好的
3.前向传播

输入信号从输入层传输到输出层的一整个过程
神经网络分为三层:输入层,隐藏层,输出层

四,损失函数

1.损失函数的含义

1.1当我们给网络一个输入,乘以w的初值,然后经过激活函数得到一个输出。然后根据输出值和label相减,得到一个差。然后根据差值做反向传播。这个差我们一般就叫损失,而损失函数,就是损失的函数。

1.2, 损失函数是用来估量你的模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性就越好.

2.深度学习中常用的损失函数
  • 均方误差:一般均方误差更多的用于回归问题,而交叉熵误差更多的用于分类问题.
  • 交叉熵误差:交叉熵误差刻画了两个概率分布之间的距离.是分类问题中使用较多的一种损失函数
3.损失函数的极值

1.目的:损失函数E(W)是定义在权值空间上的函数。我们的目的是搜索使得E(W)最小的权值向量W.
限制:在数学上,尚没有求极值有效方法。
解决思路:负梯度方向是函数下降最快的方向,那我们可以从某点开始,沿着方向一路前行,期望最终可以找到极小值点,这就是梯度下降的核心思想。
4.梯度下降
4.1.全局梯度下降算法:收敛过程非常慢,因为每次更新权值都需要计算所有的训练样例。
4.2,随机梯度下降算法:难以收敛到极值
4.3,小批量梯度下降:兼顾了效率和梯度的稳定性,容易冲过局部极小值,是实际工作中最常用的梯度下降算法

五,反向传播算法

1.误差反向传播算法是神经网络的重要算法。它使用链式求导法则将输出层的误差反向传回给网络,使神经网络的权重有了较简单的梯度计算实现方法。
2.步骤:将损失函数值反向传播给每个计算单元。
每个计算单元根据获得的误差更新权重。

六,卷积神经网络

卷积神经网络是一种前馈神经网络,它的人工神经元可以相应一部分覆盖范围内的周围单元,对于图像处理有出色表现。
1.它包括卷积层,池化层和全连接层
2.CNN避免了对图像的复杂前期预处理而可以直接输入原始图像,因而得到了更为广泛的应用。
2.CNN核心思想—局部感知
2.1,一般认为人对外界的认知是从局部到全局的,图像像素点的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。
2.2,在CNN中,每个神经元只需要收集局部信息。
2.3,优点:减少内存需求模拟视觉皮层中的神经元,每个神经元一次只收集局部信息。
3.CNN核心思想—参数共享
优点:解决图像不变性问题,解决计算和内存需求

七,循环神经网络

1.循环神经是一种通过隐藏层节点周期性的连接,来捕捉序列化数据中动态信息的神经网络,可以对序列化的数据进行分类。
2为何需要RNN
2.1神经网络都智只能单独的去处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
3.RNN的训练
RNN有着非常深的时间维度
4.RNN的问题
4.1,基本的循环神经网络存在梯度爆炸和梯度消失问题,并不能真正的处理好长距离的依赖。
4.2,反向训练时,对于RNN来说,要横向往前推,一直往前推到序列开始的地方。
4.3,梯度消失,梯度爆炸都与距离长度太长有关,前面的权重都基本固定不变,没有训练效果。
5,RNN适用场景
5.1,不太长的相关信息和位置信息。
5.2适用于需要连接前面短期内的信息到当前任务上。

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

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

相关文章

MySQL --用户管理

文章目录 1.用户1.1用户信息1.2创建用户1.3删除用户1.4修改用户密码 2.数据库的权限2.1给用户授权2.2回收权限 如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。 1.用户 1.1用户信息 MySQL中的用户,都存储在系…

Spring Cloud 教程(二) | 搭建SpringCloudAlibaba

Spring Cloud 教程(二) | 搭建SpringCloudAlibaba 前言一、SpringBoot 与 SpringCloud 版本对应关系:二、SpringCloud 与 SpringCloudAlibaba版本对应关系:三、SpringCloudAlibaba版本 与 组件版本 对应关系:四、搭建S…

Django项目配置日志

需求 在Django项目中实现控制台输出到日志文件,并且设置固定的大小以及当超过指定大小后覆盖最早的信息。 系统日志 使用Django自带的配置,可以自动记录Django的系统日志。 可以使用logging模块来配置。下面是一个完整的示例代码,展示了如…

Java | Leetcode Java题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> findAnagrams(String s, String p) {int sLen s.length(), pLen p.length();if (sLen < pLen) {return new ArrayList<Integer>();}List<Integer> ans new ArrayList<Int…

163页制造业变革转型:营销/服务/研发/供应链/制造/质量/财务

制造业企业要实现变革转型&#xff0c;可以从营销、服务、研发、供应链、制造、质量、劳务以及人力资源等多个方面着手&#xff1a; 一、营销 市场调研与定位 深入了解目标市场的需求、趋势和竞争态势。通过大数据分析、消费者调研等手段&#xff0c;精准把握市场动态&#…

管家婆分销费用分摊功能使用说明!

在入库和销售业务中&#xff0c;往往会产生一些费用需要和入库单和销售单关联&#xff0c;这时候就可以使用费用分摊的功能。下面我们一起来学习在分销A\V系列软件中费用分摊的操作步骤 一、入库费用分摊 1、只有移动加权平均成本算法才有入库费用分摊单&#xff1b;入库费用分…

centos7系统安装宝塔面板

1、开始安装 适用系统 Centos/OpenCloud/Alibaba 稳定版9.0.0 urlhttps://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec等待命令执行&#xff0c;安装完成&#…

【理解 Java 中的 for 循环】

理解 Java 中的 for 循环 for 循环是 Java 中用于迭代的常用控制结构&#xff0c;它可以帮助我们重复执行某段代码&#xff0c;直到满足特定条件。本文将介绍 for 循环的基本语法、执行流程、注意事项及一些练习。 基本语法 for 循环的基本语法如下&#xff1a; for (循环变…

Linux下的基本指令/命令(一)

目录 基本命令 1. Is命令/指令: 罗列当前目录下指定的文件或者目录. 2. pwd命令&#xff1a; 查看当前工作的路径 3. cd命令&#xff1a; 切换到指定路径下。 只能切换到目录中 4. tree命令: 树状显式目录 使用前要输入命令 yum install -y tree &#xff0c;用来安装一个…

数组模拟邻接表存图

图的定义 图&#xff08;graph&#xff09;是一种非线性数据结构&#xff0c;由顶点和边组成。我们可以将图 抽象地表示为一组顶点和一组边的集合。G(V,E) 图分为有向图和无向图&#xff0c;下图带箭头为有向图&#xff0c;无箭头为无向图 我们可以用两种方式来表示图&#x…

有点快要跟不上时代的感觉

团队的群里面有一个同事突然问了下&#xff0c;下面的这个 JavaScript 如何进行优化 var startIndex (start undefined || start null) ? null : start[0].Value;看上面的代码就是典型的判断和返回的问题。 如果是要调试的话也不是做不出来&#xff0c;但可能要花点时间&a…

【Java】—— 多线程:线程的创建方式3、4___实现Callable与线程池

目录 8.1 新增方式一&#xff1a;实现Callable接口 8.2 新增方式二&#xff1a;使用线程池 8.1 新增方式一&#xff1a;实现Callable接口 与使用Runnable相比&#xff0c; Callable功能更强大些 相比run()方法&#xff0c;可以有返回值 方法可以抛出异常 支持泛型的返回值&…

音视频整体解码流程和同步流程

目录 1. 整体解码流程1. 初始化 FFmpeg2. 打开媒体文件3. 查找解码器4. 打开解码器5. 读取和解码数据6. 处理解码后的帧7. 释放资源 2. 音视频同步整体流程1. 解复用媒体流2. 解码3. 以音频为时钟源进行音视频同步的策略4. 缓冲区设计 现在先说大体流程&#xff0c;不分析代码 …

网络原理 - TCP/IP

文章目录 传输层UDP协议TCP协议TCP协议的核心机制确认应答机制超时重传机制连接管理三次握手四次挥手 滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘包问题 异常情况 小结 网络层IP协议IP地址不够用的问题一、动态分配IP地址二、 NAT机制(网络地址映射)三、使用IPv6 地…

【HarmonyOS】自定义圆点进度条

【HarmonyOS】实现一个自定义带圆点的进度条效果。 方案就是做一个圆角组件&#xff0c;然后利用rotate旋转&#xff0c;至于动画效果&#xff0c;我查了一下文档&#xff0c;只要设置enableSmoothEffect:false&#xff0c;就可以关闭动画&#xff0c;然后自己开个定时器&#…

如何使用代理IP解决反爬虫问题

在网络爬虫的世界里&#xff0c;反爬虫机制就像是守卫城池的士兵&#xff0c;时刻准备着抵御外来的“入侵者”。为了突破这些守卫&#xff0c;代理IP就像是你的隐形斗篷&#xff0c;帮助你在网络世界中自由穿梭。今天&#xff0c;我们就来聊聊如何使用代理IP解决反爬虫问题。 …

【CMake】一、CMake 介绍

CMake 基础介绍 1. CMake 介绍2. CMake 安装3. 入门样例 - Hello-world 工程 1. CMake 介绍 CMake 是一个开源、跨平台的构建系统&#xff0c;主要用于软件的构建、测试和打包。 CMake 使用平台无关的配置文件 CMakeLists.txt 来控制软件的编译过程&#xff0c;并生成适用于不…

叉车司机信息权限采集系统,保障与优化叉车运输网络的安全

叉车司机信息权限采集系统可以通过监控司机的行车行为和车辆状况&#xff0c;实时掌握车辆位置和行驶路线&#xff0c;从而提高运输安全性&#xff0c;优化运输网络&#xff0c;降低事故风险。同时&#xff0c;该系统还可以通过对叉车司机信息和行车数据的分析&#xff0c;优化…

LM393 电压比较器和典型电路

一、介绍 LM393内部包括有两个独立、高精度电压比较器 组成的集成电路&#xff0c;失调电压低&#xff0c;最大为2.0mV。专为获得宽电压范围、单电源供电而设计&#xff0c;也可以双电源供电。而且无论电源电压大小&#xff0c;电源消耗的电流都很低。即使是单电源供电&#xf…

数据集-目标检测系列-兔子检测数据集 rabbit >> DataBall

数据集-目标检测系列-兔子检测数据集 rabbit >> DataBall 数据集-目标检测系列-兔子检测数据集 rabbit 数据量&#xff1a;8k 想要进一步了解&#xff0c;请联系。 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加…