深度学习从入门到精通+TensorFlow案例演示:神经网络层
每条公式,层层串连,程序可能要很多个循环才能完成。各样的神经层函数,可以使用神经层组合神经网络的结构,用。与自动微分比较,这种方法程序更简单,只要设定模型结构、读到这里,读者应该会好奇如何使用更多的神经元和神经层,)建立模型:神经网络仅使用一个完全连接层,而且输入只。)建立模型:神经网络只有一个完全连接层,而且输入只有。一个神经元,即摄氏温度,输出只有一个神经元,即华氏温。所示,神经网络是多个神经
·
| 相关学习资料 | 深度学习入门到精通+TensorFlow全程案例讲解 .zip |
3-5 神经网络层
上一节运用自动微分实现了一条简单线性回归线的求解,然而
神经网络是多条回归线的组合,并且每一条回归线可能再乘上
非线性的 Activation Function ,假如使用自动微分函数逐一定义
每条公式,层层串连,程序可能要很多个循环才能完成。所以
为了简化程序开发的复杂度, TensorFlow/Keras 直接建构了各式
各样的神经层函数,可以使用神经层组合神经网络的结构,用
户只需要专注算法的设计即可,轻松不少。
如图 3.8 所示,神经网络是多个神经层组合而成的,包括输入层
( Input Layer )、隐藏层( Hidden Layer )及输出层
( Output Layer ),其中隐藏层可以有任意多层。一般而言,隐
藏层大于或等于两层,即称为深度学习。
TensorFlow/Keras 提供了数十种神经层,分成以下类别,用户可
参阅 Keras 官网说明( https://keras.io/api/layers/ )。
( 1 )核心类别( Core Layer ):包括完全连接层
( Full Connected Layer )、激励神经层( Activation layer )、嵌
入层( Embedding layer )等。
( 2 )卷积层( Convolutional Layer )。 ( 3 )池化层( Pooling Layer )。
( 4 )循环层( Recurrent Layer )。
( 5 )前置处理层( Preprocessing layer ):提供 One
Hot Encoding 、影像前置处理、数据增补( Data Augmentation )
等。
我们先来看看两个最简单的完全连接层范例。
范例 1. 使用完全连接层估算简单线性回归的参数( w 、 b )。
程序:请参阅 03_4_ 简单的完全连接层 .ipynb 。
( 1 )产生随机数据,与上一节范例相同。程序代码如下:
( 2 )建立模型:神经网络仅使用一个完全连接层,而且输入只
有一个神经元,即 X ,输出也只有一个神经元,即 y 。 Dense 本身
有一个参数 use_bias ,即是否有偏差项,默认值为 True ,除了一
个神经元输出外,还会有一个偏差项。以上设定其实就等于
y = wx + b 。为聚焦概念的说明,暂时不解释其他参数,在后面章
节会有详尽说明。程序代码如下:
( 3 )定义模型的损失函数及优化器。程序代码如下:
( 4 )模型训练:只需一个指令 model.fit ( X, y )即可,训练过
程的损失函数变化都会存在 history 变量中。程序代码如下:
( 5 )训练过程绘图。程序代码如下:
执行结果:损失函数值随着训练周期越来越小,如图 3.9 所示。
( 6 )取得模型参数 w 为第一层的第一个参数, b 为输出层的第
一个参数。程序代码如下:
执行结果: w : 0.8798 , b : 3.5052 ,因输入数据为随机随机
数。
( 7 )绘图显示回归线。程序代码如下:
执行结果:如图 3.10 所示。
与自动微分比较,这种方法程序更简单,只要设定模型结构、
损失函数、优化器后,呼叫训练( fit )函数即可。
下面我们再看一个有趣的例子,利用神经网络自动求出华氏与
摄氏温度的换算公式。
范例 2. 使用完全连接层推算华氏与摄氏温度的换算公式。
华氏( F ) = 摄氏( C ) * ( 9/5 ) + 32
( 1 )利用换算公式,随机产生 151 个数据。程序代码如下:
( 2 )建立模型:神经网络只有一个完全连接层,而且输入只有
一个神经元,即摄氏温度,输出只有一个神经元,即华氏温
度。程序代码如下:
( 3 )模型训练。程序代码如下:
( 4 )训练过程绘图。程序代码如下:
执行结果:如图 3.11 所示。由此可见:损失函数值随着训练周
期越来越小。
( 5 )测试:输入摄氏 100 度及 0 度转换为华氏温度,答案完全正
确。程序代码如下:
执行结果:
华氏( F ): 212.00 ,摄氏( C ): 100
华氏( F ): 32.00 ,摄氏( C ): 0
( 6 )取得模型参数 w 、 b 。
①执行结果: w : 1.8000 , b : 31.9999 ,近似于华氏与摄氏温度
的换算公式。
②其实换算公式也是一条回归线。 读到这里,读者应该会好奇如何使用更多的神经元和神经层,
甚至更复杂的神经网络结构,下一章我们将正式迈入深度学习
的殿堂,学习如何用 TensorFlow 解决各种实际的案例,并且详
细剖析各个函数的用法及参数说明
更多推荐
所有评论(0)