-
ML 기초 (1) | 패스트캠퍼스 챌린지 19일차딥러닝 2022. 2. 11. 23:12
드디어 수학 파트가 끝났다!
강의 커리큘럼상에는 tensorflow/keras, 그리고 PyTorch의 사용법 및 딥러닝의 역사...같은 내용들이 들어있었는데, 프레임워크 사용법은 이미 알고 있고, 딥러닝의 역사는 익히 들어 온 내용이라, 바로 딥러닝 알고리즘 파트로 넘어가기로 했다.
그렇게 우선 기계학습에 대해 다루었다. 인공지능이라 함은 지능을 가진 기계를 설계하는 것을 뜻한다. 이 떄, 이 방법으로 데이터 중심의 방법을 사용하든, 사람이 직접 규칙을 하나하나 짜 넣어 주든 상관없이 모두 넓의 의미로 인공지능이다. 강의에서는 다루지 않았지만 이러한 인공지능은 크게 두 축으로 나뉜다. 첫번째는 기호적인 축symbolic axis으로, 인간이 알고 있는 규칙을 명시적으로 넣어 주어 연산을 시키자는 주의다. Larson의 The Myth of Artificial Intelligence라는 책에서는 이를 연역적 인공지능이라 설명한다. 즉, 규칙으로부터 사례를 만드는 것이다. 그렇다면 귀납적인 인공지능도 생각해 볼 수 있을 것이다. 즉, 데이터를 중심으로 하는 인공지능을 생각할 수 있으며, 이는 정보이론과 확률에 근거하기 떄문에 확률-추측적인 축stochastic axis라 부른다(Jurafsky & Martin, 2009). 자연어처리를 대표적으로 보자면, 튜링 등의 활동으로 "생각하는 기계"를 만들기 위한 프로젝트가 시작되면서, 기호적인 축의 접근법을 많이 취했다. 현대 언어학의 중심에 있다 할 수 있는 생성통사론이 이러한 접근법의 일환으로 제안되었다.
그런데 문제는 아무리 해도 인간의 인지 활동을 그대로 규칙의 나열로 표현해 낼 수 없었다는 것이다. 이와 동시에 음성 처리에서는 이미 확률-추측에 기반한 처리방법이 이루어지고 있었고, 기호적 방법에 비해 큰 성공을 이루고 있었다. 그러면서 Markov Assumption이라는 가정 하에 자연어를 확률-추측적으로 처리하기 시작하는데, 이 가정은 간단히 설명하면 연속된 사건들의 최종 확률을 이전 몇 개의 확률만 보고 알 수 있다는 추측으로, 자연어를 n-gram 등으로 볼 수 있게 해 주었다. n-gram 언어 모델에서 최근의 BERT에 이르기까지 확률-추측적인 자연어처리는 큰 성공을 이루었는데, 이는 인공지능의 거의 모든 분야에서 비슷한 양상인 것으로 들었다. 즉, 인터넷이 등장하면서 셀 수 없는 데이터가 등장하고, 컴퓨팅 성능은 나날이 증가하면서, 이를 기반으로 한 확률-추측적인 방법이 기호적 방법을 크게 앞선 것이다.
물론 기호적인 처리가 의미가 없는 것은 아니다. 기호적인 처리를 확률-추측적인 축에 결합하려는 시도는 꾸준히 이루어지고 있고, 이는 흔히 'domain knowledge를 적용한다'라는 이름으로 이루어진다. BERT가 아무리 성능이 좋아도 상식 추론이나 선행사를 맞추는 Winograd Schema Challenge와 같은, 사람에게는 매우 쉬운 과업에서 성능이 매우 떨어진다는 점은 기호적 접근법이 인공지능에 관여할 수 있는 여지라 생각한다.
여하튼 확률-추측적인 인공지능은 기계학습으로 대변된다. 기계학습은 말 그대로 기계가 스스로 규칙을 학습하는 것이다. 이 중에 딥러닝은 신경망을 통해 이루어지는 기계학습이다. 이 단계로 오면 feature engineering이라는 것이 거의 필요가 없어진다. 즉, 쉽게 생각해서 (통계적) 기계학습은 규칙은 스스로 찾지만, 이 규칙을 잘 찾기 위해 데이터를 잘 처리해서 넣어주어야 했다. 딥러닝은 거의 날 것의 데이터를 넣어도 그 안에서 적당한 자질을 찾아 학습을 진행한다.
이러한 기계학습 방법의 간단한 예시로 선형회귀와 로지스틱회귀를 들 수 있다(딥러닝과 달리 기계학습은 알고리즘이 말도 안 되게 복잡해 질 수 있다. 딥러닝이 더 성능은 뛰어나지만, 아이러니하게도 원리는 매우 간단하다). 자세한 내용은 이미 여러번 다루었다(가령, Linear and Logistic Regression with Minibatching). 다만, 여기서는 로지스틱 회귀의 손실함수로 가능도를 가져 오는데, 이는 확률적인 개념이다. 그런데 재밌는 점은 이 가능도에 계산하기 쉽게 로그를 씌우고 음수로 바꾸는 과정을 거치면 cross entorpy와 같아진다는 점이다. 이는 아마 다음 시간에 더 자세히 다루게 될 것 같다.
기호적 인공지능과 확률-추측적 인공지능 이야기가 나오면서 옆으로 많이 나가기는 했지만, 중요한 내용은 딥러닝은 기계학습의 일환이며, 이는 즉 feature engieering도, hard coding도 필요하지 않는다는 점일 것이다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXi
'딥러닝' 카테고리의 다른 글
ML 기초 (3) | KL 발산과 교차엔트로피 | MLE | 패스트캠퍼스 챌린지 21일 (0) 2022.02.13 ML 기초 (2) | 패스트캠퍼스 챌린지 20일차 (0) 2022.02.12 딥러닝에서의 Extended Jacobian의 활용 (2) | 패스트캠퍼스 챌린지 18일차 (0) 2022.02.10 딥러닝에서의 Extended Jacobian의 활용 (1) | 패스트캠퍼스 챌린지 17일차 (0) 2022.02.09 Extended Jacobians | 패스트캠퍼스 챌린지 16일차 (0) 2022.02.08