誤差函數(shù)
-
首先,我們先說(shuō)兩個(gè)生活中的例子
- 第一個(gè)是下樓梯,比如你在一個(gè)天橋上有四個(gè)方向的 樓梯,每個(gè)有20階。你需要到達(dá)平底即可,那么這四個(gè)方向是沒(méi)有區(qū)別,從哪個(gè)下去都會(huì)消耗一樣的體能和一樣的時(shí)間
- 第二個(gè)例子是下山,你站在華山頂,現(xiàn)在同樣要到達(dá)平面,有很多辦法,做索道啊走棧道?。植乐翗O甚重啊兄弟),或者一步一個(gè)腳印走下來(lái)。有句話(huà)說(shuō)的好,“世上本無(wú)路,走的人多了便成了路”
那你呢,要是窮逼還怕死,就只能走路嘍,當(dāng)然我知道你也不傻,肯定不會(huì)選擇一條直線(xiàn)走下去啊,這走的每一步肯定都和你周?chē)沫h(huán)境有關(guān)系,選擇最佳的方向,適當(dāng)調(diào)整步長(zhǎng)之類(lèi)的,我想有個(gè)坑你也不至于非得踩下去吧。好,就這樣,大家下山了,每個(gè)人選的方式和走的路不同,肯定下山的時(shí)間和消耗的體力也就不同了
這兩個(gè)例子看完了,我要開(kāi)始說(shuō)這個(gè)誤差函數(shù)有什么關(guān)系了
誤差 Error 都知道,現(xiàn)實(shí)情況和事實(shí)啊正確數(shù)據(jù)等等的偏差嘛,而之前我說(shuō)的你在天橋或山頂 到 地面的距離 就是誤差!
你想要回到平地,就是在想辦法減小誤差下樓梯這中方法,每一個(gè)臺(tái)階就像是一個(gè)歸類(lèi)錯(cuò)誤的點(diǎn),每下一個(gè)臺(tái)階就像之前那個(gè)劃分點(diǎn)的線(xiàn),把一個(gè)歸類(lèi)錯(cuò)誤的點(diǎn)放回了出于自己的地方。顯而易見(jiàn),對(duì)于這種離散的點(diǎn),我們很難判斷到底怎么走啊,就是我可能從天橋西邊做兩個(gè)感覺(jué)咋還沒(méi)下去,我再回去東邊方向走兩節(jié)。
我就是想說(shuō)啊,這個(gè)離散的點(diǎn)啊真的很討厭爬山可就不一樣了,對(duì)于這種連續(xù)又沒(méi)有規(guī)則的山路,我就可以選擇很多很多了。這就像是連續(xù)數(shù)據(jù)形成的“誤差山”,我可以一點(diǎn)點(diǎn)來(lái),舒舒服服走下去。(后面好好說(shuō))
現(xiàn)在我們來(lái)說(shuō)說(shuō),非要用離散數(shù)據(jù)呢
一個(gè)點(diǎn),在坐標(biāo)軸上就是一個(gè)點(diǎn)。太小了,我照顧了這個(gè)點(diǎn)不能照顧那個(gè)真的很煩,所以啊,我就把這個(gè)圓畫(huà)大一點(diǎn)吼吼,兩個(gè)好處 :
- 之前下圖的誤差不就是有幾個(gè)點(diǎn)不在指定區(qū)域嗎(此圖為2),現(xiàn)在可一樣了,我把你放大了,我就用面積衡量你,說(shuō)實(shí)在的,就是加上你離我的三八線(xiàn)是近是遠(yuǎn)的條件嘍
2.有點(diǎn)的實(shí)在是分不到自己的區(qū)域,看看要是你半個(gè)身子在正確的地方,你就讓讓紅的嘛,不是每個(gè)人都能滿(mǎn)意嘛,男人多點(diǎn)承讓?zhuān)欢艹纱笫聗?。ㄎ覀兣簿筒挥贸商焐鷼饬耍?/li>

總之,我現(xiàn)在不要非零即一,我需要0-1中間的百分率aaaaaa,畢竟喜歡和不喜歡誰(shuí)也說(shuō)清楚啊,我需要你告訴我你多么喜歡我or多么不喜歡我!
交叉熵

import numpy as np
# Write a function that takes as input two lists Y, P,
# and returns the float corresponding to their cross-entropy.
def cross_entropy(Y, P):
Y = np.float_(Y)
P = np.float_(P)
return - np.sum(Y*np.log(P)+(1-Y)*np.log(1-P))
神經(jīng)網(wǎng)絡(luò)
就像神經(jīng)元一樣,兩個(gè)神經(jīng)元轉(zhuǎn)出來(lái)的內(nèi)容,再經(jīng)過(guò)總和,得到一個(gè)好的結(jié)果
下圖所示:
根據(jù)不同情況,對(duì)線(xiàn)性模型進(jìn)行中和吧。
每個(gè)線(xiàn)性的不是有輸出嗎,把他當(dāng)做是輸入,在進(jìn)行權(quán)值相乘加上偏量,

經(jīng)過(guò)s函數(shù),變成0-1之間的數(shù),然后就有了下圖的多層

-
多層級(jí)
并非所有神經(jīng)網(wǎng)絡(luò)都看起像上面的那樣。可能會(huì)復(fù)雜的多!尤其是,我們可以執(zhí)行以下操作:
向輸入、隱藏和輸出層添加更多節(jié)點(diǎn)。
添加更多層級(jí)。
我們將在后面看看這些變化的效果。
image.png

前向反饋
就是根據(jù)提供的權(quán)值和偏移量進(jìn)行輸出,然后和真實(shí)結(jié)果相比較得到誤差函數(shù)


反向傳播
現(xiàn)在,我們準(zhǔn)備好訓(xùn)練神經(jīng)網(wǎng)絡(luò)了。為此,我們將使用一種方法,叫做反向傳播。簡(jiǎn)而言之,反向傳播將包括:
- 進(jìn)行前向反饋運(yùn)算。
- 將模型的輸出與期望的輸出進(jìn)行比較。
- 計(jì)算誤差。
- 向后運(yùn)行前向反饋運(yùn)算(反向傳播),將誤差分散
到每個(gè)權(quán)重上。 - 更新權(quán)重,并獲得更好的模型。
- 繼續(xù)此流程,直到獲得很好的模型。
通俗的說(shuō),就是前兩個(gè)線(xiàn)性的合成了右面的非線(xiàn)性的,結(jié)果還是有分類(lèi)錯(cuò)的

那就是頂部模型的分類(lèi)有錯(cuò)嘍,就返回去再更改上一層的權(quán)值嘍
