06月08, 2018

Google TensorFlow

2015年11月 Google 发布人工智能系统并宣布开源,TensorFlow是Google多年来内部的机器学习系统,一方面是出于开源精神,让全世界的人们能从机器学习与人工智能中获益,另一方面是出于商业战略,如果使用TensorFlow的科学家越来越多,Google在日后人工智能行业将拥有更多主导权。

e.g. Python 程序生成了一些三维数据, 然后用一个平面拟合它

import tensorflow as tf
import numpy as np

# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# 构造一个线性模型
# 
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([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)
train = optimizer.minimize(loss)

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

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

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

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

1. MNIST

这就像学习程序我们先来个Hello world一样,MNIST数据集入门是计算机视觉数据集,它包含各种手写数字图片,也包含每一张图片的标签,真值是几。 alt

我们会训练一个机器模型用于预测图片里的数字。

数学模型: Softmax Regression

python版本自动下载和安装数据集

import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

数据集分成两部分:1 60000行训练数据集mnist.train和10000行的测试数据集mnist.text, 测试数据集不用于训练而用来评估这个模型的性能,从而易于把模型推广到其他数据集上(泛化)。 每个MNIST数据单元有两部分组成,一张包含手写数字的图片xs和一个对应的标签ys。 如训练的数据集图片是mnist.train.images 训练数据集的标签是mnist.train.labels 所有的手写字的图片都按28X28=784像素点来分析,使用softmax回归,mnist.rain.images 是一个形状为[60000,784]的张量,第一个维度是图片索引,第二个维度是每张图片中的像素点。每个元素,表示某张图片里的某个像素点的强度值,0和1之间。 one-hot vectors 除了某一位的数字是1以外其余各维度数字都是0. [60000,10]表示mnist.train.labels [1,0,0,0,0,0,0,0,0,0,0]

2. Softmax回归

每张图片都表示一个数字0~9,我们要得到给定图片代表每个数字的概率,比如我们的模型可以推测一张9的图片代表数字9的概率是80%,但是判断它是8的概率是5%,因为8和9都有上半部分的小圆。 softmax模型用来给不同的对象分配概率,第一步得到给定图片属于某个特性的证据evidence,对图片像素值进行加权求和,如果证据说明这张图不属于这个类,相应权值为负数,如果像素拥有有利的证据支持这张图片属于这个类,那么权值是正数。 红色代表负数权值,蓝色代表正数权值。 http://www.tensorfly.cn/tfdoc/images/softmax-weights.png 加入一个额外的偏置量(bias)

https://github.com/jikexueyuanwiki/tensorflow-zh

本文链接:https://harry.ren/post/TensorFlow.html

-- EOF --

Comments