机器学习——模型、策略、算法(tensorflow入门)

这里是一个简单的线性拟合的例子,利用numpy生成一些数据,其中要拟合的参数是 W W W b b b,原数据中的 W = [ 0.1 , 0.2 ] , b = 0.3 W=[0.1, 0.2],b=0.3 W=[0.1,0.2]b=0.3
在机器学习的算法中,我们一般有三个部分:

  • 模型:即决策函数
  • 策略:求解最优解的决策函数,即损失函数
  • 算法:最后的求解(优化过程)

下面给出这个简单的例子,然后来了解上面的三个部分分别对应的是什么。

import tensorflow as tf
import numpy as np

#使用Numpy生成假数据,总共100个点
X_data = np.float32(np.random.rand(2, 100))  # 2*100
y_data = np.dot([0.1, 0.2], X_data) + 0.300   #1*100

# print(np.shape(X_data))

#构造一个线性模型
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1,2], -1.0, 1.0))  #返回一个1*2的矩阵,其中值符合[-1.0, 1.0)之间的均匀分布
y = tf.matmul(W, X_data) + b

#最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)   #0.5是学习率
train = optimizer.minimize(loss)

#初始化变量
init = tf.initialize_all_variables()

#启动图(graph)
sess = tf.Session()
sess.run(init)

#拟合平面
for step in range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

最终的输出:

0 [[ 0.01752257 -0.3330099 ]] [1.2142264]
20 [[-0.01999345 -0.02930895]] [0.4748085]
40 [[0.05509594 0.12610018]] [0.35955435]
60 [[0.08394848 0.17574227]] [0.32022607]
80 [[0.09439855 0.19194436]] [0.3068567]
100 [[0.09807114 0.19730562]] [0.30232194]
120 [[0.09934083 0.1990949 ]] [0.30078578]
140 [[0.09977572 0.19969516]] [0.30026582]
160 [[0.09992389 0.19989717]] [0.3000899]
180 [[0.09997422 0.1999653 ]] [0.30003038]
200 [[0.09999127 0.19998829]] [0.30001026]

我们看到,迭代200次之后, W W W b b b的值都拟合到了和实际值非常相近的程度。
这里,模型就是我们构造的线性模型,策略是最小化方差,算法是梯度下降。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值