[오승상 딥러닝 강의] 1. introduction
개념의 중요성
DL을 활용해 논문을 쓰고, 공모전에서 ML 을 활용해 분석을 해 상을 받기도 하고, 여러 해커톤에 나가 ML/DL 모델을 개발하였다.
하지만 깊은 개념에 대해서 공부한지 2년은 넘은 것 같다. 또 그때의 나는 이해하기 너무 어려운 부분에 대해 어물쩍 넘어간 적도 있는 것 같다.
앞으로 1달간은 ML/DL에 대한 개념을 다시 바로 잡고, 여러 대회에 참여하며 공부해보고 싶었지만 많은 일을 한번에 처리하느라 시도하시 못했던 부분들에 대해서도 차근차근 공부를 해보려 한다.
먼저, 오승상 딥러닝 강의[1]를 기준으로 공부할 예정이다.
AI
AI는 Artificial intelligence 즉, 인공지능이다.
인공 지능은 컴퓨터에서 음성 및 작성된 언어를 확인, 이해, 번역하고 데이터를 분석하며 추천하는 기능을 포함하여 다양한 고급 기능을 수행할 수 있게 해주는 일련의 기술 - Google Cloud
인공 지능은 인간과 유사한 문제해결 능력을 갖춘 기술 - AWS
인공 지능은 컴퓨터와 기계가 인간의 지능과 문제 해결 능력을 시뮬레이션할 수 있도록 하는 기술 - IBM
Google에 AI를 검색했을 때 나오는 다양한 정의들이다.
내가 이해한 바로는 AI란 컴퓨터가 사람이 하는 논리적인 사고를 따라할 수 있게 만드는 것이라 생각한다.
그래서 AI에는 단순 키워드 기반으로 질의응답하는 챗봇이나 인간이 생성한 알고리즘에 따라 논리적으로 일을 처리하는 것도 인공지능이라고 알고있다.
ML과 DL의 차이
ML은 AI의 일종이며, DL은 ML의 일종이다.
위에 설명한 단순히 키워드를 기반으로 하는 챗봇과는 달리 ML은 데이터 통해 컴퓨터가 스스로 학습하며 패턴을 파악하는 것이다.
그러므로 충분한 데이터가 주어져야하고, 컴퓨터가 효율적으로 잘 학습할 수 있도록 Preprocessing, Feature engineering 등의 작업을 사람이 해주어야한다.
ML은 지도학습, 비지도학습, 강화학습이 있다.
지도학습이란 쉽게 말해 정답이 있는 데이터를 학습하는 것이다. LandomForest 같은 경우 Feature가 있으면 Target이 있어야 학습을 할 수 있다. 즉, 정답을 알려주며 학습하는 것이다.
비지도학습이란 정답이 없는 데이터를 학습하는 것이다. Clustering 모델은 비지도학습을 할 수 있다. Feature을 주고 비슷한 그룹끼리 묶는 것이다.
강화학습은 데이터 자체가 없는 것이다. 이는 내 주요 분야가 아니므로 다음 기회에 알아볼 예정이다.
DL은 ML의 지도학습 방법 중 하나이다. 배우기로는 DL은 ML의 일종이라고 배웠다.
하지만 사람들이 쓰는 말을 보면 ML과 DL을 분리해 사용하는 것 같이 느껴진다.
오승상 딥러닝[1] 강의를 바탕으로 ML과 DL의 차이를 알아보자.
ML은 DL보다 간단하다. 즉, 데이터를 툭 던져주면 ML 모델은 간단하기에 잘 학습하지 못한다.
그러므로 ML에는 중요하다고 생각하는 Feature만 Input으로 넣어야한다. Preprocessing과 Feature Engineering 등 모델이 학습하기 전 과정에서 사람은 많은 고민을 해야한다.
DL은 ML보다 복잡하다. 즉, 데이터 수가 적으면 DL 모델은 잘 학습하지 못한다. DL 모델 안에는 수많은 파라미터들이 존재한다. 이들을 전부 최적의 파라미터로 학습하려면 꽤 많은 수의 데이터가 필요하다.
추가로 ML이 DL보다 간단하기 때문에 Network가 어떤 근거를 가지고 결과를 내었는지 확인이 가능하다.
ML 모델을 가지고 데이터를 학습할 때 Preprocessing에 공을 많이 들인다. 그러므로 주요한 변수들에 대해서 이해하고 해석할 수 있다. 또한, 특정 ML 모델에는 Feature Importance를 제공하기도 한다. 이를 보고 학습된 모델이 어떤 변수를 중심으로 학습되었는지 확인할 수 있다.
하지만 DL은 어떠한 변수가 주요했는지 해석할 수 없다. 개인적으로 DL 모델을 만들때 가장 이해하기 힘들었던 부분이다.
"쓰레기를 넣으면 쓰레기가 나온다." 라는 말을 한번 들은 적이 있다. 쓰레기 데이터를 넣으면 쓰레기 결과물을 낸다고 배웠고 나도 그렇게 생각한다.
그래서 데이터 구성에 많은 고민을 한다. ML은 그것이 가능하지만 DL은 어떠한 데이터를 넣어야 학습을 잘 할 수 있는지 알기가 매우 어렵다.
이렇게 DL 모델이 어떤 변수를 기준으로 어떻게 학습되었는지 확인하지 못한다. 이것을 블랙박스라고 하며 DL의 Layer 이름을 Hidden Layer라고 한다.
참고
[1] https://www.youtube.com/watch?v=dkm0RrmnH4s&list=PLvbUC2Zh5oJvByu9KL82bswYT2IKf0K1M