TensorFlow实践(8)——利用优化器寻找函数最小值

TensorFlow实践(8)——利用优化器寻找函数最小值

(一)引 言

在开始更加复杂的机器学习模型实践之前,我们先来做一个有趣的小项目来放松放松心情,这个项目的主角是TensorFlow的优化器,我们知道优化器是一种通过渐变来最小化函数的算法,今天我们就使用它来寻找以下函数的最小值。
在这里插入图片描述

(二)问题分析

首先使用Matplotlib画出函数的图像:
在这里插入图片描述
从图中我们可以看到,函数的最小值在**[-0.5, 0]**内,我们的目标是要找到函数的最小值,即优化目标为通过调整参数x, 使 f(x) 最小,下面我们使用TensorFlow来解决这个问题。

(三)模型构建

首先,构建我们需要最小化的函数:

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
# 让x从初始值2开始变化
x = tf.Variable(2.0)
x1 = tf.multiply(tf.pow(x, 2), 3) # 3x^2
x2 = tf.multiply(tf.pow(x, 4), 2) # 2x^4
x3 = tf.multiply(tf.pow(x, 6), 1) # x^6
# 构建函数
y = x1 + x2 + x3 + x + 1
# 学习率为0.1,目标是使y最小
train_op = tf.train.AdamOptimizer(0.1).minimize(y)
# 定义会话,训练10000次
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(10000):
        sess.run(train_op)
    print("The minimum point is " % x.eval(sess))
    print("The minimum is " % sess.run(y))
# 输出:
The minimum point is -0.160995
The minimum is 0.918124

经过10000次迭代后,得到近似最小值点(-0.160995, 0.918124),观察之前的函数图像:
在这里插入图片描述
由图可知,我们求得了一个相当不错的近似最小值点,在实际应用中这个数值已经达到了可以使用的精度。

(四)总 结

在这一节当中,我们使用了TensorFlow的优化器来求取函数的最小值点,属于对TensorFlow使用方法的进一步拓展,之后我也会更新一些有趣的拓展使用方法,敬请期待,有任何的疑问可以在评论区留言,我会尽快回复,谢谢支持!
下一节:TensorFlow实践(9)——普通BP神经网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friedrich Yuan

拒绝白嫖,从我做起!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值