文章目录
- 06 请简要介绍下tensorflow的计算图
- 07 你有哪些深度学习(rnn、cnn)调参的经验?
- 08 为什么不同的机器学习领域都可以使用CNN,CNN解决了这些领域的哪些共性问题?他是如何解决的?
- 09 LSTM结构推导,为什么比RNN好?
- 10 Sigmoid、Tanh、ReLu这三个激活函数有什么缺点或不足,有没改进的激活函数。
06 请简要介绍下tensorflow的计算图
TensorFlow的计算图也叫数据流图。数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
07 你有哪些深度学习(rnn、cnn)调参的经验?
cnn的调参主要是在优化函数、embedding的维度还要残差网络的层数几个方面。优化函数方面有两个选择:sgd、adam,相对来说adam要简单很多,不需要设置参数,效果也还不错。embedding随着维度的增大会出现一个最大值点,也就是开始时是随维度的增加效果逐渐变好,到达一个点后,而后随维度的增加,效果会变差。残差网络的层数与embedding的维度有关系,随层数的增加,效果变化也是一个凸函数。另外还有激活函数,dropout层和batchnormalize层的使用。激活函数推荐使用relu,dropout层数不易设置过大,过大会导致不收敛,调节步长可以是0.05,一般调整到0.4或者0.5就可找到最佳值。以上是个人调参的一些经验,可供参考。
08 为什么不同的机器学习领域都可以使用CNN,CNN解决了这些领域的哪些共性问题?他是如何解决的?
CNN的关键是卷积运算,卷积核与卷积输入层进行局部连接可以获取整个输入的局部特征信息或者说是每个输入特征的组合特征。所以CNN的本质是完成了特征提取或者说是对原始特征的特征组合工作,从而增加模型的表达能力。不同领域的机器学习都是通过数据的特征进行建模,从而解决该领域的问题。故CNN解决了不同领域的特征提取问题,所用的方法是基于局部连接/权值共享/池化操作/多层次结构。
推荐文章《 CNN笔记:通俗理解卷积神经网络》:CNN笔记:通俗理解卷积神经网络_结构之法 算法之道-CSDN博客
https://blog.csdn.net/v_july_v/article/details/51812459
09 LSTM结构推导,为什么比RNN好?
推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。
10 Sigmoid、Tanh、ReLu这三个激活函数有什么缺点或不足,有没改进的激活函数。
sigmoid、Tanh、ReLU的缺点在121问题中已有说明,为了解决ReLU的dead cell的情况,发明了Leaky Relu, 即在输入小于0时不让输出为0,而是乘以一个较小的系数,从而保证有导数存在。同样的目的,还有一个ELU,函数示意图如下。