上QQ阅读APP看书,第一时间看更新
2.1.1 深度学习,始于模型
深度学习的核心是就是模型(model)。建立神经网络模型去拟合目标的形态,就是深度学习的精髓和最重要的部分。
任何一个神经网络的主要设计思想和功能都集中在其模型中,TensorFlow也是如此。
TensorFlow或者其使用的高级API-Keras核心数据结构是model,一种组织网络层的方式。最简单的模型是顺序模型(Sequential),它由多个网络层线性堆叠。对于更复杂的结构,应该使用Keras函数式API(本书的重点就是函数式API编写),其允许构建任意的神经网络图。
为了便于理解和易于上手,笔者首先从顺序模型开始。一个标准的顺序模型如下:
可以看到,这里首先创建了一个顺序模型,之后根据需要逐级向其中添加不同的全连接层。全连接层的作用是进行矩阵计算,而相互之间又通过不同的激活函数进行激活计算。(这种没有输入输出值的编程方式对有经验的程序设计人员来说并不友好,仅供举例。)
对于损失函数的计算,根据不同拟合方式和数据集的特点,需要建立不同的损失函数最大限度地反馈拟合曲线错误。这里的损失函数采用交叉熵函数(softmax_crossentroy),使得数据计算分布能够最大限度地拟合目标值。对此陌生的话,读者只需要记住这些名词和下面的代码编写,即可继续往下学习:
首先通过模型计算出对应的值。tf.reduce_mean函数的作用是对计算出的损失值进行求和。
模型建立完毕后,就是数据的准备。一份简单而标准的数据、一个简单而具有指导思想的例子往往事半功倍。深度学习中最常用的一个入门例子就是iris分类,下面就使用TensorFlow的Keras实现一个iris鸢尾花分类的例子。