1、基础
有向图(计算图),运算操作(节点),流动的张量,依赖控制。
Tensorflow内建的运算操作:
Session、tensor、Variable
Placeholder:输入数据的地方
2、深度学习框架
Tensorflow、Caffe、Keras、CNTK、Torch7、Pytorch、MXNet、Theano、Deeplearning4
3、多分类任务
多分类任务:Softmax Regression模型:
y=tf.nn.softmax(tf.matmul(x, W) + b)
交叉熵(Cross -entropy)损失函数:
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
定义优化器:
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
计算准确率:
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
迭代训练:
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
4、自编码器
高阶特征重构自己;
隐含层维度小于输入,数据降维,加入正则项L1,则惩罚项系数越大,特征组合越稀疏;
加入噪声,去噪自编码器;
自编码器隐含层只有一维,类似PCA;
DBN(深度信念网络)模型有多个隐含层,每个隐含层都是RBM(有限性玻尔兹曼机),解决了梯度弥散问题。
Xavier初始化器,Caffe早期常用,根据输入输出节点数量自动调整最佳分布;
多层神经网络问题解决:Dropout、Adagrad、ReLU;
5、多层感知机MLP
隐含层将特征进行抽象;
W1将初试权重设置为截断的正态分布,标准差为0.1,打破完全平衡;
# Create the model
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
sess = tf.InteractiveSession()
in_units = 784
h1_units = 300
W1 = tf.Variable(tf.truncated_normal([in_units, h1_units], stddev=0.1))
b1