더북(TheBook)

이는 반복문을 통해서 파이썬으로 쉽게 구현할 수 있다. 이 부분이 익숙하지 않다면 앞에서 본 newton 함수를 사용하면 된다.

>>> cur_x = 3    # x = 3에서 계산 시작
>>> rate = 0.01  # 학습률
>>> precision = 0.000001       # 반복 계산에 사용할 기준(tolerance rate)
>>> previous_step_size = 1
>>> max_iters = 10000          # 최대 반복 횟수 10000
>>> iters = 0   # 반복 횟수를 기록하기 위해 생성, 0부터 시작
>>> df = lambda x: 2*(x + 5)   # 현재 예제에서 함수의 기울기

>>> while (previous_step_size > precision) and (iters < max_iters):
>>>     prev_x = cur_x     # 현재 x를 이전 단계 x로 저장
>>>     cur_x = cur_x - rate * df(prev_x)         # 경사 하강법 계산
>>>     previous_step_size = abs(cur_x - prev_x)  # x값의 변화
>>>     iters = iters+1                           # 반복 카운터 증가

>>> print("국소 최솟값은?", cur_x)
국소 최솟값은? -4.9999518490318176
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.