<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      機(jī)器學(xué)習(xí)中常用激活函數(shù)和損失函數(shù)

       

      1. 激活函數(shù)

      1.1 各激活函數(shù)曲線對比

      常用激活函數(shù):

      tf.sigmoid()
      tf.tanh()
      tf.nn.relu()
      tf.nn.softplus()
      tf.nn.softmax()
      tf.nn.dropout()
      tf.nn.elu()
      
      import numpy as np
      import matplotlib.pyplot as plt
      from scipy.misc import derivative
      
      def sigmoid(x):
          y = 1 / (1 + np.exp(-x))
          return y
      
      def tanh(x):
          return (np.exp(x) - np.exp(-x)) / (np.exp(x)+np.exp(-x))
      
      def relu(x):
          return [max(xi,0) for xi in x]
      
      def elu(x,a=1):
          y = []
          for xi in x:
              if xi >= 0:
                  y.append(xi)
              else:
                  y.append(a*(np.exp(xi)-1))
          return y
      
      def softplus(x):
          return np.log(1+np.exp(x))
      
      def derivative_f(func,input,dx=1e-6):
          y = [derivative(func,x,dx) for x in input]
          return y
      
      x = np.linspace(-5,5,1000)
      
      flg = plt.figure(figsize=(15,5))
      ax1 = flg.add_subplot(1,2,1)
      ax1.axis([-5,5,-1,1])
      plt.xlabel(r'active function',fontsize=18)
      ax1.plot(x,sigmoid(x),'r-',label='sigmoid')
      ax1.plot(x,tanh(x),'g--',label='tanh')
      ax1.plot(x,relu(x),'b-',lw=1,label='relu')
      ax1.plot(x,softplus(x),'y--',label='softplus')
      ax1.plot(x,elu(x),'b--',label='elu')
      ax1.legend()
      ax2 = flg.add_subplot(1,2,2)
      plt.xlabel(r'derivative',fontsize=18)
      ax2.plot(x,derivative_f(sigmoid,x),'r-',label='sigmoid')
      ax2.plot(x,derivative_f(tanh,x),'g--',label='tanh')
      ax2.plot(x,derivative_f(softplus,x),'y-',label='softplus')
      ax2.legend()
      plt.show()
      

      png

      1.2 各激活函數(shù)優(yōu)缺點(diǎn)

      sigmoid函數(shù)

      • 優(yōu)點(diǎn):在于輸出映射在(0,1)范圍內(nèi),單調(diào)連續(xù),適合用作輸出層,求導(dǎo)容易

      • 缺點(diǎn):一旦輸入落入飽和區(qū),一階導(dǎo)數(shù)接近0,就可能產(chǎn)生梯度消失的情況

      tanh函數(shù)

      • 優(yōu)點(diǎn):輸出以0為中心,收斂速度比sigmoid函數(shù)要快

      • 缺點(diǎn):存在梯度消失問題

      relu函數(shù)

      • 優(yōu)點(diǎn):目前最受歡迎的激活函數(shù),在x<0時,硬飽和,在x>0時,導(dǎo)數(shù)為1,所以在x>0時保持梯度不衰減,從而可以緩解梯度消失的問題,能更快收斂,并提供神經(jīng)網(wǎng)絡(luò)的稀疏表達(dá)能力

      • 缺點(diǎn):隨著訓(xùn)練的進(jìn)行,部分輸入或落入硬飽和區(qū),導(dǎo)致無法更新權(quán)重,稱為‘神經(jīng)元死亡’

      elu函數(shù)

      • 優(yōu)點(diǎn):有一個非零梯度,這樣可以避免單元消失的問題

      • 缺點(diǎn):計(jì)算速度比relu和它的變種慢,但是在訓(xùn)練過程中可以通過更快的收斂sua年度來彌補(bǔ)

      softplus函數(shù)

      • 該函數(shù)對relu做了平滑處理,更接近腦神經(jīng)元的激活模型

      softmax函數(shù)

      • 除了用于二分類還可以用于多分類,將各個神經(jīng)元的輸出映射到(0,1空間)

      dropout函數(shù)

      • tf.nn.dropout(x,keep_prob,noise_shape=None,seed=None,name=None)

      • 一個神經(jīng)元以概率keep_prob決定是否被抑制,如果被抑制,神經(jīng)元的輸出為0,如果不被抑制,該神經(jīng)元將被放大到原來的1/keep_prob倍,默認(rèn)情況下,每個神經(jīng)元是否被抑制是相互獨(dú)立的

      一般規(guī)則

      • 當(dāng)輸入數(shù)據(jù)特征相差明顯時,用tanh效果很好,當(dāng)特征相差不明顯時用sigmoid效果比較好,sigmoid和tanh作為激活函數(shù)需要對輸入進(jìn)行規(guī)范化,否則激活后的值進(jìn)入平坦區(qū),而relu不會出現(xiàn)這種情況,有時也不需要輸入規(guī)范化,因此85%-90%的神經(jīng)網(wǎng)絡(luò)會使用relu函數(shù)

      2. 損失函數(shù)

      損失函數(shù)一般分為二分類損失函數(shù)、多分類損失函數(shù)和回歸問題損失函數(shù)

      二分類損失函數(shù)有:0-1損失、hinge損失、LogisticCrossEntropyLoss

      多分類損失有:SoftmaxCrossEntropyLoss

      回歸問題損失函數(shù)有:均方差誤差或根均方差誤差、平均絕對值誤差和huber損失函數(shù)

      2.1 0- 1損失

      對于二分類問題,Y= {-1,1},我們希望??????????(????,??)=????

      ,最自然的損失是0-1損失,即

      ??0?1(??,??)=1????<=0

      該損失函數(shù)能夠直觀地刻畫分類的錯誤率,但是由于其非凸,非光滑使得算法很難對該函數(shù)進(jìn)行優(yōu)化,下面將總結(jié)0-1損失的二個代理函數(shù):HingeLoss,LogsiticCrossEntropyLoss

      2.2 HingeLoss

      定義:

      ???????????=??????(0,1?????)

      Hinge損失函數(shù)是0-1損失函數(shù)相對緊的凸上界,且當(dāng)fy >=1時,該函數(shù)不對其做任何懲罰,Hinge損失在fy=1處不可導(dǎo),因此不能用梯度下降法進(jìn)行優(yōu)化,而是用次梯度下降法

      2.3 LogisticCrossEntropyLoss

      對數(shù)似然函數(shù):

      ??(??(??))=???=1???????log??(????)+(1?????)log(1???(????))


      注:??(??)??????????????數(shù)

       

      2.4 SoftmaxCrossEntropyLoss

      損失函數(shù):

      ????????????????=???????????????????????????????????1??=0??????????????????
      ??????????=???=0?????????????????1??????????????log(????????????????)

      2.5 均方差

      ??????????????(??,??)=(?????)2

      當(dāng)預(yù)測值距離真實(shí)值越大時,平方損失函數(shù)的懲罰力度越大,因此它對異常點(diǎn)比較敏感,為了解決這個問題,可以使用平均絕對損失函數(shù)

      2.6 平均絕對誤差

      ??????????????????(??,??)=|?????|

      絕對損失函數(shù)相當(dāng)于在做中值回歸,相比于做均值回歸的平方損失函數(shù)對異常點(diǎn)的魯棒性更好一些,當(dāng)時有個問題是在f=y時無法求導(dǎo),綜合考慮可導(dǎo)性和對異常點(diǎn)的魯棒性,采用Huber損失函數(shù)

      2.7 HuberLoss

      Huber Loss 是一個用于回歸問題的帶參損失函數(shù), 優(yōu)點(diǎn)是能增強(qiáng)平方誤差損失函數(shù)(MSE, mean square error)對離群點(diǎn)的魯棒性
      當(dāng)預(yù)測偏差小于 δ 時,它采用平方誤差
      當(dāng)預(yù)測偏差大于 δ 時,采用的線性誤差

      ??(??)={12(?????(??))2??(|?????(??)|?12??)|?????(??)|<=???????????????????(4-4)

      注:上圖來源于http://www.rzrgm.cn/nowgood/p/Huber-Loss.html

      3. 附:tensorflow中的損失函數(shù)

      3.1 sigmoid_cross_entropy_with_logits函數(shù)

      • tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,labels=None,logits=None)

      • 該函數(shù)不僅可以用于二分類,也可以用于多分類,例如:判斷圖片中是否包含幾種動物中的一種或多種

      二分類logstic損失函數(shù)梯度推導(dǎo)

      二項(xiàng)邏輯斯蒂回歸模型是一種分類模型,由條件概率p(y|x)表示,形式未參數(shù)化的邏輯斯蒂分布,這里的變量X為實(shí)數(shù),隨機(jī)變量y取值為1或0,邏輯斯蒂模型條件概率分布如下:

      ??(??=1|??)=exp(?????+??)1+exp(?????+??)
      ??(??=0|??)=11+exp(?????+??)

      假設(shè)

      ??(??=1|??)=??(??),??(??=0|??)=1???(??)


      損失函數(shù):

      ??(??(??))=???=1??[??(????)]????[1???(????)]1?????


      對數(shù)似然函數(shù):

      ??(??(??))=???=1???????log??(????)+(1?????)log(1???(????))


      ??(??(??))的極大值,得到w的估計(jì)值,由于??(??(??))

      為凸函數(shù),可以直接求損失函數(shù)的一階偏導(dǎo):

      ??????????=???=1??[?????1??(????)?(1?????)?11???(????)]?????(??)??????

      由于????(??)????=??(????)?(1???(????))???????


      得到:

      ??????????=???=1??(???????(????))???????

      3.2 weighted_cross_entropy_with_logits函數(shù)

      • tf.nn.weighted_cross_entropy_with_logits(targets,logits,pos_weight,name=None)

      • pos_weight正樣本的一個系數(shù)

      • 該函數(shù)在sigmoid_cross_entropy_with_logits函數(shù)的基礎(chǔ)上為每個正樣本添加了一個權(quán)重,其損失函數(shù)如下:

      ????????????=?[?????????????????????????log??????+(1???????)log(1???????)]

      3.3 softmax_cross_entropy_with_logits函數(shù)

      • tf.nn.softmax_cross_entropy_with_logits(_sentinel,labels,logits,name)

      • 適用于每個類別相互獨(dú)立且排斥的情況,例如,判斷的圖片只能屬于一個種類而不能同時包含多個種類

      • 損失函數(shù):

      ????????????????=???????????????????????????????????1??=0??????????????????
      ??????????=???=0?????????????????1??????????????log(????????????????)

      3.4 sparse_softmax_cross_entropy_with_logits函數(shù)

        • tf.nn.sparse_softmax_cross_entropy_with_logits(_sentinel,labels,logits,name)

        • 該函數(shù)與softmax_cross_entropy_with_logits的唯一區(qū)別在于labels,該函數(shù)的標(biāo)簽要求排他性的即只有一個正確類型,labels的形狀要求是[batch_size]而值必須是從0開始編碼的int32或int64,而且范圍是[0,num_class],該函數(shù)沒用過

      posted on 2020-11-04 08:02  yeahle  閱讀(758)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 日韩中文日韩中文字幕亚| 亚洲av综合av一区| 国产不卡一区二区在线| 18岁日韩内射颜射午夜久久成人| 亚洲ΑV久久久噜噜噜噜噜| 太仓市| 国产精品永久久久久久久久久 | 久草热8精品视频在线观看| 人妻中出无码一区二区三区| 国产精品老熟女乱一区二区| 乌克兰丰满女人a级毛片右手影院| 一本无码人妻在中文字幕免费 | 乱码中字在线观看一二区| 亚洲天堂av日韩精品| 国产无遮挡真人免费视频| 亚洲欧美日韩在线码| 2018天天拍拍天天爽视频| 亚洲狠狠狠一区二区三区| 精品九九人人做人人爱| 国产精品污www在线观看| 国产精品自拍一二三四区| 国产精品多p对白交换绿帽| 久久久久无码精品亚洲日韩| 熟女一区| 伊人天天久大香线蕉av色| 四虎在线成人免费观看| 97se亚洲综合自在线| 被黑人伦流澡到高潮HNP动漫| 亚洲色大成网站WWW永久麻豆 | 999福利激情视频| 乱妇乱女熟妇熟女网站| 少妇人妻偷人免费观看| 国产成人无码AV片在线观看不卡| 国产精品一区二区av片| 亚洲av无码之国产精品网址蜜芽| 精品福利一区二区三区免费视频 | 国产av成人精品播放| 国产在线拍揄自揄视频网试看| 少妇被无套内谢免费看| 久热这里只有精品在线观看| 亚洲欧美日韩综合久久|