[Week 1] 심화 과제

혜 콩·2022년 9월 23일
0
post-thumbnail

🚩 심화 과제 #1


SymPy library를 사용하여 간단한 이차함수의 최소값을 gradient descent 방법으로 찾는 문제

🍭 배운 점

  1. 처음에 line 18_ , fun = func(val) 을 설정하고 실행했더니,

    TypeError가 떴다.

    Problem
    문제에서 fun = func 이란 기본 설정이 되어있었는데, fun이라는 변수는 곧 func() 함수다.
    필자는 line 18에서 fun에 func()의 리턴값인 수식을 할당했으므로 fun을 함수가 아닌 수식이 되어버렸다.

    수식에 val을 집어넣으면 결과값 (float) 만 나오므로 index가 존재하지 않는다.
    그래서 TypeError가 발생!

Solution
1. line 18을 그대로 남겨두고 (fun을 수식으로써 이용) print문을 fun(val)이 아닌 func(val) 이라 수정하면 된다.
2. line 18을 지우고, line 11을 살려 fun을 함수로써 계속 이용한다.
3. 따로 변수를 지정해 수식을 하나 세워두고 결과적으론 func 함수는 1번만 호출한다 (효율적으로..)


  1. print(grad)를 통해 미분값을 확인해보니, 마지막에 앞자리가 9로 변한 것을 확인할 수 있다.
    코드 상으로 while문을 빠져나오기 직전, grad 값이 변하고 출력이 되고나서 while문을 빠져나오므로 epsilon 보다 작아진 grad (9.@@@@e-6)이 출력된다.

처음에는... 앞자리만 보고 숫자가 커진 줄 알았다. 하지만 뒤에가 e-6승이라는 것 ㅎ

profile
배우고 싶은게 많은 개발자📚

0개의 댓글