TensotFlow 應(yīng)用實(shí)例:07-優(yōu)化器 Optimizer 介紹
本文是我在學(xué)習(xí)TensotFlow 的時(shí)候所記錄的筆記孽水,共享出來希望能夠幫助一些需要的人狡相。
本文其實(shí)主要是在介紹什么是優(yōu)化器以及常用的優(yōu)化器草慧,由于時(shí)間有限奏瞬,文本就不在處理,直接貼在代碼段當(dāng)中宗收,希望理解挂疆。
import tensorflow as tf
# optimizer
# 優(yōu)化器 Optimizer 加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練 (深度學(xué)習(xí)) Speed up neural network training process (deep learning)
# SGD Stochastic Gradient Descent
# Stochastic adj. [數(shù)] 隨機(jī)的改览;猜測(cè)的
# 隨機(jī)梯度下降
# Momentum, 慣性原則:在走的路上動(dòng)手腳,將平地?fù)Q成一個(gè)下坡缤言,就可以避免走很多彎路
# m = b1 * m - Learning rate * dx
# W += m
# AdaGrad, 錯(cuò)誤方向的阻力:這種方式是在學(xué)習(xí)率上動(dòng)動(dòng)手腳宝当,給他一雙特殊的鞋子,使得他在走彎路的時(shí)候會(huì)不舒服
# 這樣他就會(huì)走你想讓他走的路了
# v += dx^2
# W += -Learning rate * dx / √V (v的開方)
# RMSProp
# 結(jié)合以上兩種方式, 但是并沒有把Momentum完全合并胆萧,還缺少了Momentum的 【- Learning rate * dx】
# v = b1 * v + (1 - b1) * dx^2
# W += -Learning rate * dx / √V (v的開方)
# Adam 是補(bǔ)上RMSProp中缺少的Momentum的 【- Learning rate * dx】
# m = b1 * m - Learning rate * dx ---> Momentum
# W += -Learning rate * dx / √V (v的開方) ---> AdaGrad
# 實(shí)驗(yàn)表明庆揩,大多數(shù)時(shí)候使用Adam都能又快又好的達(dá)到目標(biāo)
# AlphaGo 使用的是 RMSPropOptimizer
# 機(jī)器學(xué)習(xí)也就是從一個(gè)cost比較大的地方走到一個(gè)cost最小的地方
# 初學(xué)者的使用GradientDescent基本上級(jí)就可以了
本文代碼GitHub地址 tensorflow_learning_notes