聊聊神经网络的基础知识

来自《深度学习入门:基于Python的理论与实现》

张量

Numpy、TensorFlow、Pytorch等框架主要是为了计算张量或是基于张量计算。

标量:0阶张量;12,4,3,

向量:一阶张量;12,4,3

矩阵:二阶张量; \[12,4,3, 11,2,3 ]

多阶张量:多维数组;

可以将张量的阶度理解为多维数组的维度。

神经网络

神经网络的图表示:

最左边的一列称为输入层,最右边的一列称为输出层,中间的称为中间层,也叫做隐藏层。

激活函数

概述

激活函数的作用在于决定如何来激活输入信号的总和。数学表达式如下:

图表示如下:

通常神经元用一个○表示,在明确神经网络的动作下,可以明确显示激活函数的计算过程。如下,这两个图是等效的。

sigmoid函数

神经网络中用sigmoid函数作为激活函数,进行信号的转换,转换后的信号被传送到下一个神经元。

函数表示为:

使用Numpy实现:

relu函数

relu函数在输入大于0时,直接输出该值;在输入小于等于0时,输出0。函数表示:

使用Numpy实现:

神经网络的实现

如下是三层神经网络的图表示,第0层神经元到第一层神经元的信号传递:

符号解释:

如下表示引入了偏置的神经元"1"。

神经元a1的数学表达式如下:

矩阵的乘法运算:

NumPy实现:

中间层(隐藏层)的激活函数可能是不一样的,如上可能是sigmoid函数或是rule函数计算。

第1层神经元到第二层神经元的信号传递,从下图也可以看出来,第二层到输出层的信号传递:

输出层的设计

神经网络可以用在分类问题和回归问题上,不过需要根据情况改变输出层的激活函数。一般而言,回归问题用恒等函数,分类问题用softmax函数。

机器学习的问题大致分为分类问题和回归问题。分类问题是数据属于哪一个类别的问题。而回归问题是根据某个输入预测一个数值的问题。

恒等函数和softmax函数

恒等函数会将输入按原样输出,对于输入的信息,不加以任何改动的直接输出。神经网络图表示:

分类问题中的softmax函数,其数学表达式如下,计算第K个神经元的输出:

图表示如下,输出层的各个神经元都受到所有输入信号的影响:

softmax函数的python实现:

softmax函数的输出是0.0到1.0之间的实数。并且softmax函数的输出值的总和是1。因此可以把softman函数的输出解释为"概率"。

损失函数

损失函数标识神经网络性能的"恶劣程度"的指标,即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。损失函数的计算可以使用均方误差和交叉熵误差。

卷积神经网络

卷积神经网络(CNN)增加了卷积层(Convolution)和池化层(Pooling)。其神经网络结构示例如下:

之前的全连接神经网络中忽略了数据的形状,比如,输入数据是图像时,图像通常是高、长、通道三个方向上的3维形状。但是向全连接层输入时,需要将3维数据拉平为1维数据。全连接层会忽视形状,将全部的输入数据作为相同的神经元(同一纬度的神经元)处理,所以无法利用与形状相关的信息。

而卷积层可以保持形状不变。当输入数据是图像时,卷积层会以3维数据的形式接受输入数据,并以3维数据的形式输出至下一层。因此,CNN架构的网络可以正确理解图像等具有形状的数据。

卷积层

卷积层进行的处理就是卷积运算。卷积运算相当于图像处理中的"滤波器运算"。如下示例:

卷积运算对输入数据应用滤波器。计算顺序如下,卷积运算以一定间隔的步幅滑动滤波器的窗口并应用。如下所示:

将各个位置上滤波器的元素与输入的对应元素相乘,然后再求和。最后将结果保存到输出的对应位置。将这个过程在所有的位置运算一遍,就可以得到卷积运算的输出。

3维数据的卷积运算

之前的卷积运算都是以高、长方向的2维形状为对象的。图像是3维数据,除了高、长方向还有通道方向。增加了通道,会按通道进行输入数据与滤波器的卷积运算。如下是增加了通道方向的3维数据进行卷积运算的例子:

计算顺序如下:

池化层

池化是缩小高、长方向上的空间的运算。如下,将2*2的区域集约成1个元素的处理,缩小空间大小。

相关推荐
田里的水稻3 小时前
PyTorch_TensorBoard展示
人工智能·pytorch·python·深度学习·神经网络
zh路西法13 小时前
【生成式模型入门】(四):Flow Matching——从速度场学习到生成路径
python·深度学习·神经网络·生成式模型·diffusionpolicy·flowmatching
老唐77714 小时前
Transformer原理大白话讲解
人工智能·python·深度学习·神经网络·计算机视觉·ai·transformer
梦帮科技1 天前
Linux 内存取证学与 Rootkit 猎杀——Volatility 核心剖析与内核隐藏模块逆向清除
linux·运维·服务器·神经网络·算法·网络安全
在所不辞兄2 天前
为什么物理嵌入神经网络要把物理方程残差加入损失函数,而不是直接作为网络结构的硬约束?
人工智能·深度学习·神经网络·机器学习·有限元
茗创科技2 天前
种子点分析vs全脑分析:共激活模式(CAP)到底怎么选?
神经网络·脑网络·数据处理
Yolanda_20222 天前
Claudecode报错402 insufficient balance(1008)
人工智能·神经网络·chatgpt
鬓戈2 天前
AI基础之神经网络
人工智能·深度学习·神经网络
deepseek233 天前
AI 模型隐藏任意能力拆解:把加密神经网络塞进宿主权重,能力评估为什么在密码学上抓不到
人工智能·深度学习·神经网络·密码学·模型安全
梦帮科技3 天前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法