全文共4431字,预计学习时长9分钟
深度学习是目前在实际数据科学应用中最流行的模型之一。从图像到文本,再到语音/音乐等领域,它都是一个有效的模型。随着使用量的上升,快速且可扩展地实现深度学习变得至关重要。Tensorflow等深度学习平台的兴起可以帮助简化开发人员的实现方式。
在本文中,我们将学习深度学习的工作原理,并熟悉相关术语,例如反向传播和批量大小。我们将实现一个简单的深度学习模型 - 从理论到scratch实现 - 使用python预定义输入和输出,然后使用Keras和Tensorflow等深度学习平台实现相同的模型。
我们使用Keras和Tensorflow 1.x和2.0编写了这个简单的深度学习模型,该模型具有三种不同级别的复杂性和易编码性。
Scratch的深度学习实现
一个简单的多层感知器有4个输入神经元,隐含层有3个神经元,输出层有1个神经元。我们有三个输入数据样本,用表示,三个期望输出数据样本,用表示。因此,每个输入数据样本都有4个特征。
# Inputs and outputs of the neural net:import numpy as npX=np.array([[1.0, 0.0, 1.0, 0.0],[1.0, 0.0, 1.0, 1.0],[0.0, 1.0, 0.0, 1.0]])yt=np.array([[1.0],[1.0],[0.0]])
该神经网络有4个输入神经元,1个隐含层有3个神经元,输出层有1个神经元
图中 x(m)是X的1个样本,h(m)是x(m) 输入的隐含层输出,Wi和Wh为权重。
神经网络(NN)的目标是为给定输入获得权重和偏差,NN提供期望输出。但是,我们事先并不知道什么是适当的权重和偏差,因此我们需要更新权重和偏差,使得NN、和期望的的输出之间的误差最小化。这种