머신러닝
은 컴퓨터가 데이터를 보고 그 데이터를 알아서 분석하고, 어떤 유의미한 결과를 도출해 내는 것을 말한다. 이때, 머신러닝의 모델을 만드는 것은 해당 데이터의 성격에 따라 어떤 카테고리와 특징을 메인으로 분석할 것인지, 더 나아가서 어떤 알고리즘으로 데이터를 분석해 낼 것인지
를 포함한다. 데이터에서 지식을 추출하는 과정이다.
머신러닝의 모델
은 우리가 만든 머신러닝 프로그램이 무엇을 어떤 방식으로 판단할 지 정해주는 역할을 한다. 또한 이러한 기능을 가진 것을 머신러닝 모델
이라고 한다.
머신러닝은 데이터에서 공식을 도출해 낼 수 있다.
머신러닝은 분석하려는 데이터의 특징에 따라 크게 3가지로 분류할 수 있다.
지도학습은 이전의 데이터에서 알고 있었던 원인과 결과를 통해 새로운 데이터의 결과 값을 도출해내는 학습을 말한다.
이미 원인과 결과사이에 유의미한 관계가 형성되었다는 것을 알고 있는 상태에서 이용한다.
원인을 통해서 결과가 만들어지는 것이다. 이때 원인은 독립변수
, 결과는 종속변수
라고 칭한다.
이전 데이터가 존재하기 때문에 예측한 데이터의 정확도를 계산할 수 있다.
데이터 셋에서 결과를 도출할 때 해당 결과가 숫자로 나타나지 않고 상태나 이미지로 나타나는 경우 (상태, 이미지 == 범주형 데이터)
어떤 특성을 가진 데이터인 지 보고 분류하는 역할을 하는 것이다.
분류 모델을 만들기 위한 알고리즘으로 로지스틱 회귀법
, KNN
, 서포트 벡터머신(SVM)
, 의사결정트리
등이 있다.
데이터 셋에서 결과를 도출할 때 해당 결과가 숫자로 나타나는 경우 (숫자 == 양적 데이터)
주의 : 입력한 데이터가 숫자를 의미하는 이미지고 이를 이미지에 따라 숫자로 분류하는 경우는 "분류" 모델에 해당한다.
즉 데이터 셋을 가지고 함수 식을 만들어서 어떠한 입력값 x가 들어와도 y를 예측할 수 있는 모델을 만든다. 데이터가 연속적일 때 이용하기 좋다.
비지도학습은 해당 데이터에서 원인과 결과를 모르는 상태에서 새로운 데이터의 결과 값을 예측해내는 학습을 의미한다.
새로 얻은 데이터가 가진 특성이 어떠한 패턴과 관계를 가지고 있는지 알아내는 것으로, 이전 데이터가 없기 때문에 해당 데이터의 원인과 결과를 알지 못할 때 이용한다.
이전의 데이터가 없으며, 받은 데이터에서 어떠한 원인이 어떤 결과를 일으켜내는 지 분석하는 것으로 데이터의 규칙성을 찾아주고, 데이터의 패턴과 특성을 스스로 찾아내주는 역할을 한다.
데이터 셋의 패턴과 특성을 새롭게 알아내는 비지도 학습
의 경우 3가지로 나눌 수 있다.
비슷한 것들 끼리 모아서 그룹을 형성하는 것을 군집화라고 한다. 이때 비슷한 정도
를 알아 내기 위해서 데이터간의 거리
를 계산하게 된다.
비슷한 것들끼리 모으는 것이므로 행(row)이 기준이 되어 행끼리 모이는 것을 의미한다.
예를 들어 택배 구역을 고객의 위치에 따라 나눈다고 치면, 각 고객이 살고 있는 위치에 따라 비슷한 위치에 존재하는 사람들 끼리 군집을 나누는 것이다.
그렇다면 이러한 군집을 잘 나눴다는 타당성은 어떻게 평가할까?
먼저 처음에 생성한 군집은 이 군집이 잘 형성되었는 지 평가할 수 있는 기준(label)이 없다.(이전 데이터가 존재하지 않기 때문)
따라서 데이터 간의 거리를 기준으로 정하고, 각 군집간의 분산
이 최대가 되며, 군집 내에서의 분산
은 최소가 될 때 타당성이 높다고 평가한다.
군집화 알고리즘은 크게 분할
, 계층
알고리즘으로 나뉘게 되는데 분할에는 k-means, k_medoids, DBSCAN
등이 있고 계층은 집괴적 군집화
와 분할적 군집화
로 또 다시 나뉘어 알고리즘을 가지고 있다.
알고리즘은 다음 게시물에서 설명할 예정이다.
연관규칙은 각각의 데이터의 label(특성)
에 따라 상관관계를 만들어 주는 것을 의미한다. 원래는 상관관계를 몰랐는데, 데이터를 분석하고 보니까 특성간에 이러한 규칙이 있더라를 만들어 준다.
그렇기 때문에 연관규칙은 표에서 열(col)을 분류해 주는 것이라고 볼 수 있다.
변환
은 데이터 셋을 머신러닝 알고리즘이 파악, 분석하기 쉽도록 데이터를 여러 형태로 바꿔보고 표현하는 방법을 말한다. 데이터의 특징을 파악하기 위해 데이터 셋을 2차원으로 변환하는 게 예시이다.
대표적인 방법으로는 차원 축소(dimensionality reduction) 이 있다. 이는 해당 데이터에서 상관관계가 없는 특징들은 제외시키고, 꼭 필요한 특징점들만 남겨서 비교하는 것을 의미한다.
이 방법은 추후에 실습을 설명하는 사이트에서 변환 모델을 이용하는 몇몇 방법들을 알아보고 진행할 때 더 자세히 다룰 것이다.
강화학습은 어떤 정의된 주체(agent)
가 현재 진행되는 환경의 상태(state)
를 보고 할 수 있는 행동(action)
중에서 가장 보상(reward)
을 많이 받을 수 있는 행동을 고르도록 방법(policy)을 만드는 것을 의미한다.
어떤 행동이 가장 최고의 보상을 이끌 수 있는지 판단하도록 만드는 것을 강화학습이라고 하는 것이다.
이 영상을 보면 강화학습을 통해 자동차가 점점 주차를 잘하게 된다는 것을 알 수 있다.
강화학습은 처음에는 당장 받을 수 있는 보상을 생각하면서 action을 선택하게 되지만, 나중에 가서는 미래에 얻을 수 있는 더 큰 보상을 고려하면서 action을 선택하게 될 수 있다.
1. agent가 environment의 state를 observation하고 이를 기반으로 action을 취함.
2. 이 action으로 인해 reward를 얻게 됨
3. 이 reward를 기반으로 더 많은 reward를 얻을 수 있는 방향으로 action을 취함.
이때 더많은 reward
를 얻을 수 있는 방향으로 action
을 취하는 것을 exploitation(이용)
이라고 하고, 여러 environment
나 state
를 만드는 것을 exploration(탐험)
이라고 한다.
이 둘의 적절한 균형을 맞추는 것이 알고리즘을 만들 때 핵심 포인트라고 할 수 있다.
마르코프 결정 프로세스가 강화학습의 의사결정 프로세스의 예시 중 하나다.