首页 > 其他分享 >《深度学习》—— 神经网络基本结构

《深度学习》—— 神经网络基本结构

时间:2024-09-12 22:21:41浏览次数:11  
标签:输出 函数 权重 学习 神经网络 深度 激活 神经元

前言

深度学习是一种基于神经网络机器学习算法,其核心在于构建由多层神经元组成的人工神经网络,这些层次能够捕捉数据中的复杂结构和抽象特征。神经网络通过调整连接各层的权重,从大量数据中自动学习并提取特征,进而实现预测或分类等任务。

一、神经网络结构

  • 神经网络的基本组成包括输入层、隐藏层和输出层。
    • 输入层:接收外部数据输入,每个节点(神经元)代表数据的一个特征。
    • 隐藏层:神经网络中的中间层,可能有一个或多个。每个隐藏层由若干神经元组成,每个神经元接收前一层所有神经元的输出,经过权重和偏置的线性组合后,通过激活函数处理产生输出。
    • 输出层:产生神经网络的最终输出,输出节点的数量取决于问题的类型。例如,在分类问题中,输出层的节点数通常等于类别的数量
  • 如下图所示:
    在这里插入图片描述

二、权重和激活函数

  • 权重(Weights):权重是神经网络中连接神经元(节点)的参数的集合。在神经网络的前向传播过程中,权重与输入数据相乘(并可能加上一个偏置项bias),然后将结果传递给激活函数。权重在网络的学习过程中(即训练过程中)会被更新,以最小化网络的实际输出与期望输出之间的差异。

    • 初始化:在开始训练之前,权重通常会被初始化为小的随机数,以避免网络陷入局部最优解或训练过程中的数值问题。
    • 学习:在训练过程中,通过反向传播算法和某种优化算法(如梯度下降)来更新权重。权重更新的目的是最小化网络的损失函数。
  • 激活函数(Activation Functions):激活函数是神经网络中神经元的一种非线性变换函数,用于将神经元的输入(即加权和)映射到输出。激活函数的作用是引入非线性因素,使得神经网络能够学习和表示复杂的数据模式。

  • 所以神经网络的本质其实是:通过参数与激活函数来拟合特征与目标之间的真实函数关系

  • 下面是加权求和的推到过程和神经网络实现的过程图:
    在这里插入图片描述

    • 这里的每个连接上的w值就是权重的值
    • 每个特征值与各自连接上的权重值相乘再求和便是加权和
    • 加权和的结果传输给隐藏层中的每个神经元,再映射到神经元中的激活函数中,得到输出结果

三、注意

  • 1、设计一个神经网络时,输入层与输出层的节点数往往是固定的;中间层(隐藏层)则可以自由指定,较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。
  • 2、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
  • 3、结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的

标签:输出,函数,权重,学习,神经网络,深度,激活,神经元
From: https://blog.csdn.net/weixin_73504499/article/details/142184882

相关文章

  • ##嵌入式学习之Linux系统编程##--标准I/O函数
    day01主要内容:linux系统下一切皆文件标准IO---标准库文件IO---系统调用制作库---静态库、动态库基本概念:标准I/O:文件:一组相关数据的有序集合。文件名:这个数据集合的名称。文件类型:lsp-bcd系统调用用户空间进程访问内核的接口把用户从底层的硬件编程......
  • Python3 学习笔记6-os 模块、错误和异常、面向对象编程、类的专有方法、命名空间和作
    目录一、os模块: 常用方法: 二、错误和异常:(1)语法错误:(2)异常:(3)异常处理:(4)抛出异常:(5)用户自定义异常:(6)清理行为:(7)with语句:三、面向对象编程: (1)类和对象:(2)继承:(3)封装:(4)多态:(5)运算符重载: 四、类的专有方法:(1)__init__(self,...):(2)__del__(self):(3)__repr__(self):(4)__set......
  • 【机器学习】正则化-Dropout/DropPath
    1.DropoutDropout是一种正则化技术,通过在训练过程中随机移除部分神经元及其连接,从而减少神经网络对特定神经元的依赖,提升模型的泛化能力。具体而言,Dropout相当于在训练过程中从原始网络中随机采样出“更薄的”子网络,每个子网络的神经元数量较少。在前向传播和反向传播过......
  • 【机器学习】过拟合/欠拟合+正则化
    正则化1.过拟合/欠拟合正则化通过在损失函数中添加约束,防止模型参数在迭代过程中无限制增长,进而提高模型的泛化能力。在模型训练过程中,参数的优化实际上是不断迭代,以找到一个方程H......
  • 【机器学习】层归一化(Layer Normalization)
    LayerNormalization(层归一化)是一种用于深度学习神经网络的归一化方法,它通过对神经元的输入进行归一化,使每一层的输入保持稳定,从而减缓梯度消失或梯度爆炸问题。与批量归一化(BatchNormalization)不同,LayerNorm不依赖于mini-batch,而是对每一个样本的每一层神经元进行归一......
  • DECL: 针对噪声时间序列的去噪感知对比学习《Denoising-Aware Contrastive Learning f
    今天是2024年9月12日,组会摸鱼,很久没看论文了,在摸鱼看代码,最近IJCAI2024出来了,找了几篇论文看,首先这是第一篇。论文:Denoising-AwareContrastiveLearningforNoisyTimeSeries或者是:Denoising-AwareContrastiveLearningforNoisyTimeSeriesGitHub:https://github.com/be......
  • 关于java学习基础路线的分享【javaSE】
    成长路上不孤单......
  • 【影像组学pyradiomics学习笔记】png图像提取组学特征
    1、提取单张png图像组学特征示例:importSimpleITKassitkimportnumpyasnpimportmatplotlib.pyplotaspltfromradiomicsimportfeatureextractorimportosimportcv2defload_image(image_path):image=cv2.imread(image_path,cv2.IMREAD_GRAYSCALE)#......
  • C++读取命令行参数的学习(BOOST库)
    在c++工程中,经常需要通过命令行参数来获取程序运行所需要的信息。作者在实际工作中学习了Boost库,这里根据作者的理解,写了一个依托boost库完成命令行参数提取的程序模版,请大佬批评!!#defineOK0#defineExit-99//主程序#include<iostream>#include"XApp.h"intmain(int......
  • java学习第一天
    java定义指针ctrl+a全选classhellword(//class 定义一个类名,类名和文件名可以不一样//写了多少个class类,就有多少个class文件 publicstaticvoidmain(string[]args){ System.out.println("hello,world")})​```编译刷时候要有后缀名```classdemo{ publ......