Chapter4 2018-03-20

深层神经网络

激活函数  - 非线性  ReLU,sigmoid, tanh.....

损失函数   

 分类问题- 交叉熵损失 :H(p,q)  通过概率分布q来表达概率分布p的困难程度

                                        刻画两个概率分布的距离(正比)

                                        code:cross_entropy = -tf.reduce_mean( y_*tf.log(tf.clip_by_value(y,1e - 10, 1.0)))

                                                         y_是正确结果,y是预测结果                                                                                                                   tf.clip_by_value,将函数数值限定在某一范围                                                                                                              tf.log : 对张量里所有元素依次取对数

                                                          * : 矩阵元素间直接相乘,不是矩阵乘法

                                                           tf.reduce_mean:对整个矩阵做平均

                    -softmax回归处理:将网络输出变成概率分布

                    -交叉熵一般会与softmax一起使用

                            cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, y_)

                            如果只有一个正确结果:

                            cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(y, y_)  加速计算过程

回归问题(具体数值预测)- 均方误差(MSE)(也可用于分类问题)

                                        code: mse = tf.reduce_mean(tf.square(y_-y))


自定义损失函数

loss = tf.reduce_sum(tf.select(tf.greater(v1, v2), a*(v1-v2), b*(v2-v1))

神经网络优化算法  -梯度下降算法(主要单个参数,可能得到局部最优解)

                                随机梯度下降法

                                折中:每次计算一个batch

                               -反向传播算法(所有参数下使用梯度下降)

                                -学习率设置-指数衰减法

                                        tf.train.exponential_decay

                                        实现了

                                        decayed_learning_rate = \ learning_rate*decay_rate ^ (global_step / decay_steps)

                                        decayed_learning_rate:每一轮优化的学习率

                                        learning_rate:初始学习率

                                        decay_rate:衰减系数

                                        decay_steps:衰减速度

过拟合        - 正则化

                           在损失函数中加入刻画模型复杂程度的指标   

                            L1正则化     tf.contrib.layers.11_regularizer(lambda)(w)

                            L2正则化     tf.contrib.layers.12_regularizer(lambda)(w)    L2损失值要除以2,使得求导的

结果更加简洁                            

                            网络结构复杂后:用集合(collection)在graph中保存一组实体  

滑动平均模型    -

                            tf.train.ExponentialMovingAverage(decay, num_updates)

                            decay: 衰减率,一般接近1

                            num_updates: 动态设置decay  decay = min(decay, (1+num_updates)/(10+num_updates))

                            shadow_variable = decay * shadow_variable + (1-decay) * variable

你可能感兴趣的:(Chapter4 2018-03-20)