시작하기무료로 시작하기

기울기를 활용한 최적화

최소화하려는 손실 함수 $y = x^{2}$가 주어져 있어요. 서로 다른 x 값에서 GradientTape() 연산으로 기울기(경사)를 구해 이를 최소화할 수 있습니다. 기울기가 양수이면 x를 줄이면 손실이 감소하고, 기울기가 음수이면 x를 늘리면 손실이 감소해요. 이것이 경사 하강법의 원리입니다.

The image shows a plot of y equals x squared. It also shows the gradient at x equals -1, x equals 0, and x equals 1.

실전에서는 고수준 tensorflow 연산을 사용해 경사 하강법을 자동으로 수행합니다. 하지만 이 연습에서는 x 값이 -1, 1, 0일 때 기울기를 직접 계산해 볼 거예요. 사용할 수 있는 연산은 GradientTape(), multiply(), Variable()입니다.

이 연습은 강의의 일부입니다

Python으로 시작하는 TensorFlow

강의 보기

연습 안내

  • 초기값 x0x를 변수로 정의하세요.
  • 손실 함수 yxx를 곱한 값으로 설정하세요. 연산자 오버로딩은 사용하지 마세요.
  • yx에 대해 미분한 기울기를 반환하도록 함수를 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

def compute_gradient(x0):
  	# Define x as a variable with an initial value of x0
	x = ____(x0)
	with GradientTape() as tape:
		tape.watch(x)
        # Define y using the multiply operation
		y = ____
    # Return the gradient of y with respect to x
	return tape.gradient(____, ____).numpy()

# Compute and print gradients at x = -1, 1, and 0
print(compute_gradient(-1.0))
print(compute_gradient(1.0))
print(compute_gradient(0.0))
코드 편집 및 실행