简答易懂入门机器学习

机器学习的一个例子 (平面拟合):通俗易懂的解释

# 使用tensorflow 进行线性拟合  , py2 要加上 from __future__ import print_function

import tensorflow as tf
import numpy as np

# g构造数据

x = np.random.rand(2, 100)
x_data = np.float32(x)
# print(x_data.dtype)
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# 构造了一系列数据,w = [0.100, 0.200], bias = 0.300 
# x 为随机的二维数据,

# 构造线性模型
# 所谓的构建模型也就是将将整个算法的计算过程流程走一遍,
# 然后得到模型的度量标准,不断的通过优化器调整参数,计算损失
# 最终,合理的损失范围内模型也就训练完成

# 这里是模型一个线性函数的计算过程,也即实现了一个线性模型

# 定义参数
b = tf.Variable(np.float32(np.zeros([1]))) # 定义的模型参数, np.zeros 返回的是一个一维的数组
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0)) # 定义权重,假设猜测的是一个有两个维度的权重
# 定义模型
y = tf.matmul(W, x_data) + b
# 很简单


# 接下来就是机器学习中的 tensorflow 中的一些通用内容了

##############################################################
# 跳过这些内容向下
# 定义损失,通过优化器,在不断的进行训练的过程中,不断的最小化损失,以达到训练的目的
# 这也是机器学习的核心思想内容
loss = tf.reduce_mean(tf.square(y - y_data))
optim = tf.train.GradientDescentOptimizer(learning_rate=0.5)  # 这里使用梯度下降优化器,使用的是梯度下降算法
train = optim.minimize(loss)
# 这个train 就是不断训练的内容,也就是训练的目标
# 跳过这些内容向下
##############################################################


# 首先是对进入图中的变量进行初始化
init = tf.initialize_all_variables() # 这里还没有进行初始化,tensorflow 的特性就是,‘先定义,再运行’

# 通过会话启动图
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))

# 注意,用tensorflow 定义的一些变量被称为tensor 要获取里面的值,需要sess run it, 关于如何理解tensor 见后面链接 

结果:还不错

0 [[-0.16681269 0.64336747]] [0.4092061]

20 [[0.04630245 0.28359345]] [0.28674883]
40 [[0.09200455 0.21912442]] [0.29482135]
60 [[0.09903586 0.2045702 ]] [0.29828864]
80 [[0.09996049 0.20113516]] [0.29947484]
100 [[0.1000305  0.20029102]] [0.299845]
120 [[0.10001602 0.20007646]] [0.29995528]
140 [[0.10000583 0.20002046]] [0.29998726]
160 [[0.10000186 0.20000553]] [0.2999964]
180 [[0.10000056 0.20000148]] [0.299999]
200 [[0.10000016 0.20000039]] [0.2999997]

机器学习,就是通过让机器根据一些算法加数据探索一个未知的模型。

模型就是一些函数的组合加上适用于某一领域的庞大参数集。

最终,让机器也能像人一样 根据这些函数和参数作出决策或推理结果!

算是对近期的一个总结~~

tensor: 什么是tensor ? 怎么简单高效理解tensor

猜你喜欢

转载自blog.csdn.net/hpulfc/article/details/81017736
今日推荐