深度学习入门:基于Python的理论与实现
最新书摘:
-
Smile2021-01-16DCGAN(Deep Convolutional Generative Adversarial Network)中使用了深度学习,其技术要点是使用了 Generator(生成者)和 Discriminator(识别者)这两个神经网络。 Generator生成近似真品的图像, Discriminator判别它是不是真图像(是 Generator生成的图像还是实际拍摄的图像)。像这样,通过让两者以竞争的方式学习, Generator会学习到更加精妙的图像作假技术, Discriminator I则会成长为能以更高精度辨别真假的鉴定师。两者互相切磋、共同成长,这是GAN( Generative Adversarial Network)的有趣之处。
-
Smile2021-01-16一个基于深度学习生成图像标题的代表性方法是被称为NIC( Neural Image Caption)的模型。如图822所示,NIC由深层的CNN和处理自然语言的RLN( Recurrent Neural Network)构成。RN是具有循环连接的网络,经常被用于自然语言、时间序列数据等连续性的数据上。NIC基于CNN从图像中提取特征,并将这个特征传给RNN。RNN以CNN提取出的特征为初始值,循环地生成文本。这里,我们不深入讨论技术上的细节,不过基本上NIC是组合了两个神经网络(CNN和RNN)的简单结构。基于NIC,可以生成惊人的高精度的图像标题。我们将组合图像和自然语言等多种信息进行的处理称为多模态处理。多模态处理是近年来备受关的一个领域。
-
Smile2021-01-166。5超参数的验证神经网络中,除了权重和偏置等参数,超参数( hyper- parameter)也经常出现。这里所说的超参数是指,比如各层的神经元数量、 batch大小、参数更新时的学习率或权值衰减等。如果这些超参数没有设置合适的值,模型的性能就会很差。虽然超参数的取值非常重要,但是在决定超参数的过程中一般会伴随很多的试错。本节将介绍尽可能高效地寻找超参数的值的方法。6。5。1验证数据之前我们使用的数据集分成了训练数据和测试数据,训练数据用于学习,测试数据用于评估泛化能力。由此,就可以评估是否只过度拟合了训练数据(是否发生了过拟合),以及泛化能力如何等。下面我们要对超参数设置各种各样的值以进行验证。这里要注意的是,不能使用测试数据评估超参数的性能。这一点非常重要,但也容易被忽视。为什么不能用测试数据评估超参数的性能呢?这是因为如果使用测试数据调整超参数,超参数的值会对测试数据发生过拟合。换句话说,用测试数据确认超参数的值的“好坏”,就会导致超参数的值被调整为只拟合测试数据。这样的话,可能就会得到不能拟合其他数据、泛化能力低的模型。因此,调整超参数时,必须使用超参数专用的确认数据。用于调整超参数的数据,一般称为验证数据( validation data)我们使用这个验证数据来评超参数的好坏。
-
Smile2021-01-16我们介绍抑制过拟合、提高泛化能力的技巧权值衰减( welght decay)。简单地说,权值衰减就是一种以减小权重参数的值为目的进行学习的方法。通过减小权重参数的值来抑制过拟合的发生。
-
Smile2021-01-16在神经网络的学习中,学习率(数学式中记为n)的值很重要。学习率过小,会导致学习花费过多时间;反过来,学习率过大,则会导致学习发散而不能正确进行。在关于学习率的有效技巧中,有一种被称为学习率衰( learning ratedeay)的方法,即随着学习的进行,使学习率逐渐减小。实际上,一开始“多”学,然后逐渐“少”学的方法,在神经网络的学习中经常被使用。逐渐减小学习率的想法,相当于将“全体”参数的学习率值一起降低。而 Adagrad进一步发展了这个想法,针对“一个一个”的参数,赋予其“定制”的值。
-
Smile2021-01-13在梯度法中,函数的取值从当前位置沿着梯度方向前进一定距离,然后在新的地方重新求梯度,再沿着新梯度方向前进,如此反复,不断地沿梯度方向前进。像这样,通过不断地沿梯度方向前进,逐渐减小函数值的过程就是梯度法( gradient method)。梯度法是解决机器学习中最优化问题的常用方法,特别是在神经网络的学习中经常被使用。根据目的是寻找最小值还是最大值,梯度法的叫法有所不同。严格地讲,寻找最小值的梯度法称为梯度下降法( gradient descent method),寻找最大值的梯度法称为梯度上升法( gradient ascent method)。但是通过反转损失函数的符号,求最小值的问题和求最大值的问题会 变成相同的问题,因此“下降”还是“上升"的差异本质上并不重要。一般来说,神经网络(深度学习)中,梯度法主要是指梯度下降法。
-
Smile2021-01-13和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习;进行推理时,使用刚才学习到的参数,对输入数据进行分类。
-
Smile2021-01-13输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数,二元分类问题可以使用 sigmoid函数,多元分类问题可以使用 softmax函数。
-
2019-06-17def AND(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])b = -0.7tmp = np.sum(w*x) + bif tmp <= 0:return 0else:return 1这里把−θ命名为偏置b,但是请注意,偏置和权重w1、 w2的作用是不一样的。具体地说, w1和w2是控制输入信号的重要性的参数,而偏置是调整神经元被激活的容易程度(输出信号为1的程度)的参数。比如,若b为−0.1,则只要输入信号的加权总和超过0.1,神经元就会被激活。但是如果b为−20.0,则输入信号的加权总和必须超过20.0,神经元才会被激活。像这样,偏置的值决定了神经元被激活的容易程度。另外,这里我们将w1和w2称为权重,将b称为偏置,但是根据上下文,有时也会将b、 w1、 w2这些参数统称为权重。