【Chyna_Yang】TF学习笔记总结记录


#1

学习不停止。 学习总结见回复中~欢迎大家来吐槽~


#2

加油,总结的非常好,week 2的课程安排,我们会尽快出!


#3

week1_理论学习知识总结

1、 机器学习中,监督学习 or 非监督学习概念区分,应用场景调研? 监督学习:带标签的学习,也就是分类。已知每个训练数据的输入和正确输出,利用其输入经过模型得到模型中的输出,再与其真实输出相比较来判断模型的好坏,模型若不好,则使用一些优化方法来调整模型参数等,使其达到最优。监督学习算法有决策树、SVM、回归等等。应用场景有:图像识别、股票预测、疾病预测等等。 非监督学习:不带标签的学习,常常就是聚类。没有训练样本,直接对已有数据进行建模,利用数据本身的特征来把数据聚成几类。非监督学习算法有K-mean、层次聚类、模糊聚类等。应用的场景有:彩色图片失真压缩、商场顾客聚类等等 2、 做机器学习项目,有哪些环节? 机器学习项目步骤(视频上):

  1. 定义模型,确定目标函数;
  2. 根据损失值,优化模型;
  3. 选择最好的模型。 机器学习项目步骤(自己学习):
  4. 数据预处理
  5. 数据的特征提取
  6. 确定模型和目标函数
  7. 训练模型,优化模型
  8. 根据模型预测新的数据
  9. 根据新数据的预测结果评价模型 3、 深度学习,目前有哪些应用领域? 自己了解的深度学习应用领域有图像识别、语音识别、自然语言处理(机器翻译、问答系统等) 4、 数据预处理,需要注意哪些? 数据预处理有四个任务,数据清洗、数据集成、数据变换和数据规约。 数据清洗:缺失值处理、异常值处理 数据集成:实体识别、冗余属性识别 数据变换:简单函数变换、规范化、连续属性离散化、属性构造、小波变换 数据规约:属性规约、数值规约 5、 tensorflow运行原理,架构有哪些核心点?
  10. Tensorflow的结构组成是边、节点、图、会话。 边(tensor),就是数据,数据是有类型的多维数组。 节点(operation),就是数据之间的计算。一个节点可以对应多条边,也就是可以有多个输入输出。 图(graph),边和节点结合起来就是图,这里的图是有向图,描述了整个计算过程。 会话(session),tensorflow的程序只有在会话中启动才可以执行。启动会话时,会分配任务到cpu或者gpu等的设备上执行。
  11. Tensorflow的过程 构建图(构建阶段)->在会话中启动图(执行阶段)

week1_自学CNN

搜罗了几天,觉得这几个博客写得很详细,里面的内容都了解得差不多了,下一步准备把论文下来继续学习。 1.CNN的框架 http://www.cnblogs.com/pinard/p/6483207.html 2.CNN的前向传播和后向传播 http://blog.csdn.net/sysushui/article/details/53456774 3.对CNN的各种修改 http://blog.csdn.net/malefactor/article/details/50519566 4.textcnn的改进 http://www.cnblogs.com/yelbosh/p/5808706.html

week1_tensorflow基本知识学习

http://blog.csdn.net/u014595019/article/details/52805444 内容: 矩阵操作(矩阵生成、变换) 神经网络相关 普通操作 规范化 [/quote]


#4

week2_理论学习知识总结

1、back propagation 算法原理理解 ?

2、sigmoid函数、tanh函数和ReLU函数的区别?以及各自的优缺点?对应的 tf函数是?

3、 softmax和cross_entropy原理解释? 1)softmax 作用:直白一点讲,softmax用于多分类 工作过程:模型有几类,就会几个输出,softmax函数将这些输出压缩到[0,1]之间,且他们相加的的和为1,这些转化后的值也表示每个类别出现的可能性,结果选择可能性最大的一类作为分类的结果。在优化的过程中,就是希望最后得到的类别概率中,正确分类的那一个类别的概率接近1,其余类别概率接近0。 公式: 2)交叉熵 原理:两个概率分布的差异性 作用:计算分类算法中的损失值。有两个概率分布,一个概率分布是真实分布,一个概率分布是预测的分布,交叉熵就是用预测分布来表示真实分布的熵。 公式: 离散值计算 连续值计算 好处:交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。

4、tf.placeholder() 、tf.constant()、tf.Variable()的区别?

5、举例说明:tf.Graph() 概念理解? tensorflow中的计算以图数据流的方式表示,一个图包含一系列表示计算单元的操作对象,以及在图中流动的数据单元以tensor对象表现

#class tf.Graph
#tensorflow运行时需要设置默认的图_
g = tf.Graph()
with g.as_default():
# Define operations and tensors in `g`.
c = tf.constant(30.0)
assert c.graph is g
_##也可以使用tf.get_default_graph()获得默认图,也可在基础上加入节点或子图_
c = tf.constant(4.0)
assert c.graph is tf.get_default_graph()

6、tf.name_scope()和tf.variable_scope()的理解? tf.variable_scope()是为变量指定命名空间,可以给variable_name加前缀,也可以给op_name加前缀。tf.get_variable_scope().reuse == False 时,variable_scope 作用域只能用来创建新变量; tf.get_variable_scope().reuse == True 时,作用域可以共享变量。 tf.name_scope()是为变量划分范围,name_scope 对用get_variable()创建的变量的名字不会有任何影响,而 Variable()创建的操作会被加上前缀,并且会给操作加上名字前缀。也就是只能给op_name加前缀。

7、tf.variable_scope() 和tf.get_variable()的理解? 使用情景:当创建复杂的模块时,通常需要共享大量变量集并且如果还想在同一个地方初始化这所有的变量。 含义: tf.get_variable(, , ): 通过所给的名字创建或是返回一个变量. initializer有三种方式: tf.constant_initializer(value) 初始化一切所提供的值, tf.random_uniform_initializer(a, b)从a到b均匀初始化, tf.random_normal_initializer(mean, stddev) 用所给平均值和标准差初始化均匀分布. tf.variable_scope(): 通过 tf.get_variable()为变量名指定命名空间.

8、tf.global_variables_initializer() 什么时候使用? 该函数是用于初始化所有的变量。在构建完整个模型并在会话中加载模型后,运行这个节点。

9、学习中的知识点收获记录?


#5

week3_理论学习知识总结

1、Batch Normalization 原理解释&benefit(优点) ?

2、如何理解卷积? 卷积就是一种数学计算,积分变换的数学方法,通过两个函数的翻转和平移得到新函数的计算方法

3、 如何理解卷积神经网络(CNN)中的卷积(Convolution Kernel)和池化 (Pooling)&有哪些Pooling? CNN中的卷积操作,是为了提取样本的局部特征,且可以实现共享参数 池化操作有最大池化、平均池化

4、Learning Rate 的如何选取,它过大/过小会产生什么影响? 过大:步子太大,造成前面下降很快,后面无法收敛,一直在跳动 过小:步子太小,下降很慢,收敛速度很慢。

5、机器学习中,有哪些正则化的方法?目的是什么?Dropout的好处是? Dropout是为了防止模型过拟合的手段

6、Covariate Shift 和 Internal Covariate Shift 如何理解? 7、如何理解Momentum ?weight decay?它们在神经网络训练中的作用是什 么?

8、如何理解“过拟合 overfitting”? 神经网络训练,如何避免overfitting? 过拟合,就是训练后的模型过于严格而降低召回率的情况 数据增强和Dropout可以防止神经网络训练时的过拟合 数据增强就是在数据量有限的情况下,变换已有数据加入训练 Dropout是在训练时,随机停止一定概率的神经元的工作

9、各种优化方法(SGD/Momentum/Adagrad/Adam等),对比优缺点?

10、经典的卷积神经网络(CNN)之一,LeNet5模型详细解释?

(1)输入层。输入图像尺寸为 32×32。这要比 MNIST 数据集中的字母(28×28)还大, 即对图像做了预处理 reshape 操作。这样做的目的是希望潜在的明显特征,如笔画断续、角点, 能够出现在最高层特征监测卷积核的中心。 (2)卷积层(C1, C3, C5)。卷积运算的主要目的是使原信号特征增强,并且降低噪音。 (3)下采样层(S2, S4)。下采样层主要是想降低网络训练参数及模型的过拟合程度。通常 有以下两种方式。 ● 最大池化(max pooling):在选中区域中找最大的值作为采样后的值。 ● 平均值池化(mean pooling):把选中的区域中的平均值作为采样后的值。 (4)全连接层(F6)。F6 是全连接层,计算输入向量和权重向量的点积,再加上一个偏置。 随后将其传递给 sigmoid 函数,产生单元 i 的一个状态。 (5)输出层。输出层由欧式径向基函数(Euclidean radial basis function)单元组成,每个类 别(数字的 0~9)对应一个径向基函数单元,每个单元有 84 个输入。也就是说,每个输出 RBF 单元计算输入向量和该类别标记向量之间的欧式距离。距离越远,RBF 输出越大。

11、学习中的知识点收获记录? 1)Stochastic GD是对单个样本进行梯度下降,更新参数 2)Feature Scaling是特征值作归一化处理,将不同特征的数值调整到相同的范围,不然会影响梯度下降的效率。 3)Keras使用步骤:A 确定输入;B 初始化训练参数、优化方式;C 使用fit函数开始训练。 4)mini-batch随机将训练集分批次进行训练,bacthsize越大,参数训练越稳定,但是cpu等处理器处理数据有限,所以不能太大。