瞎聊深度学习——神经网络基础(概念,正则化)

简介: 瞎聊深度学习——神经网络基础(概念,正则化)

订阅专栏

神经网络是深度学习中最重要的一类模型,本文来讲解一下神经网络基础。

一、基本概念

神经网络的基本构成


输入层


图中粉色的部分(input layer)是输入层,输入层在神经网络中主要起到输入数据的作用,是一个神经网络的入口。


隐藏层


图中蓝色的部分(hidden layer)是隐藏层,我们叫他为隐藏层因为我们并不能够在训练样本中观测到他们的值,隐藏层的主要作用是把输入数据的特征,经过隐藏层中激活函数的计算,抽象到另一个维度空间,来展现其更抽象化的特征,这些特征能更好的进行线性划分,隐藏层可以有一层也可以有多层,同时每一层神经元(图中每个白色的圆)的个数也可多可少。


输出层


图中绿色的部分(ouput layer)是输出层,输出层同样也会通过一个激活函数将经过多层(或者一层)隐藏层计算过的数据再次经过计算得到我们预期的输出,通常使用softmax函数。


网络层数


网络层数也就是我们通常说的几层神经网络,在计算网络层数时,我们只需计算参与了计算的层数(也就是隐藏层和输出层的层数),例如上图有两层隐藏层和一层输出层,我们就可以把该神经网络的层数记做三层。


激活函数


激活函数是我们添加在计算层的函数,在计算层中每一层都会将前一层的输入数据通过激活函数的计算转化为新的输入数据输入给下一层进行计算,常用的激活函数有sigmoid、Tanh、ReLu、leaky ReLu、Maxout、Softmax等。


二、前馈神经网络

神经网络中最简单最朴素的神经网络我们称之为前馈神经网络,该神经网络中,各神经元从输入层开始接收前一级的输入,并输入到下一层,直至输出,整个网络中无反馈,可用一个有向无环图来表示。


通常我们说的前馈神经网络有两种:一种叫Back Propagation Networks——反向传播网络(BP网络),一种叫RBF Network——径向基函数神经网络。


BP网络的主要思想在于对结果进行前向传播,对误差采用反向传播,在反向传播的过程中通过最优化各层神经元的输入权值以及偏置,使得神经网络的输出尽可能地接近期望输出,以达到训练(或者学习)的目的。


RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。


由于过程比较复杂本文不对两种网络进行推导。


三、深度学习中的正则化

什么是正则化?


在机器学习中,许多策略被显式地设计来减少测试误差(可能会以增大训练误差为代价),这些策略被统称为正则化,是一种旨在减少泛化误差而不是训练误差的对学习算法的修改。在深度学习的背景下,大多数正则化策略是对估计进行正则化,以偏差的增加换取方差的减少。


说一下常用的正则化方法(本文给出理解,不做具体推导)


1、参数范数惩罚

(1)L2参数正则化


L2正则化(岭回归)在深度学习中通常用于权重衰减,通过向损失函数添加一个正则项12∥w∥2212‖w‖22使得权重更接近于原点(在原来的损失函数基础上加上权重参数的平方和)。

 

(2)L1参数正则化

L1正则化要我们在原始的代价函数后面加上一个L1正则化项。即全部权重w的绝对值的和。


2、数据集增强

数据集增强是一种最简单,也很常用的正则化方法,该方法主要是要求我们在数据集上下功夫。


一种数据增强的方法是去加大数据集,但是在我们的数据集很有限的时候这种方法并不能很好的解决问题,此时我们就可以用有限的数据产生更多的等价数据来达到数据增强的目的,举个例子:


当我们在使用图片的数据集时,可能并不能获得很多高质量的数据,此时我们就想到去将现有的图片进行一些变换(如翻转、随机裁剪、旋转等操作)来得到更多的图片,就像下面这样:


通过此类方法我们就能够将原有的数据数量扩大一定的倍数从而达到了数据增强的目的。


3、噪声添加

对于部分模型来说,在输入中添加一些方差极小的噪声等价于对权重施以权重惩罚,通常情况下注入噪声远比简单地收缩参数强大,噪声被添加到隐藏单元时会更加强大。


4、Dropout

当一个神经网络的结构过于复杂(有很多的隐藏层,每层都有很多的神经元)时,我们的模型就很容易产生过拟合的现象,为了防止这种现象的发生,产生了一种常用的正则化方法——Dropout。


Dropout的工作流程如下:

(1)首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变;

12.jpeg

(2)然后把输入x通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w,b);


(3) 然后继续重复这一过程:


恢复被删掉的神经元(此时被删除的神经元保持原样,而没有被删除的神经元已经有所更新)。


从隐藏层神经元中随机选择一个一半大小的子集临时删除掉(备份被删除神经元的参数)。


对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度下降法更新参数(w,b) (没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果)。


不断重复这一过程。


对于如何停止一半的神经元,我们在使用激活函数的时候,给出一定的概率使得经过激活函数计算后的结果为0即可。


相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
130 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
352 55
|
14天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
157 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
43 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
54 18
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
87 31
|
2月前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##

热门文章

最新文章