飞桨 百度架构师手把手带你零基础实践深度学习21天 学习笔记——零基础入门

第一章:零基础入门深度学习

到今天早上才学习完第一章零基础入门深度学习,在上周我才开始接触python,所以对于代码的理解需要费一些功夫,在看到一个新的函数、新的库都要去搜索学习。
但好在飞桨的课程真的是逐步讲解深度学习的每一个步骤与过程,我也跟着学习理解了这个过程。
由于我的专业是数学系,所以对于一些理论推的理解也吸收较快。

概念理解

深度学习参考了人脑结构,运用了神经网络,他比机器学习、人工智能更加复杂,他集中于文字、图像及语言。
神经网络三个核心点:神经元(加权和、非线性变换——激活函数)、多层连接正向计算(输出)和反向传播(更新参数)

波士顿房价预测任务(机器学习的‘hello world’)

模型:多元线性回归
模型构建:
数据处理:

在这里我们需要导入数据,并且对数据的形状进行一定的处理。接下来将数据集划分为训练集(80%)与测试集。接着将数据集进行归一化处理,这一点非常重要,他将和房价有关的13个参数进行归一化处理,一是使模型训练更高效;二是使特征前的权重大小可以代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同)。最后将这些步骤封装为一个load_data函数

模型设计(线性回归模型)

我们以类的方式实现前向计算
1.使用时可生成多个模型案例
2.类成员变量有w和b,在类初始化函数中初始化变量(w随机初始化,b=0)
3.函数成员forward完成输入特征x到输出z的计算过程(即前向计算)

训练配置

通过损失函数Loss来衡量模型的好坏,通过训练配置寻找模型的最优值。
在这里我们选用均方误差,原因也在作业中进行了考核。
在这里插入图片描述
接下来我们使用Numpy的广播功能,实现多样本计算,计算Loss。
但我们要找的是能够使Loss达到最小的w和b,所以我们采用梯度下降法寻找合适的w和b。再通过反向运算,更新参数,实现此过程。
最后我们可以确定Loss最小的点。
将上述步骤封装入train函数

下面我们进行代码实现:
(我会在后面 注解每一部分代码的用途)

import numpy as np
import json
import matplotlib.pyplot as plt

#定义函数,进行数据处理
def load_data():
    # 从文件导入数据
    datafile = 'housing.data'#我将数据和代码放在一个文件夹内
    data = np.fromfile(datafile, sep=' ')

    # 每条数据包括14项,其中前面13项是影响因素,第14项是相应的房屋价格中位数
    feature_names = [ 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值