单层神经网络
为了熟悉神经网络的用法,先从对函数的简单近似开始。
您将训练一个神经网络来近似输入 x 与输出 y 之间的映射关系。两者满足平方根函数关系,即 $y = \sqrt{x}$。
输入向量 x 已提供。您将先使用 Numpy 的 sqrt() 函数计算 x 的平方根,得到输出序列 y。然后创建一个简单的神经网络,并在 x 序列上训练该网络。
训练完成后,您将同时绘制 y 序列与神经网络的输出,观察网络对平方根函数的逼近程度。
Keras 库中的 Sequential 和 Dense 对象也已在您的工作区可用。
本练习是课程的一部分
Python 中的定量风险管理
练习说明
- 使用 Numpy 的
sqrt()函数创建输出训练值。 - 构建一个包含 1 个隐藏层(16 个神经元)、1 个输入值和 1 个输出值的神经网络。
- 对神经网络进行编译并在训练值上进行拟合,训练 100 个 epoch。
- 绘制训练值(蓝色)与神经网络预测值的对比图。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create the training values from the square root function
y = np.____(x)
# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))
# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)
## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()