Page 130 - 인공지능 수학 교과서
P. 130

공학적 도구

              탐               경사하강법을 컴퓨터로 구현하기
                구   활 동



                   공학적 도구를 이용하여 경사하강법을 활용한 최적화의 과정을 진행하는 프로그램을 실행해 보자.


               준비하기              프로그램 누리집에 접속하기
                                      프로그램 누리집에 접속하면 코드가 탑재된 프로그램 화면이 열린다.

                                         https://drive.google.com/file/d/18tFvSU7GvBvApzKsryoajv0GrY2tirDH/view?usp=sharing



               따라하기              경사하강법에 대한 프로그램 코드 실행하기
                                 1  다음 코드는 경사하강법을 이용하여 손실함수 y=(x-4)^2+7이 최소가 되도록 하는 매
                                     개변수 x를 찾는 파이선 코드이다.
                                     ㉠ 최초의 매개변수의 값을 10으로, ㉡ 학습률을 0.01로 설정한다.
                                     ㉢ 매개변수 갱신의 횟수는 1, 10, 50, 100, 1,000, 2,000으로 각각 이루어진 소스를 실행

                                     한다.

                    import matplotlib.pyplot as plt              def main():
                    from matplotlib.markers import TICKDOWN               minimum = []
                    def simple_gd(max_iter):                              iters = [1, 10, 50, 100, 1000, 2000] ㉢
                             x =   ㉠                                      for i in iters:
                             learning_rate =   ㉡                                   value = simple_gd(i)
                             precision = 0.00001                                   minimum.append(value)
                             loss_fn = lambda x:                        xpos = [i for i in range(len(iters))]
                                                                        plt.xticks(xpos, iters)
                                                                        plt.plot(xpos, minimum, marker = 'o')


                                                            경사하강법 코드의 일부


                                 2  코드를 실행하면 매개변수 갱신의 횟수를 x축, 최적화를 통해 결정된 매개변수의 값을 y
                                     축으로 하는 점들을 지나는 꺾은선 그래프가 화면에 출력된다.


                                                 매개변수  100
                                                   80
                                                  값
                                                   60

                                                   40
                                                   20

                                                    0
                                                       1   10   50  100  500 1,000 1,500 2,000
                                                                                   갱신 횟수

                                                                  학습률 0.01일 때




            128    Ⅳ.  최적화
   125   126   127   128   129   130   131   132   133   134   135