机器学习&tensorflow相关

机器学习任务

1.supervised learning(监督式学习)

是从标记的训练数据推断函数的机器学习任务。
在监督式学习中,每个例子都是由一个输入对象(通常是一个向量)和一个期望的输出值(也称为监督信号)组成的一对。
监督式学习算法分析训练数据并产生一个推断的函数,可用于映射新的例子。
最佳方案将允许算法正确地确定不可见实例的类标签。
这就要求学习算法以“合理”的方式从训练数据推广到看不见的情况(见感应偏差)

2.unsupervised learning(无监督式学习)

从“未标记的”数据(未包括在观察中的分类或分类)推导出隐藏结构的功能。
由于给予学习者的例子没有标签,所以没有评估相关算法输出的结构的准确性-这是区分无监督学习与监督学习和强化学习的一种方法。

3.reinforcement learning(强化学习)

强化学习(RL)是受行为主义心理学启发的机器学习领域,关注软件特工如何在环境中采取行动,从而最大化累积奖励的概念。
这个问题由于其一般性,在博弈论,控制论,运筹学,信息论,基于仿真的优化,多智能体系统,群体智能,统计学和遗传算法等许多学科中都有研究。
在操作研究和控制文献中,强化学习方法被研究的领域称为近似动态规划。
在最优控制理论中已经研究了这个问题,尽管大多数研究都关注最优解的存在及其表征,而不是学习或近似的方面。
在经济学和博弈论中,强化学习可以用来解释在有限理性下平衡是如何产生的。

tensorflow

data model(数据模型)

数据模型相当于在tensorflow中的张量(tensor),简单的说就是多维数组,具有三个特征:Rank(阶),Shape(形状),Type(类型)

Rank(阶)

数学实例 python(tensorflow)
0 纯量 (只有大小) size = tf.constant(100)
1 向量(大小和方向) vector = tf.constant([1,2,3,4])
2 矩阵(数据表) matrix = tf.constant([1,2],[3,4])
3 3阶张量 (数据立体) cube_matrix = tf.constant([[[1],[2],[3]],[[4],[5],[6]],[[7],[8],[9]]])
n n阶张量 …..

Shape(形状)

形状 维数 实例
0 [] 0-D 一个0维张量即纯量
1 [D0] 1-D 一维张量形式[2]
2 [D0,D1] 2-D 二维张量形式[2,3]
3 [D0,D1,D2] 3-D 三维张量形式[2,3,4]
n [D0,D1,D2….D(n-1)] n-D n维张量的形式[D0,D1,D2…..D(n-1)]

Type(类型)

数据类型 Python类型 描述
DT_FLOAT tf.float32 32位浮点型
DT_DOUBLE tf.float64 64位浮点型
DT_INT8 tf.int8 8位有符整型
DT_INT16 tf.int16 16位有符整型
DT_INT32 tf.int32 32位有符整型
DT_INT64 tf.int64 64位有符整型
DT_UINT8 tf.uint8 8位无符整型
DT_STRING tf.string 可变长度的字节数组
DT_BOOL tf.bool 布尔
DT_COMPLEX128 tf.complex128 2个64位浮点型数据组(实数和虚数)成的复数
DT_QINT8 tf.qint8 用于量化ops的8位有符整型
DT_QINT32 tf.qint32 用于量化ops的32位有符整型
DT_QUINT8 tf.quint8 用于量化ops的8位无符整型

Variables

Variable 是tensorflow 用于存放或者更新参数的实例

demo

import tensorflow as tf
value = tf.Variable(0,name="value")
one = tf.constant(1)
new_value = tf.add(value,one)
update_value = tf.assgin(value,new_value)
initialize_var = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(initialize_var)
    print(sess.run(value))
    for _ in range(10):
        sess.run(update_value)
        print(sess.run(value))

Fetches

获取运算的输出结果

demo

import tensorflow as tf

constant_A = tf.constant([100.0])
constant_B = tf.constant([300.0])
constant_C = tf.constant([3.0])

sum_ = tf.add(constant_A,constant_B)
mul_ = tf.multiply(constant_A, constant_C)
with tf.Session() as sess:
    result = sess.run([sum_,mul])
    print(result)


Feeds

提供运算的输入数据

demo

import tensorflow as tf
import numpy as np

a = 3
b = 2
x = tf.placeholder(tf.float32, shape=(a,b))
y = tf.add(x,x)
data = np.random.rand(a,b)
sess = tf.Session()
print sess.run(y, feed_data={x:data})

使用TensorBoard

安装

pip install tensorboard

未完待续!


阅读量: