深度学习入门(2)神经网络

简介: 深度学习入门(2)神经网络

感知机:设定权重的工作由人工来进行确定。


神经网络:可以自动的从数据中学习到合适的权重参数


从感知机到神经网络

20181215210645220.png

0层:输入层

1层:中间层(隐藏层)

2层:输出层

该网络由3层神经元构成,但只有2层神经元有权重,因此称其为“2层网络”。(有的也称3层)

20181215210707565.png

20181215210707587.png

20181215210707595.png

20181215210707603.png


输入信号会被函数h(x)转换,转换后的值就是输出y


激活函数


h(x)函数会将输入信号的总和转换为输出信息,这种函数称之为激活函数

激活函数作用在于决定如何来激活输入信号的总和。

20181215210750153.png

20181215210750172.png

信号加权和为节点a,节点a被激活函数h()转换成节点y。


a与y称为节点(神经元)。h()为激活函数。


激活函数是连接感知机和神经网络的桥梁。


一般而言,“朴素感知机”是指单层网络,指的是激活函数使用了阶跃函数 A 的模型。


“多层感知机”是指神经网络,即使用sigmoid 函数(后述)等平滑的激活函数的多层网络。


阶跃函数


阶跃函数是指一旦输入超过阈值,就切换输出的函数。


阶跃函数图形:

20181215210828155.png

代码:


20181215210840161.png


sigmoid函数

20181215210853126.png


e为自然常数(纳皮尔常数)2.7182……

20181215210907149.png

代码:

20181215210914565.png


sigmoid函数与阶跃函数对比


image.png


注意:激活函数必须使用非线性函数。


线性函数的问题在于,不管如何加深层数,总是存在与之等效的“无隐藏层的神经网络”。举例:我们考虑把线性函数 h(x) = cx 作为激活函数,把y(x) = h(h(h(x)))的运算对应3层神经网络 A。这个运算会进行y(x) = c × c × c × x的乘法运算,但是同样的处理可以由y(x) = ax(注意,a = c3)这一次乘法运算(即没有隐藏层的神经网络)来表示。如本例所示,使用线性函数时,无法发挥多层网络带来的优势。因此,为了发挥叠加层所带来的优势,激活函数必须使用非线性函数。


ReLU函数


ReLU Rectifed Linear Unit)函数:ReLU函数在输入大于0时,直接输出该值;在输入小于等于0时,输出0


20181215210939437.png

20181215210939445.png

代码:

20181215210939467.png


神经网络


神经网络的内积

20181215211014182.png

20181215211014183.png

3层神经网络的实现

20181215211056659.png

权重的符号:

20181215211112486.png


各层间信号的传递:

从第0层到第1层:

20181215211112520.png


20181215211112465.png

20181215211112519.png


B的个数是由该层输出神经元的个数决定的。

各元素的形状:

X ---2

W----2X3

B----3

A ----3

从第1层到第2层:

2018121521122242.png从第2层到第3层:

2018121521122277.png

输出层的激活函数用σ()表示,不同于隐藏层的激活函数h() σ读作sigma)。


用σ()表示输出层的激活函数。h()表示隐藏层的激活函数。


代码实现:

20181215211246175.png


identity_function()函数(也称为“恒等函数”),并将其作为输出层的激活函数。恒等函数会将输入按原样输出,因此,这个例子中没有必要特意定义 identity_function()。这里这样实现只是为了和之前的流程保持统一。


输出层所用的激活函数,要根据求解问题的性质决定。

一般地,回归问题可以使用恒等函数

二元分类问题可以使用 sigmoid 函数

多元分类问题可以使用 softmax 函数


输出层设计


回归问题:à恒等函数

分类问题:àsoftmax函数


恒等函数

20181215211326862.png

softmax函数

20181215211340543.png

exp(x)是表示ex的指数函数(e是纳皮尔常数2.7182 . . .)。假设输出层共有n个神经元,计算第k个神经元的输出yk。如上式所示,softmax函数的分子是输入信号ak的指数函数,分母是所有输入信号的指数函数的和。

20181215211357970.png

20181215211357961.png

注意:softmax函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大,会发生溢出。


将上式进行改进:


2018121521143254.png

其中C’可以为任意值,但是为了防止溢出,一般会使用输入信号中的最大值。

20181215211445126.png


改进后的softmax函数:

20181215211452827.png

(a-c)是为了防止溢出。


softmax函数的特征


1,输出为01之间的实数,

2,输出值的总和为1.因此可以把softmax函数的输出解释为概率


这里需要注意的是,即便使用了softmax函数,各个元素之间的大小关系也不会改变。这是因为指数函数( y = exp(x))是单调递增函数。实际上,上例中 a的各元素的大小关系和 y的各元素的大小关系并没有改变。比如, a的最大值是第2个元素, y的最大值也仍是第2个元素。


   一般而言,神经网络只把输出值最大的神经元所对应的类别作为识别结果。并且,即便使用softmax函数,输出值最大的神经元的位置也不会变。因此,神经网络在进行分类时,输出层的softmax函数可以省略。在实际的问题中,由于指数函数的运算需要一定的计算机运算量,因此输出层的softmax函数一般会被省略。


手写体数字的识别

 

20181215211515291.png

20181215211515298.png

20181215211530134.png

load_mnist函数以“ (训练图像,训练标签),(测试图像,测试标签)”的形式返回读入的MNIST数据。


load_mnist(normalize=True,flatten=True, one_hot_label=False)设 置 3 个 参 数。


第 1 个 参 数normalize设置是否将输入图像正规化为0.0~1.0的值。如果将该参数设置

为 False,则输入图像的像素会保持原来的0~255。


第2个参数 flatten设置是否展开输入图像(变成一维数组)。如果将该参数设置为 False,则输入图像为1 × 28 × 28的三维数组;若设置为 True,则输入图像会保存为由784个元素构成的一维数组。


第3个参数 one_hot_label设置是否将标签保存为onehot表示( one-hot representation)。 one-hot表示是仅正确解标签为1,其余皆为0的数组,就像 [0,0,1,0,0,0,0,0,0,0]这样。当 one_hot_label为 False时,只是像 7、 2这样简单保存正确解标签;当 one_hot_label为 True时,标签则保存为one-hot表示。


显示某张图片和它对应的标签

20181215211542686.png


神经网络的预测

20181215211558175.png

20181215211604467.png

在这个例子中, load_mnist函数的参数 normalize设置成了True。


将 normalize设置成 True后,函数内部会进行转换,将图像的各个像素值除以255,使得数据的值在0.0~1.0的范围内。像这样把数据限定到某个范围内的处理称为正规化( normalization)。此外,对神经网络的输入数据进行某种既定的转换称为预处理( pre-processing)。这里,作为对输入图像的一种预处理,我们进行了正规化。


预处理方法:利用数据整体的均值或标准差,移动数据,使数据整体以 0 为中心分布,或者进行正规化,把数据的延展控制在一定范围内。除此之外,还有将数据整体的分布形状均匀化的方法,即数据白化(whitening)等。


批处理

20181215211628581.png

20181215211618455.png

20181215211618461.png从整体的处理流程来看,输入一个由784个元素(原本是一个28 × 28的二维数组)构成的一维数组后,输出一个有10个元素的一维数组。


现在我们来考虑打包输入多张图像的情形。比如,我们想用 predict()函数一次性打包处理100张图像。为此,可以把x的形状改为100 × 784,将100张图像打包作为输入数据。

20181215211651288.png

输入数据的形状为 100 × 784,输出数据的形状为100 × 10。这表示输入的100张图像的结果被一次性输出了。比如, x[0]和y[0]中保存了第0张图像及其推理结果, x[1]和 y[1]中保存了第1张图像及其推理结果,等等。

20181215211659165.png


axis=1,指的是沿着第1维方向,100 X 10à100 X 1。(axis指的哪个维度,哪个维度就会消失)

axis=0,指的是第0个维度。


矩阵的第0维是列方向,第1维是行方向。


二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。


总结


1. 神经网络中的激活函数使用平滑变化的sigmoid函数或ReLU函数。


2.机器学习的问题大体上可以分为回归问题和分类问题。


3.关于输出层的激活函数,回归问题中一般用恒等函数,分类问题中一般用softmax函数。


4.分类问题中,输出层的神经元的数量设置为要分类的类别数。


5.输入数据的集合称为批。通过以批为单位进行推理处理,能够实现

高速的运算。



相关文章
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的自适应神经网络:原理与应用
【8月更文挑战第14天】在深度学习领域,自适应神经网络作为一种新兴技术,正逐渐改变我们处理数据和解决问题的方式。这种网络通过动态调整其结构和参数来适应输入数据的分布和特征,从而在无需人工干预的情况下实现最优性能。本文将深入探讨自适应神经网络的工作原理、关键技术及其在多个领域的实际应用,旨在为读者提供一个全面的视角,理解这一技术如何推动深度学习向更高效、更智能的方向发展。
|
3天前
|
机器学习/深度学习 自然语言处理 数据安全/隐私保护
深度学习中的艺术与科学:探索神经网络的奥秘
本文将带您走进深度学习的奇妙世界,一探神经网络背后的科学原理和艺术创造。我们将从基础概念出发,逐步深入到模型训练的技巧,以及如何应对过拟合等常见问题。通过实例分析,我们将展示深度学习技术在图像识别和自然语言处理等领域的应用,并讨论其在未来科技发展中的潜在影响。让我们一同解锁深度学习的力量,发现它如何塑造我们的数字世界。
|
4天前
|
机器学习/深度学习 传感器 自然语言处理
深度学习的魔法:如何用神经网络解锁数据的秘密
在这个数字信息爆炸的时代,深度学习技术如同一把钥匙,揭开了数据隐藏的层层秘密。本文将深入浅出地探讨深度学习的核心概念、关键技术和实际应用,带领读者领略这一领域的奥秘与魅力。通过生动的比喻和直观的解释,我们将一起走进神经网络的世界,看看这些由数据驱动的“大脑”是如何学习和成长的。无论你是科技爱好者还是行业新手,这篇文章都将为你打开一扇通往未来的大门。
|
1天前
|
机器学习/深度学习 人工智能 PyTorch
【深度学习】使用PyTorch构建神经网络:深度学习实战指南
PyTorch是一个开源的Python机器学习库,特别专注于深度学习领域。它由Facebook的AI研究团队开发并维护,因其灵活的架构、动态计算图以及在科研和工业界的广泛支持而受到青睐。PyTorch提供了强大的GPU加速能力,使得在处理大规模数据集和复杂模型时效率极高。
112 58
|
4天前
|
机器学习/深度学习 算法 自动驾驶
深度学习的奥秘:探索神经网络的黑盒子
深度学习技术如同一扇打开未知世界的大门,其背后的复杂算法和庞大数据让许多人感到好奇又困惑。本文以通俗易懂的语言,逐步揭开深度学习的神秘面纱,从基础概念到实际应用,引导读者理解并欣赏这一技术的奇妙之处。
13 1
|
4天前
|
机器学习/深度学习 算法
深度学习中的艺术与科学:探索神经网络的奥秘
本文以浅显易懂的方式介绍了深度学习的基本概念,并逐步深入到其背后的复杂数学原理。通过生动的比喻和直观的解释,文章揭示了深度学习如何模仿人脑处理信息,并探讨了它在图像识别、语音处理等领域的应用。同时,文章还讨论了深度学习面临的挑战和未来的发展方向,旨在激发读者对这一前沿技术的兴趣和思考。
|
2天前
|
运维 网络协议 API
入门网络,少不了这份详细的网络基础学习指南!
入门网络,少不了这份详细的网络基础学习指南!
|
4天前
|
机器学习/深度学习 人工智能 调度
显著提升深度学习 GPU 利用率,阿里云拿下国际网络顶会优胜奖!
显著提升深度学习 GPU 利用率,阿里云拿下国际网络顶会优胜奖!
18 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】Python之人工智能应用篇——音频生成技术
音频生成是指根据所输入的数据合成对应的声音波形的过程,主要包括根据文本合成语音(text-to-speech)、进行不同语言之间的语音转换、根据视觉内容(图像或视频)进行语音描述,以及生成旋律、音乐等。它涵盖了声音结构中的音素、音节、音位、语素等基本单位的预测和组合,通过频谱逼近或波形逼近的合成策略来实现音频的生成。 音频生成技术的发展主要依赖于深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer等。这些模型通过学习大量的音频数据,能够自动生成与人类发音相似甚至超越人类水平的音频内容。近年来,随着大规模预训练模型的流行,如GPT系列模型、BERT、T5等,
12 7
【深度学习】Python之人工智能应用篇——音频生成技术
|
2天前
|
机器学习/深度学习 人工智能 算法
【深度学习】python之人工智能应用篇——图像生成技术(二)
图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。
15 9

热门文章

最新文章