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

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

订阅专栏

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

一、基本概念

神经网络的基本构成


输入层


图中粉色的部分(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月前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
101 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
176 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
84 3
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
85 8
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
362 7
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
84 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。