python 경사도 하강 법의 간단 한 예제
1.가장 간단 한 상황 에서 견본 은 하나의 변수,즉 간단 한(x,y)만 있다.다 변 수 는 체중 이나 키 를 사용 하여 남녀 를 판단 할 수 있다(이것 은 가설 이 고 엄밀 하지 않다).변 수 는 두 가지 가 있 는데 하 나 는 체중 이 고 하 나 는 키 이 며(x1,x2,y),즉 하나의 목표 치 는 두 가지 속성 이 있다.
2.단일 변수의 경우 가장 간단 한 것 은 함수 hk(x)=k*x 라 는 직선(주의:여기 k 도 변화 하 는 것 입 니 다.우리 의 목적 은 가장 좋 은 것 을 구 하 는 것 입 니 다. k)。깊이 있 는 학습 에서 우 리 는 함 수 를 모른다.즉,상술 한 k 를 모른다. 단일 변수의 상황 을 토론 합 니 다.
k 를 모 르 는 상황 에서 우 리 는 견본(x1,y1),(x2,y2),(xn,yn)을 통 해 k 를 얻 습 니 다.가 져 온 k 의 좋 고 나 쁨 은 손실 함수 로 평가 합 니 다.
손실 함수:바로 당신 이 예측 한 값 과 진실 치 의 차이 크기(예 를 들 어 하나의 견본(1,1)그의 진실 치 는 1 이 고 당신 이 예측 한 것 은 0.5 이면 차이 가 있 습 니 다. 비교적 크 고 예측 치가 0.9999 라면 차이 가 적다).
손실 함 수 는 다음 과 같이 정의 합 니 다.
목적 은 손실 함수 의 가장 작은 변수 k(주의 와 변수 x 구분)를 구 하 는 것 이다.손실 함 수 를 k 에 대한 가이드(다 변수 시 편향 도 를 구 하 는 경사도,여기 서 단일 변수 가 가이드,사실은 경사도 가 아 닙 니 다)를 구 하 는 것 이다.편향 도 는 다음 과 같다.
그리고 교체,교체 할 때 걸음 이 긴 알파 가 있 습 니 다.
3.예
만약 에 우리 가 견본(1,1),(2,2),(3,3)을 얻 으 면 사실은 이 세 개의 견본 에서 함 수 를 y=1*x 로 얻 을 수 있다.이때 손실 함 수 는 0 이 고 기 계 는 모 르 기 때문에 우 리 는 훈련 이 필요 하 다.
다음은 python 코드 입 니 다.
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-5, 5, 0.001)
y=(((x-1)*(x-1)+(x*2-2)*(x*2-2)+(x*3-3)*(x*3-3))*1/6.0)
plt.plot(x,y)
#plt.show() #
def sum(x):
return ((x*1-1)*1+(x*2-2)*2+(x*3-3)*3)
def fun(x):
return ((1/3.0)*sum(x))
old = 0
new = 5
step = 0.01
pre = 0.00000001
def src_fun(x):
print(((x-1)*(x-1)+(x*2-2)*(x*2-2)+(x*3-3)*(x*3-3))*1/6.0)
while abs(new-old)>pre:
old = new
#src_fun(old) #
new = new - step*fun(old)
print(new)
print(src_fun(new))
아래 그림 은 손실 함수 의 그림 이 고 손실 함수 의 변 수 는 k 입 니 다.아래 그림 의 가로 좌 표 는 k 의 서로 다른 수치 이 고 세로 축 은 대응 하 는 손실 크기 이다.아래 그림 에서 대체적으로 알 수 있 듯 이 k 가 1 일 때 손실 함수 값 은 0 이다.주의:여기 서 얻 은 가장 좋 은 값 k=1 은 우리 가 이미 견본 을 가지 고 있 는 상황 에서 얻 은 것 입 니 다.견본 이 다 르 면 k 값 은 자연히 다 릅 니 다.다음은 print(new)와 print(srcfun(new)의 출력 결과
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.