深度学习之TensorFlow(四)

框架

在这里插入图片描述

激活函数

  1. relu
  • 函数表达式:
    f ( x ) = m a x ( x , 0 ) = { 0 , x < = 0 x , x > = 0 f(x)=max(x,0)=\begin{cases} 0 ,x<=0\\ x,x>=0\\ \end{cases}
  • 函数调用:
  • tf.nn.relu()
  1. sigmoid
  • 函数表达式:
    f ( x ) = 1 1 + e x f(x)=\frac{1}{1+e^{-x}}
  • 函数调用:
  • tf.nn.sigmoid()
  1. tanh
  • 函数表达式:
    f ( x ) = 1 e 2 x 1 + e 2 x f(x)=\frac{1-e^{-2x}}{1+e^{-2x}}
  • 函数调用:
  • tf.nn.tanh()

NN复杂度

  • 多用NN层数和NN参数的个数表示
  • 层数:隐藏层层数+1个输出层
  • 总参数:总W+总b

神经网络优化

  • 损失函数(loss):预测值(y)与已知值(y_)的差距
  • NN优化目标:loss最小
  1. 均方误差mse: M S E ( y _ , y ) = i = 1 n ( y y _ ) 2 n MSE(y\_,y)=\frac{\sum_{i=1}^{n}(y-y\_)^2}{n}
    函数调用:loss_mse=tf.reduce_mean(tf.square(y_-y))
  2. 自定义(商品预测)
    l o s s ( y _ , y ) = n f ( y _ , y ) loss(y\_,y)=\sum_nf(y\_,y)
    即: f ( y _ , y ) = { P R O F I T ( y _ y ) , y < y _ C O S T ( y y _ ) , y > y _ f(y\_,y)=\begin{cases} PROFIT*(y\_-y),y<y\_,损失利润\\ COST*(y-y\_),y>y\_,损失成本\\ \end{cases}
    函数调用:
# tf.where询问y,y_大小
loss=tf.reduce_sum(tf.where(tf.greater(y,y_),COST(y-y_),PROFIT(y_-y)))
  1. ce(交叉熵)
  • 表征两个概率分布之间 的距离
    H ( y _ , y ) = y _ log y H(y\_,y)=-\sum{y\_*\log y}
  • 函数调用:
ce=tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-12,1.0)))

引入:softmax()函数

  • 当n分类的n个输出(y1,y2,…yn)通过softmax()函数,满足概率分布要求:
  • x , P ( X = x ) [ 0 , 1 ] a n d x p ( X = x ) = 1 \forall x,P(X=x)\in[0,1]and \sum_xp(X=x)=1
  • s o f t m m a x ( y i ) = e y i j = 1 n e y i softmmax(y_i)=\frac{e^{y^i}}{\sum_{j=1}^{n}e^{y^i}}
  • 函数调用:
ce=tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.argmax(y_,1))
cem=tf.reduce_mean(ce)
发布了25 篇原创文章 · 获赞 4 · 访问量 751

猜你喜欢

转载自blog.csdn.net/qq_45416295/article/details/104580453