聊聊神经网络的基础知识

来自《深度学习入门:基于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 小时前
人、机、环境中各有其神经网络系统
人工智能·深度学习·神经网络·机器学习
落魄君子11 小时前
ELM分类-单隐藏层前馈神经网络(Single Hidden Layer Feedforward Neural Network, SLFN)
神经网络·分类·数据挖掘
是Dream呀13 小时前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
γ..1 天前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
机器学习之心1 天前
LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测
神经网络·支持向量机·lstm
落魄君子1 天前
SVM分类-支持向量机(Support Vector Machine)
神经网络·算法·支持向量机·分类
Leweslyh1 天前
物理信息神经网络(PINN)八课时教案
人工智能·深度学习·神经网络·物理信息神经网络
Debroon1 天前
乳腺癌多模态诊断解释框架:CNN + 可解释 AI 可视化
人工智能·神经网络·cnn
Leoysq2 天前
深度学习领域的主要神经网络架构综述
深度学习·神经网络·架构
沅_Yuan2 天前
基于CNN-BiLSTM-selfAttention混合神经网络的多分类预测【MATLAB】
神经网络·分类·cnn·bilstm·selfattention