Mitchy
今日もキラキラしていこう♪

什么是深度学习:

1. 感知问题:用数据训练机器干之前只能人来干的事情,如图像处理,语言对话识别,人机交互 -> 计算机视觉,语音识别

2. 应用:发现新药,自然语言处理,理解文件

优势:

1. 数据越多越准确

2. 问题越复杂越可能发现人类会忽略的联系

3. 方法对于各界问题都通用

为什么现在热?

数据量多,数据处理速度快

神经网络 -> 深度学习

 

如何安装:自行参考百度大神们的意见

 

TensorFlow中,数据都存在Tensor这个object里面,如:

常数:tf.constant()

非常数:tf.placeholder(tf.string/int32/float32),配合feed_dict = {}

变量:tf.Variable()

变量需要初始化:init = tf.global_variables_initializer()

正态分布随机值:tf.truncated_normal()

一堆0:tf.zeros()

 

 

Session: 运行图表的环境

创造:with tf.Session() as sess:

运行:  output = sess.run(tf.constant('Hellp World!'))

     print(output)

 

运算:(需要保证数据类型一致,可以使用tf.cast())

tf.add() tf.subtract() tf.multiply() tf.divide()

tf.matmul()

tf.nn.softmax()

tf.reduce_sum()

tf.log()

该项目主要讲分类问题 (Logistic Classifier)y = Wx + b = xW + b

softmax: 能使输入值都变成正数的激活函数,然后就可以算出结果预测的概率值

one-hot encoding:使输出类别变成一个n*1矩阵,是该类的矩阵中值为1,不是该类的值为0

类别特别多的时候,one-hot encoding会变得特别麻烦,这边使用cross-entropy计算输出与各个类别之间的距离

multinomial logistic classification:

输入x -> (linear model) xW + b -> (logits) y -> (softmax) D(y) -> (cross-entropy) D(S, L) -> (one-hot labels) L 

loss function: 1/Nsum(D)

为了更好地优化得到最小loss,我们需要这个公式的输入参数分布均匀(平均值为0,方差相等)也就是标准化,以减少误差。

 

为了使模型更准确,需要把数据随机分为训练集,验证集,和测试集。

在建模选参数的时候绝对不可以使用任何和测试集相关的数据,直到最后验证模型准确率。

验证集是用来中途测试模型表现如何,以便进行调整。可以用交叉验证法高效利用数据,不过数据量还是王道。

 

GD用在这个问题上太耗计算量,所以用SGD,每次随机取一小部分数据(batch),计算他们的loss和grad。虽然效果不好但是很快,最后也能得到一个不错的结果。

实际运用:

1. 动量法,假定每一次都在往正确的方向移点,那么新的方向肯定和老方向有关:M <- 0.9M + grad(fLoss)

2. 学习率衰减:步数越多学习率越小

可以调整的模型参数:初始学习率,学习率衰减,动量,batch size,权重初始

算法:ADAGRAD (只用调batch size和权重初始)

Epoch:一次前馈+一次反馈

电脑运算能力不够用:aws.amazon.com

 

posted on 2020-08-17 23:25  Mitchy  阅读(138)  评论(0)    收藏  举报