matplotlib 경사도 하강 구 해 과정 그리 기

기계 학습 과정 에서 시각 화가 자주 필요 하고 모델 과 매개 변수 에 대한 이 해 를 강화 하 는 데 도움 이 된다.
다음은 경사도 하강 과정 에 대해 동 도 를 보 여 주 며 서로 다른 학습 율 을 수정 하고 효 과 를 볼 수 있 습 니 다.

import numpy as np
import matplotlib.pyplot as plt
from IPython import display

X = 2*np.random.rand(100,1)
y = 4+3*X+np.random.randn(100,1) # randn    
X_b = np.c_[np.ones((100,1)),X] # c_    ,    

eta = 0.1 #    
n_iter = 1000 #     
m = 100 #      
theta = np.random.randn(2,1) #      

plt.figure(figsize=(8,6))
mngr = plt.get_current_fig_manager() #     figure manager
mngr.window.wm_geometry("+520+520") #              ,            
#       ,  screentogif    ,         
plt.ion()#       
plt.rcParams["font.sans-serif"] = "SimHei"#       

for iter in range(n_iter):
  plt.cla() #      

  gradients = 2/m*X_b.T.dot(X_b.dot(theta)-y)
  theta = theta - eta*gradients
  X_new = np.array([[0],[2]])
  X_new_b = np.c_[np.ones((2,1)),X_new]
  y_pred = X_new_b.dot(theta)

  plt.axis([0,2,0,15])
  plt.plot(X,y,"b.")
  plt.plot(X_new,y_pred,"r-")
  plt.title("   :{:.2f}".format(eta))
  plt.pause(0.3) #     
  display.clear_output(wait=True)#     


plt.ioff()#         
plt.show()

학습 율:0.1,비교적 적합

학 습 률:0.02,수렴 이 느 려 졌 다.

학습 율:0.45,최 적 매개 변수 부근 에서 진동

학습 율:0.5,수렴 하지 않 음
matplotlib 의 경사도 하강 구 해 를 그 리 는 과정 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 matplotlib 경사도 하강 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기