机器学习篇——单变量线性回归问题(Tensorflow求解)

机器学习中的单变量线性回归问题其实就是用一个神经元解决的方法。


下面是一个简单的线性回归案例
在这里插入图片描述

线性回归中的一些术语

标签:
是我们要预测的真实事物,在上面例子线性回归中就是应变量y
特征:
是用于描述数据的输入变量,在上面例子线性回归中就是自变量x的取值集合{x1、x2、x3、…xn}
样本:
是数据的特定实例:x的一个取值
有标签样本就是{特征,标签}:{x,y},用来训练模型
无………………{特征,?}:{x,?},用来对新数据进行预测
模型:
可以将样本映射到预测标签:y’是由模型的内部参数定义,内部参数则是通过不断地学习而得到。
训练:
训练模型是指通过有标签的样本来学习所有的权重(x的系数)和偏差(截距)的理想值

在监督式学习中,机器学习算法可以通过检查多个样本并尝试找出可最大限度地减少损失的模型。(也被称之为经验风险最小化)
损失:
是对糟糕预测的惩罚,是一个对于单个样本而言模型预测的准确程度的数值指标。

训练模型的目标是从所有样本中找到一组平均损失“较小”的权重和偏差。
在这里插入图片描述
损失函数:
L1损失:基于模型预测值与标签的实际值之差的绝对值为指标
L2损失:基于模型预测值与标签的实际值之差的平均平方损失为指标(均方误差MSE)
在这里插入图片描述

模型训练的迭代方法

在这里插入图片描述
由上图可知,模型训练的要点:(对于单变量线性回归问题y=wx+b)
1.对权重w和偏差b进行初始猜测;
2.反复调整这些猜测;
3.一直迭代到获得损失可能最低的权重和偏差为止。

当不断迭代,直到损失不再发生变化或十分缓慢,就说这个模型已收敛。

上述线性回归问题产生的损失与权重图为凸型,最低点斜率为零处就是损失函数收敛之处。
在这里插入图片描述
这里采用的是梯度下降法。
梯度:就是一个矢量,表示某一函数在该点处的方向导数沿着该方向取得最大值(即函数在该点处沿着该方向(梯度方向)变化最快,变化率最大)
到这里小伙伴们是不是想起了当年高数A3的知识了呢。😉
在这里插入图片描述
注意梯度是一个矢量,因此具有方向和大小。
在这里插入图片描述
用梯度乘以一个名叫学习速率(也称步长)的标量,用来确定下一个权重的取值。
比如梯度大小为2.5,学习速率为0.05,则梯度下降算法会选择距离前一个点0.125的位置作为下一个点。
选取需要适中。
在这里插入图片描述

超参数:
在机器学习中,超参数是开始学习过程之前设置的参数,而不是训练得到的参数数据。
选择一组好的超参数可以提高学习的性能和效果。可以这样说:超参数是机器学习中用于调整的旋钮。
典型的一些超参数:学习率、神经网络隐含层的数量……

单变量线性回归机器学习求解

上面的基础知识了解之后就可以解决这个单变量线性回归问题了。
使用Tensorflow进行算法设计与训练的核心步骤:
(1)准备数据
(2)构建模型
(3)训练模型
(4)进行预测

(1)准备数据
通过生成一个近似采样随机分布人工数据集,使得w=2,b=1,并加入一个噪声,最大振幅为0.4

%matplotlib inline # 在浏览器直接生成
# 导入库
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf

# 设置随机数种子
np.random.seed(5)
# 使用numpy数值计算库生成100个-1~1之间的点
x_data=np.linspace(-1,1,100)
y_data=2*x_data+1.0+np.random.randn(*x_data.shape)*0.4 # 加噪

使用matplot

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值