国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

TensorFlow損失函數專題詳解

2020-02-22 23:51:32
字體:
來源:轉載
供稿:網友

一、分類問題損失函數——交叉熵(crossentropy)

交叉熵刻畫了兩個概率分布之間的距離,是分類問題中使用廣泛的損失函數。給定兩個概率分布p和q,交叉熵刻畫的是兩個概率分布之間的距離:

我們可以通過Softmax回歸將神經網絡前向傳播得到的結果變成交叉熵要求的概率分布得分。在TensorFlow中,Softmax回歸的參數被去掉了,只是一個額外的處理層,將神經網絡的輸出變成一個概率分布。

代碼實現:

import tensorflow as tf  y_ = tf.constant([[1.0, 0, 0]]) # 正確標簽 y1 = tf.constant([[0.9, 0.06, 0.04]]) # 預測結果1 y2 = tf.constant([[0.5, 0.3, 0.2]]) # 預測結果2 # 以下為未經過Softmax處理的類別得分 y3 = tf.constant([[10.0, 3.0, 2.0]]) y4 = tf.constant([[5.0, 3.0, 1.0]])  # 自定義交叉熵 cross_entropy1 = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y1, 1e-10, 1.0))) cross_entropy2 = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y2, 1e-10, 1.0))) # TensorFlow提供的集成交叉熵 # 注:該操作應該施加在未經過Softmax處理的logits上,否則會產生錯誤結果 # labels為期望輸出,且必須采用labels=y_, logits=y的形式將參數傳入 cross_entropy_v2_1 = tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y3) cross_entropy_v2_2 = tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y4)  sess = tf.InteractiveSession() print('[[0.9, 0.06, 0.04]]:', cross_entropy1.eval()) print('[[0.5, 0.3, 0.2]]:', cross_entropy2.eval()) print('v2_1', cross_entropy_v2_1.eval()) print('v2_2',cross_entropy_v2_2.eval()) sess.close()  ''''' [[0.9, 0.06, 0.04]]: 0.0351202 [[0.5, 0.3, 0.2]]: 0.231049 v2_1 [ 0.00124651] v2_2 [ 0.1429317] ''' 

tf.clip_by_value()函數可將一個tensor的元素數值限制在指定范圍內,這樣可防止一些錯誤運算,起到數值檢查作用。

* 乘法操作符是元素之間直接相乘,tensor中是每個元素對應相乘,要去別去tf.matmul()函數的矩陣相乘。

tf.nn.softmax_cross_entropy_with_logits(labels=y_,logits=y)是TensorFlow提供的集成交叉熵函數。該操作應該施加在未經過Softmax處理的logits上,否則會產生錯誤結果;labels為期望輸出,且必須采用labels=y_, logits=y3的形式將參數傳入。

二、回歸問題損失函數——均方誤差(MSE,mean squared error)

均方誤差亦可用于分類問題的損失函數,其定義為:


三、自定義損失函數

對于理想的分類問題和回歸問題,可采用交叉熵或者MSE損失函數,但是對于一些實際的問題,理想的損失函數可能在表達上不能完全表達損失情況,以至于影響對結果的優化。例如:對于產品銷量預測問題,表面上是一個回歸問題,可使用MSE損失函數。可實際情況下,當預測值大于實際值時,損失值應是正比于商品成本的函數;當預測值小于實際值,損失值是正比于商品利潤的函數,多數情況下商品成本和利潤是不對等的。自定義損失函數如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清原| 鲜城| 随州市| 承德县| 苍溪县| 康保县| 井冈山市| 莆田市| 平舆县| 治县。| 柳江县| 新丰县| 永丰县| 南康市| 安远县| 吴旗县| 阳高县| 海兴县| 应城市| 大港区| 湘潭县| 修文县| 晋宁县| 鸡西市| 湘潭市| 政和县| 高平市| 阿克苏市| 永泰县| 武川县| 中江县| 沅陵县| 开化县| 高台县| 新密市| 柳河县| 桑植县| 贵溪市| 蒲江县| 广安市| 潜江市|