cross-entropy函数
生活随笔
收集整理的這篇文章主要介紹了
cross-entropy函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們理想情況是讓神經網絡學習更快
假設簡單模型: 只有一個輸入,一個神經元,一個輸出
簡單模型: 輸入為1時, 輸出為0
初始 w = 0.6, b = 0.9 ? 初始預測的輸出 a = 0.82, 需要學習 學習率: 0.15
演示:?
初始: w = 2.0, b = 2.0, 初始預測輸出: 0.98, 和理想輸出0差點很遠
演示:
神經網絡的學習行為和人腦差的很多, 開始學習很慢, 后來逐漸增快.
為什么?
學習慢 => 偏導數??C/?w 和??C/?b 值小
計算偏導數:
回顧之前學習的Cost函數: 對于一個x, y 和單個神經元: 分別對w和b求偏導數:
? x = 1, y = 0
回顧sigmoid函數
當神經元輸出接近1時, 曲線很平緩,? => ?很小, 所以學習很慢
如何增快學習?
介紹cross-entropy cost 函數
假設一個稍微復雜一些的神經網絡
? ?? 定義cross-entropy函數:
為什么可以用來做cost函數? 1. ?函數值大于等于0 (驗證) 2. ?當a=y時, cost = 0
用sigmoid函數定義
推出:
?代入 上面的偏導, 得到:
學習的快慢取決于?
也就是輸出的error
好處: 錯誤大時,更新多,學得快. 錯誤小時,學習慢
對于偏向也類似:
用cross-entropy 演示:
w = 0.6, b = 0.9
w = 2.0, b = 2.0
與之前的二次cost比較 學習率=0.005, 但是不是重點, 主要是速度的變化率, 也就是曲線的形狀不同.?
以上是對于一個單個神經元的cost, 對于多層:
以上把輸出層所有的神經元的值加起來
總結:
cross-entropy cost幾乎總是比二次cost函數好
如果神經元的方程是線性的, 用二次cost函數 (不會有學習慢的問題)
假設簡單模型: 只有一個輸入,一個神經元,一個輸出
簡單模型: 輸入為1時, 輸出為0
初始 w = 0.6, b = 0.9 ? 初始預測的輸出 a = 0.82, 需要學習 學習率: 0.15
演示:?
初始: w = 2.0, b = 2.0, 初始預測輸出: 0.98, 和理想輸出0差點很遠
演示:
神經網絡的學習行為和人腦差的很多, 開始學習很慢, 后來逐漸增快.
為什么?
學習慢 => 偏導數??C/?w 和??C/?b 值小
計算偏導數:
回顧之前學習的Cost函數: 對于一個x, y 和單個神經元: 分別對w和b求偏導數:
? x = 1, y = 0
回顧sigmoid函數
當神經元輸出接近1時, 曲線很平緩,? => ?很小, 所以學習很慢
如何增快學習?
介紹cross-entropy cost 函數
假設一個稍微復雜一些的神經網絡
? ?? 定義cross-entropy函數:
為什么可以用來做cost函數? 1. ?函數值大于等于0 (驗證) 2. ?當a=y時, cost = 0
用sigmoid函數定義
推出:
?代入 上面的偏導, 得到:
學習的快慢取決于?
也就是輸出的error
好處: 錯誤大時,更新多,學得快. 錯誤小時,學習慢
對于偏向也類似:
用cross-entropy 演示:
w = 0.6, b = 0.9
w = 2.0, b = 2.0
與之前的二次cost比較 學習率=0.005, 但是不是重點, 主要是速度的變化率, 也就是曲線的形狀不同.?
以上是對于一個單個神經元的cost, 對于多層:
以上把輸出層所有的神經元的值加起來
總結:
cross-entropy cost幾乎總是比二次cost函數好
如果神經元的方程是線性的, 用二次cost函數 (不會有學習慢的問題)
總結
以上是生活随笔為你收集整理的cross-entropy函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sdut 青蛙过河
- 下一篇: 自动化部署脚本开启所有zookpeer等