[Elice] 문과생도 할 수 있다! 머신러닝(Machine Learning)
👨🏻‍🏫IT 활동/Elice Supporters

[Elice] 문과생도 할 수 있다! 머신러닝(Machine Learning)

728x90
반응형

머신러닝(Machine Learning)의 출현

빅데이터가 핫한 키워드로 떠오르면서, "인공지능(AI : Artificial Inteligence)"이라는 단어도 동시에 등장하고 관심받게 되었다. 그렇게 뉴스에 자주 나오는 인공지능은 기계에게 학습을 시키는 "머신러닝(Machine Learning)" 에서 출발한다. 말로만 들었을 때는 인문계열에 해당하는 학문이 아닌 것 처럼 보인다. 하지만 그렇다고 무조건 이공계열 학생들에게 공부하기 유리한 것 만은 아니다. 도메인 지식에서는 오히려 문과생이 앞서는 부분이 있고, 의지와 열정만 있다면 누구나 배울 수 있는 학문이다! 문과생 출신으로서 문과생들을 위한 머신러닝 개념, 필요한 배경지식, 실현 방법을 차례차례 포스팅 할 것이다

머신러닝의 사전적 의미로는 "컴퓨터를 인간처럼 학습시켜 스스로 규칙을 형성할 수 있게 만드는 것" 이다. 독감에 걸린 사람들은 대부분 발열증상과, 오한, 구토증상을 보인다라는 사실에 근거하여 독감을 진단하는 것을 간단한 예시로 볼 수 있다.

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E"

CMU의 교수 Tom M. Mitchell은 위와 같이 머신러닝을 정의했다. 어떠한 작업 T에 대해 꾸준한 경험 E를 통하여 그 T에 대한 성능 P를 높이는 것을 머신러닝이라고 규정했다. 이 요소들 중에서 데이터에 해당하는 E가 중요하다. 데이터의 양도 중요하지만, 좋은 품질의 데이터를 많이 가지고 있다는 것은 높은 성능을 도출하는데에 중요한 역할을 한다.

이러한 머신러닝은 학습 종류에 따라 지도학습(Supervised Learning) / 비지도학습(Unsupervised Learning) / 강화학습(Reinforcement Learning) 으로 크게 3가지로 분류할 수 있다.

머신러닝(Machine Learning)의 분류







그리고 세부적으로는 다음과 같이 분류할 수 있다.





지도학습

먼저 지도학습이란, 말 그대로 컴퓨터에게 답을 미리 알려주고 이를 통해 컴퓨터를 학습시키는 것이다. 구체적으로는 각각의 입력값(A)에 대한 결과값(B)를 달아놓은 데이터를 주는 것이다. 이 데이터는 학습데이터(Training Data)로서의 역할을 하고, 새로운 Feature값을 갖고 있는 Test Data를 넣으면 예측을 하게되는 것이다. 지도학습은 분류(Classification) / 회귀(Regression)로 크게 2가지로 분류할 수 있다.

먼저 분류에 속해있는 알고리즘으로는 다음과 같다.

분류

● 로지스틱 회귀법(Logistic Regression) : 로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립변수간의 관계를 구체적인 함수로 나타내어 예측 모델에 활용하는 것이다. 하지만 선형 회귀 분석과 다른 점은 종속변수에 연속형 데이터가 쓰이지 않고, 범주형 데이터가 쓰인다.(Ex. 0 = 일반 메일, 1 = 스팸메일 )

● KNN(K-최근접 이웃 알고리즘) : 기존 학습데이터의 특징 벡터 A에 가장 가까운 점 k개를 뽑아 이들의 레이블을 사용하는 분류기이다. 공간의 밀도에 따라 적응할 수 있으므로 RBF(Radial Basis Function) 커널을 사용하는 SVM보다는 강력하다. 주로 분류나 회귀에 사용된다


● SVM(Support Vector Machine) : KNN과 마찬가지로 주로 분류와 회귀 분석을 위해 사용된다. 주어진 데이터 집합을 통해 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다. 이러한 분류 모델을 데이터 공간에서 경계로 표현되는데, SVM은 그 중 가장 큰 폭을 가진 경계를 찾는 알고리즘이다. 아래의 Gap(=margin)을 최대화하는 분류 경계면을 찾는 기법이다.



● 의사결정나무(Decision Tree) : 의사 결정 분석에서 결정 트리는 시각적이고 명시적인 방법으로 의사 결정 과정과 결정된 의사를 보여주는데 사용된다. 주로 하향식 기법이 사용된다. 의사결정나무 또한 분류와 회귀 두 가지 역할을 할 수 있다. 이 두 가지를 아울러 부를 때 CART(Classification And Regression Tree)라고 부른다. 의사결정나무 안에서도 랜덤 포레스트, 부스트 등 여러가지 방법이 존재한다.




회귀

다음으로는 회귀에 속해 있는 알고리즘이다.

● 회귀(Regression) : 가장 유명하고 통계학의 대표 예측법이라고 볼 수 있다. 데이터들을 쭉 나열해 놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 즉, 빨간 점들과 파란 선 사이의 오차(잔차)를 최소화로 하는 직선을 그리겠다는 것이다. 최소자승법을 통해 도출이 되는 직선이다.



비지도학습

그리고 사람 없이 컴퓨터가 스스로 데이터를 파악하고 규칙을 찾는, 즉 Y값 없이 X값만으로 학습을 하는 것이 바로 "비지도 학습"이다. 대부분의 데이터들을 다 레이블이 되어 있지 않은 상태로 있기 때문에 비지도 학습이 매우 중요하다. 패턴인식이라고도 불린다. 예를 들어 고양이 사진을 컴퓨터에게 보여주되 고양이라는 것을 알려주지 않고 이 여러 고양이 사진을 통해 학습하여 "이 모두는 서로 같은 종"이라는 사실을 추론하는 것이다. 그리고 이를 통해 새로운 사진이 들어오면 고양이인지 아닌지 판단할 수 있다. 비지도 학습에는 대표적으로 클러스터링이 있다.

●군집분석(Clustering) : 머신러닝, 데이터마이닝, 패턴인식, 영상분석, 생물정보학 등등 가장 많은 분야에서 사용되는 데이터 분석 기술이다. 비슷한 특성을 가진 데이터를 한 그룹으로. 다른 특성을 가진 개체는 다른 그룹으로 묶자는 것이다. 하지만 다른 머신러닝 알고리즘처럼 Accuracy를 측정할 수는 없다. 대신 군집타당성 지표를 통해 얼마나 유용한지 측정을 한다.


인공신경망

그리고 지도학습 / 비지도학습 모두에 해당하는 인공 신경망이 요즘 가장 핫 한 알고리즘 방법이다.

●인공신경망(ANN : Artificial Neural Network) : 인간의 뉴런을 본떠 만든 머신러닝의 모델이다. 인간의 두뇌와 비슷하게 "입력층(Input layer)", "은닉층(Hidden layer)", "출력층(Output layer)"으로 구성되어 있다.

회귀 분석/지도 학습의 방법론에 입각해서, '정답'들과의 오차를 최소화하는 가중치와 역치를 찾는 최적화 문제를 풀게 된다. 여기서 역치는 가중치 벡터와 입력 벡터에 적절히 '묻어'버린다음 최종적으로 올바른 가중치를 찾는 것에 초점을 맞추며, 이 최적화 문제를 풀기 위해 경사/기울기 하강법을 사용한다.

이러한 인공신경망을 분석 복적에 따라 예측을 위한 "지도학습" 인공신경망, 패턴인식을 위한 "비지도 학습" 인공신경망으로 구분된다. 인공신경망이 얼마나 깊은지에 따라 우리가 잘 아는 심층학습(Deep Learning)이라고 한다.( 히든층의 개수가 2개 이상인 경우 )



그리고 딥러닝에 대한 분류를 헷갈려하는 사람들이 많은데 그 분류는 아래와 같다. 머신러닝이 가장 큰 범주에 속해 있는 것이다.


강화학습

마지막으로 "강화학습(Reinforcement Learning)"의 사전적 의미는 다음과 같다. "행동심리학에서 영감을 받았으며, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다". 경제학에서 말하는 제한된 합리성 하에 평형이 일어날 수 있는 가를 설명하는데에 쓰이기도 한다. 그리고 강화 학습은 또한 입출력 쌍으로 이루어진 훈련 집합이 제시되지 않으며, 잘못된 행동에 대해서도 명시적으로 정정이 일어나지 않는다는 점에서 일반적인 지도학습과 다르다. 그리고 지도/비지도는 정적인 상태에서 학습을 진행했다면, 강화학습은 에이전트(Agent)가 주어진 환경(Environment)에 대해 어떤 행동(Action)을 취하고 어떤 보상(Reward)을 얻으면서 동적으로 학습을 진행한다.

문과생을 위한 머신러닝 - /*elice*/

이렇게 다양한 학습방법에 따른 알고리즘들은 여러 학문에 적용가능하다. 암환자들의 특성들을 분석하여 새로운환자들의 암 발병가능성을 예측해 볼 수 있고, 집값 예측, 패턴인식을 통한 영상 사진 분류등등 어떠한 학문에 국한되는 것이 아니라 모든 분야에 적용가능한 기술이다. 방금 말했던 사례들을 보고 이것이 지도학습을 통한 것인지, 비지도학습을 통한 것인지는 위 글을 정독 했다면! 알 수 있을 것이다.

그렇기에 뉴스에서 계속적으로 말하는 "4차 산업혁명"을 듣고 가장 중요한 기술이 "머신러닝" 나아가서는 "데이터 사이언스"라는 것을 알아차려야 한다. 정부가, 기업들이 원하는 그 데이터 사이언티스트는 어떠한 역량을 갖추어야 되는 것인지 궁금해 하는 사람이 많다. 보통은 다음과 같은 벤다이어그램을 통해 설명한다. 이는 엘리스에서 진행하고 있는 "문과생을 위한 머신러닝" 수업에서 구체적으로 설명해주고 있다.




문과생들을 위한 머신러닝에 대한 기초적인 지식과 어떠한 태도를 가져야하는지에 대해 간단한 실습과 사례를 통해 배우게 된다. 굳이 문과생이 아니어도 머신러닝 입문자라면 기초적인 틀을 이해하는데 도움이 될 것 같다.



위의 사진을 보면 데이터 사이언티스트가 왜 유니콘이라고 불리는 지를 알 수 있을 것이다. 그만큼 요구하는 역량이 많고 스스로 갖춰야할 지식들이 많기 때문이다. 보통은 세 가지 분야에 교집합이 아니라 두 가지의 교집합 영역에 속하는 사람들이 많다. 하지만 이러한 사람들이 데이터 사이언티스트라고 하는 것은 말이 되지 않는 소리이다. 프로그래밍 스킬과 수학&통계학 지식이 있는데 도메인 전문성이 없다. 그러면 그 분야에서 원하는 인사이트나 솔루션을 제공해 줄 수가 없다. 그리고 프로그래밍 스킬과 도메인에 대한 전문성은 있는데 수학&통계학 지식이 없다. 이는 자신이 구현해낸 알고리즘의 과정을 이해하지 못하고 진행했다고 봐도 무방하다. 그만큼 데이터사이언티스가 되기 위해서는 각 분야에서 전문적인 지식을 필요로 한다.



수학&통계학적 지식이 중요하다

하지만 여기서 문과생이 집중해야 할 분야는 어디일까 생각이 드는 사람들이 많을 것이다. 학문적으로 정해진 순서는 없지만 어느정도의 커리큘럼은 있는 것 같다. 만약 나는 눈에 보이는 결과를 보고 성취감이 생기고 이를 통해 동기부여가 된다! 이런 사람들은 프로그래밍을 통해 먼저 시작하겠지만, 코드 구현도중에 알고리즘에 대한 의구심이 들 것 이다. 이 알고리즘은 어떤 방식을 통해 결과를 도출해내는지, 내가 지금 치고 있는 코드는 무엇을위한 것 인지에 대한 생각이 마구마구 떠오를 것이다. 바로 그 때가, 수학&통계학적 지식의 보충을 필요로 하는 때이다. 그렇다면 도중에 필요성을 느껴 공부하는 것도 괜찮지만, 처음부터 수학&통계학적 지식을 갖고 시작한다면 이해하기가 더 수월할 것이다.

따라서 문과생들이 머신러닝에 입문할 때 수학&통계학적 지식을 갖추고 시작하는 것이 도움이 많이 될 것이다. 예를 들어 선형대수학, 미분적분, 통계학 등 다양한 분야에서의 이해를 필요로 한다. 수학&통계학을 공부하는 것은 머신러닝 앞길에 존재할 벽을 미리 제거하고 출발하는 것과 같다고 말하고 싶다. 그렇기에 수학&통계학의 중요성을 인식하고 시간이 비록 더 오래 걸릴지라도 기초를 탄탄하게 하여 출발하는 것이 큰 도움이 될 것이다.

다음 이어질 연재를 보면 왜 수학&통계 타령을 하는지 알 수 있을 것이다. 알고리즘에 사용 되는 수학적, 통계적 지식 그리고 데이터 사이언티스트가 되고 싶다면 기본적으로 갖춰야할 수학적, 통계적 지식을 소개할 것이다.


728x90
반응형