교재링크(광고 아님): freelec.co.kr/book/인공지능을-위한-수학/

 

공부에 대한 복기가 아닌 마무리를 위해 포스팅을 한다. 그냥 조용히 흐지부지 할 수도 있지만, 그래도 책거리 느낌은 나야하지 않겠는가.

마무리하는 이유는 다른 포스트에 요약해 두었다.

 

'처음 배우는 딥러닝 수학'으로 경사하강법/오차역전파법의 원리 익히기

직전까지 아래 교재로 공부를 하고 있었다... 그 새로운 문제라는 건 바로 '기계학습을 위한 (응용)수학'이 따로 존재한다는 것이며, 위 교재의 6장부터는 그에 대한 수학적 풀이 없이 사이킷런(scikit-learn)이라는 파이썬 도구를 이용한 예제로 대체하였다는 것이다. 이래서야...... 요아래 책과 차이점이 없어져 버렸다.

swjman.tistory.com

 

(왜 무의미한지)좀 더 자세히 이유를 적어 보자면, 결정적으로 이 섹션(6장 8절)의 내용 때문이다.

이 섹션은 문제의 해결을 위해 로지스틱 회귀(logistic regression)를 이용한다. 논리(로지스틱) 회귀는 true/false, black/white와 같이 이분법적 판별에 유용하다고 하는데 여기까지는 순탄했지만...

이 모델식을 최적화하기 위한 함수로 MSE(mean squared error) 또는 cross-entropy loss를 이용하는데, 문제는 여기에 들어갈 서브함수가 시그모이드 함수(sigmoid function)다. 무엇이 문제냐면, 이렇게 되면 앞 챕터에서처럼 LEM(least squares method)의 연립방정식 해를 구하듯이 (상대적으로)간단히 파라미터(가중치)를 도출할 수 없다는 것이다.

 

그렇다면 무엇인가 방법이 있을텐데, 이 교재는 그에 대한 설명을 완벽하게 생략하였다.

 

생략된 설명은 github 예제 사이트에 scikit-learn을 이용한 건조한 코드로 대체되어 있다. 당연히, 도구의 인터페이스를 이용하는 것 뿐이니 어떤 원리로 돌아가는지 알길이 없다. 아래 코드는 위에 대한 풀이를 발췌한 것이다.

LogisticRegression(C=1, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='warn',
          n_jobs=None, penalty='l2', random_state=None, solver='warn',
          tol=0.0001, verbose=0, warm_start=False)

 

나는 도구 사용법이나 익히자고 공부하는 게 아니다. 작동 원리를 공부하고자 하는 것이다. 즉, 이 정도 입문지식은 상당 수준 이해하고 직접 구현까지 할 수 있어야 한다고 생각한다.

하지만, 이 교재는 이를 충족시켜주지 못한채로 끝맺어가고 있다.

위 모델식을 해결하기 위해 경사하강법(gradient descent)이나 오차역전파법(backpropagation)이 이용된다는 것도 인터넷을 통해 간신히 알게 되었다. (사실 내가 정확히 알아냈는지도 모르겠다.)

 

그래서, 심화학습이 될만한 교재를 새로 선정하여 공부하려 한다. 훗날 기회가 된다면 충분한 지식을 함양하여 이 챕터와 다음 챕터의 예제를 내 손으로 직접 풀 수 있는 날을 기약하면서 이만 마친다. -끝-

 

Posted by JMAN