百度飞桨PaddlePaddle学习

使用python语言和numpy库来构建神经网络模型

  波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。在百度飞桨课程的指导下,我学习了使用python语言和numpy库来构建房价预测模型。构建神经网络的基本步骤如下图:

百度飞桨PaddlePaddle学习_第1张图片

数据处理

百度飞桨PaddlePaddle学习_第2张图片
数据处理包含五个部分:数据导入、数据形状变换、数据集划分、数据归一化处理和封装load data函数。数据预处理后,才能被模型调用。

模型设计

百度飞桨PaddlePaddle学习_第3张图片
模型设计是深度学习模型关键要素之一,也称为网络结构设计,相当于模型的假设空间,即实现模型“前向计算”(从输入到输出)的过程。

训练配置

百度飞桨PaddlePaddle学习_第4张图片
模型设计完成后,需要通过训练配置寻找模型的最优值,即通过损失函数来衡量模型的好坏。训练配置也是深度学习模型关键要素之一。

训练过程

梯度下降法

百度飞桨PaddlePaddle学习_第5张图片
百度飞桨PaddlePaddle学习_第6张图片

计算梯度

百度飞桨PaddlePaddle学习_第7张图片
使用Numpy库的广播功能:

  1. 一方面可以扩展参数的维度,代替for循环来计算1个样本对从w0 到w12 的所有参数的梯度。
  2. 另一方面可以扩展样本的维度,代替for循环来计算样本0到样本403对参数的梯度。
写入Network

百度飞桨PaddlePaddle学习_第8张图片

更新梯度

百度飞桨PaddlePaddle学习_第9张图片
在上述代码中,每次更新参数使用的语句: net.w[5] = net.w[5] - eta * gradient_w5
相减:参数需要向梯度的反方向移动。
eta:控制每次参数值沿着梯度反方向变动的大小,即每次移动的步长,又称为学习率。

代码封装

将上面的循环计算过程封装在train和update函数中:
百度飞桨PaddlePaddle学习_第10张图片
百度飞桨PaddlePaddle学习_第11张图片
百度飞桨PaddlePaddle学习_第12张图片

通过这几节课的学习,我成功的将以前学到的理论知识应用于具体编程任务中。paddlepaddle的课程注重实际应用,对我的帮助很大。

你可能感兴趣的:(百度飞桨PaddlePaddle学习)