利用TensorFlow解决线性回归问题

简介: 【7月更文挑战第21天】利用TensorFlow解决线性回归问题。

利用TensorFlow解决线性回归问题
利用TensorFlow解决线性回归问题之前需要介绍一些概念。
用数学方法解决线性回归问题,其本质是最小化一个损失函数,通过最小二乘法直接计算损失函数对应参数的数学解。但是很多机器学习的模型是求不到这样的数学解的,那么基于这样的模型,就需要使用一种基于搜索的策略来找到这个最优解。梯度下降法就是机器学习领域最小化损失函数的一个最为常用的方法。
线性函数的形式为,根据这个函数形式推导出它的损失函数为。但是这个损失函数是有问题的,如果有150个点,则可得到一个损失值L,而如果有15000个点,那么损失L会很大。损失函数的值与样本数据的数量是不应该有关系的,所以,对损失函数的值求平均值得到新的损失函数值,那么损失函数值的大小和样本数据的数量就没有关系了,得到新的损失函数为。寻找使损失值L最小的W和b的过程称为最优化(Optimization)。最优化的过程可以比作:一个蒙着眼睛的人在山地上行走,目标是要走到山底,他只能通过感受地形的变化一点一点地完成目标。在数学上,地形变化是不需要猜测的,可以计算出来,最陡峭的方向称为损失函数的梯度(Gradient)。在一维函数中,斜率是函数在某一点的瞬时变化率,梯度是函数斜率的一般化表达,它是一个向量,表示某一函数在该点处的方向,导数沿着该方向取得最大值,即函数在该点处沿着该方向(该梯度的方向)变化最快,变化率最大(为该梯度的模)。由于损失函数值需要减小,所以需要向着梯度的负方向更新,这个方法称为梯度下降法。
下面依然来看蒙着眼睛下山的例子,下山时迈不同大小的步子会导致下到山底所花费的时间不一样。如果迈的步子太大,会导致找不到最低点,一直在最低点左右徘徊;步子太小,虽然能更好地找到最低点,但是过程会比较漫长。这个步长就是学习率。

目录
相关文章
|
机器学习/深度学习 TensorFlow 算法框架/工具
【tensorflow】连续输入的线性回归模型训练代码
  get_data函数用于生成随机的训练和验证数据集。首先使用np.random.rand生成一个形状为(10000, 10)的随机数据集,来模拟10维的连续输入,然后使用StandardScaler对数据进行标准化。再生成一个(10000,1)的target,表示最终拟合的目标分数。最后使用train_test_split函数将数据集划分为训练集和验证集。
|
7月前
|
机器学习/深度学习 算法 TensorFlow
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
196 0
|
7月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Python机器学习】神经网络中全连接层与线性回归的讲解及实战(Tensorflow、MindSpore平台 附源码)
【Python机器学习】神经网络中全连接层与线性回归的讲解及实战(Tensorflow、MindSpore平台 附源码)
188 0
|
机器学习/深度学习 自然语言处理 TensorFlow
【深度学习】实验06 使用TensorFlow完成线性回归
【深度学习】实验06 使用TensorFlow完成线性回归
79 0
|
算法 TensorFlow 算法框架/工具
线性回归算法的数学推导与tensorflow演示
线性回归算法的数学推导与tensorflow演示
|
TensorFlow 算法框架/工具
TensorFlow HOWTO 1.1 线性回归
TensorFlow HOWTO 1.1 线性回归
43 0
|
机器学习/深度学习 PyTorch TensorFlow
uiu
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2 Keras实现线性回归
TensorFlow 2 Keras实现线性回归
uiu
201 0
TensorFlow 2 Keras实现线性回归
Python-Tensorflow基础(三)-线性回归与非线性回归示例
Python-Tensorflow基础(三)-线性回归与非线性回归示例
164 0
Python-Tensorflow基础(三)-线性回归与非线性回归示例