AI & BigData/모두를 위한 딥러닝(정리)

머신러닝(ML) #1_ 모두를 위한 딥러닝

Tigercow.Door 2018. 1. 26. 14:44


안녕하세요. 문범우입니다.

작년 초~중반기 부터 인공지능, 머신러닝에 대해 많은 관심을 가지고 이것저것 알아보며 최근에는 딥러닝과 관련된 서적하나를 구매하여 공부중에 있습니다.

그리고 보다 깊은 학습을 위해 추가적으로 온라인에서 배포되고 있는 무료 강의를 찾게 되었는데요, 인공지능, 머신러닝을 공부하시는 분들은 꽤나 잘 아시더군요.


바로, 홍콩대학교에서 연구중이신 김성훈교수님의 강의입니다.

머신러닝과 관련되서는 앤드류 응 교수님의 강의가 제일 유명하지만 아무래도 영어강의이다 보니 깊은 이해가 부족할 수도 있겠다 싶어서 먼저 한글강의를 찾게 되었습니다.

앞으로 머신러닝에 대한 포스팅은 김성훈 교수님의 강의를 바탕으로 진행되니 관심 있으신 분들은 직접 강의를 들으셔도 좋을 것 같습니다.

김성훈 교수님의 '모두를 위한 딥러닝' 강의는 인프런에서 딥러닝 또는 머신러닝 키워드로 검색하시면 찾아보실 수 있습니다.



1. 머신러닝(Machine Learning)은 무엇일까?


먼저 머신러닝에서 사용되는 몇가지 용어들에 대해서 알아보겠습니다.

머신러닝(Machine Learning)은 일종의 소프트웨어입니다.


사용자가 사용하는 앱을 보면 사용자의 입력에 대한 응답을 나타내는데 이러한 것을 explicit programming이라고 합니다. 그런데 이런 explicit한 프로그램을 정확하게 만들어 내는 것은 어려운 경우가 있습니다. 예를 들어 스팸 메일 처리나 자율주행자동차는 단순한 logic을 가지고 프로그램을 개발하기엔 너무나 수많은 logic이 존재하여 불가능하다고 볼 수 있습니다.


그리고 Arthur Samuel에게서 Machine learning에 대한 개념이 나오기 시작했습니다.

이때 Machine learning이란, 개발자가 어떤 logic자체를 모두 만들어 내는 것이 아니라 프로그램이 데이터를 기반으로 '학습'하여 스스로 logic을 구현하게끔 한다는 것입니다.



2. 학습(Learning)?


학습(Learning)이란 말 그대로 배우는 것을 의미합니다. 프로그램이 스스로 배울 수 있도록 해서 스스로 더 발전되도록 하는 것이죠. 여기서 나오는 '학습'에 대해서는 크게 Supervised learning과 Unsupervised Learning이 존재합니다.


먼저, Supervised Learning이란 어떤 데이터 집합, 즉 training set이 존재하는데 이것을 바탕으로 프로그램이 학습을 하는 것입니다. training set에 있는 각각의 데이터는 레이블이 존재함으로써 프로그램이 학습을 할 수 있게 됩니다. 즉 우리가 최근에 볼 수 있는, 고양이나 강아지 등을 구별하는 프로그램이 일반적으로 Supervised learning이라는 학습이 진행됩니다. 다시말해 A 이미지에는 고양이라는 레이블이 붙어있고 이러한 이미지가 여러개 존재합니다. 또한 B라는 이미지에는 강아지라는 레이블이 붙어있고 또한 여러개 존재합니다. 프로그램은 레이블이 달려있는 다수의 이미지를 바탕으로 학습됨으로써 고양이와 강아지를 구별할 수 있게 됩니다.


그런데 어떤 학습에 대해서는 우리가 하나하나 레이블을 줄 수 없는 경우가 있습니다.

즉, 데이터를 보고 레이블 없이 프로그램이 스스로 학습해야 하는 것입니다. 그리고 이러한 것을 우리는 Unsupervised Learing이라고 말합니다.


우리는 이중에서 Supervised learning에 대해서 주로 다루게 될 것입니다.



3. 학습 데이터(Training data set) 란?


그럼 여기서 Training data set은 정확이 어떤 것일까요?

어떤 개체 a, b, c가 존재할 때 각 개체에 대한 레이블 Y가 존재하고 a, b, c에 대해서 각각의 레이블은 3, 2, 1 입니다.

그리고 개체의 특징 X가 존재할 때 a, b, c가 각각 [ㄱ,ㄴ,ㄷ], [1, 2, 3], [1, ㅂ, ㅁ]와 같은 특징 X를 가집니다.

그리고 이러한 a, b, c를 데이터로 가지고 있는 머신러닝 기반 프로그램 ML에게 특징 X = [ㄱ,ㄴ,ㄷ] 에 대해서 요청을 보내면 해당 프로그램 ML은 레이블 Y = 3 을 응답할 것 입니다.

이때 개체 a, b, c 들을 우리는 training data set 이라고 합니다..



4. 그래서, 머신러닝을 통해 무엇을 하는데?


Machine learning에서 다루게 되는 많은 문제로는, 이미지 인식(Image labeling), Email spam filter, Predicting exam score 등이 있습니다.


위에서 언급하였듯이 머신러닝에서 기초가 되는 학습, learning은 supervised learning과 unsupervised learning으로 구별이 된다고 하였습니다.

그리고 Supervised learning 또한 그 결과에 따라서 종류가 구별됩니다.

먼저, 어떤 시험의 성적에 대한 예측, 즉 0점~100점의 점수 예측을 진행하는 등의 문제는 regression 이라고 하며

단순히 어떤 시험에 대해 점수가 아니고 패스/논패스를 선택하는 등의 문제는 binary classification 이라고 합니다.

그리고 A, B, C, D 등의 학점을 부여하게 되는 등의 문제는 multi-label classification 이라고 합니다.


각각의 문제들의 구조적 특징 등을 통해 머신러닝 프로그램의 모델링이 regression model 또는 classification model 등으로 구별되는 것입니다.




오늘은 간단히 머신러닝에 대한 개론을 진행하였고

다음 포스팅에서는 Linear Regression 의 개념에 대해서 보다 자세히 알아보도록 하겠습니다.

728x90