均方誤差
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2020/2/28 18:30
# @author : lzq
# @software: pycharm
# 公式含義 e = 0.5*sum(yk-tk)**2
# yk是表示神經網路的輸出, tk表示監督資料, k表示資料的維數
import numpy as np
# 定義均方誤差函式
def mean_squared_error(y,t):
return 0.5*np.sum((y-t)**2)
# 測試
# 設2為正解
t=[0,0,1,0,0,0,0,0,0,0]
# "2"的概論最高的情況(0.6)
y=[0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
y2=[0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]
error_result=mean_squared_error(np.array(y),np.array(t))
error_result2=mean_squared_error(np.array(y2),np.array(t))
print("均方誤差")
print(error_result)
print(error_result2)
交叉熵誤差
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time : 2020/2/28 20:06
# @author : lzq
# @software: pycharm
# 交叉熵誤差 公式:e= - sum(tk log yk)
# log表示以e為底數的自然對數(log e)。 yk是神經網路的輸出, tk是
# # 正確解標籤。
import numpy as np
def cross_entropy_error(y,t):
delta=1e-7
return -np.sum(t*np.log(y+delta))
'''這裡,引數y和t是numpy陣列。函式內部在計算np.log時,加上了一
個微小值delta。這是因為,當出現np.log(0)時, np.log(0)會變為負無限大
的-inf,這樣一來就會導致後續計算無法進行。作為保護性對策,新增乙個
微小值可以防止負無限大的發生。
'''# 測試
t=[0,0,1,0,0,0,0,0,0,0]
y=[0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
y2=[0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]
print("交叉熵誤差")
print(cross_entropy_error(np.array(y),np.array(t)))
print(cross_entropy_error(np.array(y2),np.array(t)))
深度學習 自學筆記
要求基礎 python基礎學會 本人大二由於有老師引導學習深度學習所以能堅持學下去,在這裡記錄學習過程方便以後查閱。由於是自學所以學習過程是需要復現的,方便以後查閱 翻找。在網上查資料的缺點是資料數量龐大為了找到自己需要的都要看一遍,所以在看的時候碰見有用的需要記錄下來。我直接鏈結位址,下面的鏈結可...
前端自學筆記06
1 學習目標 能寫出全部清除浮動的方式 能簡述定位的使用場景 能說出3種定位的特點 能寫出絕對定位的盒子居中的 能夠說出子絕父相的使用目的 為什麼沒有清除定位卻有清除浮動?因為定位有子絕父相,父盒子 會把位置佔好。2 定位模式轉換 3 css高階技巧 隱藏物件 display block 顯示某個元...
深度學習 自學手冊
機器學習 神經網路 前饋神經網路 沒有迴路的 反饋神經網路 有迴路的 dnn 深度神經網路 cnn 卷積神經網路 rnn 迴圈神經網路 lstm 是rnn的一種,長短期記憶網路 自然語言處理 神經元 分類器 hebb 學習方法,隨機 類似sgd 一篇神經網路入門 bp反向傳播,表示很複雜的函式 空間...