线性回归算法的数学推导与tensorflow演示

简介: 线性回归算法的数学推导与tensorflow演示

正文


线性回归算法的数学推导:


假设有两个特征X1X2,和参数θ0θ1θ2它们满足

Y=θ0+θ1X1+θ2X2



其中 θ0偏置项,用于更好的描述数据。

YY表示一个由Xθ拟合的平面hθ(X),这个拟合平面与Xθ之间的关系为:


43.png

44.png

绝大部分情况下线性回归算法会产生 误差,所以有必要在公式中加入对误差的描述。

记误差为 ϵ,则对于用该算法描述的每个样本都有:

55.png

对每一个样本而言,误差 ϵ(i)独立同分布的,均服从”均值为 0,方差为σ^2”的 高斯分布( 正态分布)。


77.jpg


正态分布公式


10.png



由此可得 似然函数9.png



为方便计算,将似然函数转换为对数形式,则 对数似然函数为:


8.png


J(θ)越小时,误差越小, J(θ)J(θ)

7.png


求该函数的极值点要用到 梯度下降的方法,梯度下降,即将数据应用于 目标函数, 不断迭代,直到达到目标函数的 终点( 极值点)。

我们将误差视为一种 损失,对有 mm个样本的数据集而言,将每一个样本的平均损失视为目标函数,当每一个样本的平均损失最小时,就达到了目标函数的终点。

平均损失(目标函数):

6.png

梯度下降的方法通常有三种,分别是 批量梯度下降随机梯度下降小批量梯度下降

①批量梯度下降:

迭代公式:

3.png

②随机梯度下降:

迭代公式:

4.png

③小批量梯度下降:

迭代公式:

5.png

小批量的批处理数量依内存和处理效率而定。

梯度下降通常还有一个学习率的问题,一般来说,学习率要取一个比较小的数,之后再依学习情况进行更改。

不同学习率造成的不同影响:

2.png

学习率的选择,直接关系着学习效果的好坏。


线性回归算法的tensorflow演示:


import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
threshold = 1.0e-2
x_data = np.random.randn(100).astype(np.float32)
y_data = 3 * x_data + 1
weight = tf.Variable(1.0)
bias = tf.Variable(1.0)
x_ = tf.placeholder(tf.float32)
y_ = tf.placeholder(tf.float32)
y_model = tf.add(tf.multiply(x_, weight), bias)
loss = tf.reduce_sum(tf.pow((y_model - y_), 2))
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
flag = 1
while(flag):
    for (x, y) in zip(x_data, y_data):
        sess.run(train_op, feed_dict={x_:x, y_:y})
    print(weight.eval(sess), bias.eval(sess))
    if sess.run(loss, feed_dict={x_:x_data, y_:y_data}) <= threshold:
        flag = 0
plt.plot(x_data, y_data, 'ro', label='Original data')
plt.plot(x_data, sess.run(weight) * x_data + sess.run(bias), label='Fittedline')
plt.legend()
plt.show()

1.png



目录
打赏
0
0
0
0
5
分享
相关文章
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
375 55
扩散模型=进化算法!生物学大佬用数学揭示本质
在机器学习与生物学交叉领域,Tufts和Harvard大学研究人员揭示了扩散模型与进化算法的深刻联系。研究表明,扩散模型本质上是一种进化算法,通过逐步去噪生成数据点,类似于进化中的变异和选择机制。这一发现不仅在理论上具有重要意义,还提出了扩散进化方法,能够高效识别多解、处理高维复杂参数空间,并显著减少计算步骤,为图像生成、视频合成及神经网络优化等应用带来广泛潜力。论文地址:https://arxiv.org/pdf/2410.02543。
36 21
Transformer打破三十年数学猜想!Meta研究者用AI给出反例,算法杀手攻克数学难题
《PatternBoost: Constructions in Mathematics with a Little Help from AI》提出了一种结合传统搜索算法和Transformer神经网络的PatternBoost算法,通过局部搜索和全局优化交替进行,成功应用于组合数学问题。该算法在图论中的Ramsey数研究中找到了更小的反例,推翻了一个30年的猜想,展示了AI在数学研究中的巨大潜力,但也面临可解释性和通用性的挑战。论文地址:https://arxiv.org/abs/2411.00566
86 13
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
253 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
223 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
149 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
186 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
188 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
158 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等