새소식

Python/opentutorials(Machine Learning)

5. Machine Learning Types

  • -

 이번에는 비지도 학습(Unsupervised learning)에 대해 배워보려 합니다. 비지도 학습 대표적으로 군집화, 연관, 변환으로 크게 나눌 수 있습니다.

 

 

1. 군집화(Clustering)

 

 군집화(clustering)는 비슷한 것들을 찾아 그룹을 만드는 것입니다. 분류(classification)와 구분이 안 갈 수 있는데, 예를 들면 물건들을 정리한다 하였을 때 비슷한 것들끼리 모아서 적당한 그룹을 만드는 것이 군집화입니다. 그룹을 만들고 난 후 각각의 물건을 적당한 그룹에 위치시키는 행위를 분류라고 할 수 있습니다. 즉 어떤 대상들을 구분해서 그룹을 만드는 것이 군집화라면 분류는 어떤 대상이 어떤 그룹에 속하는지를 판한다는 것이라고 볼 수 있습니다.

 

 표의 숫자만 보고 군집화를 하는 것은 쉽지 않아 좌표평면을 이용하였는데, 옆의 값들이 만약 없이 많고, 계속 추가되고 수정된다면 관리하기가 많이 힘들것 입니다. 이를 위해 사용할 있는 도구가 비지도학습의 군집화입니다.간단하게 생각해보면 군집화는 서로 가까운 관측치를 찾아주는 머신러닝 기법이라는 것을 있습니다. 좌표상에서 가깝다는 것은 데이터가 서로 비슷하다는 의미와 같기 때문이니까 말이죠.   비슷한 행을 Grouping 하는 것 의미한다고 있습니다.

 

 

 

2. 연관(Association)

 

 아래의 표는 연관 기법 중 예시를 들 수 있는 표입니다. 유심히 보면, 라면을 구입한 사람은 계란을 구입할 확률이 높습니다. 이는 라면과 계란은 서로 연관성이 높다는 것을 알 수 있습니다. 연관성을 파악할 수 있다면 고객이 구입하지 못했지만, 구입할 가능성이 매우 높은 상품을 추천해줄 수 있습니다. 하지만 제품의 종류와 사람의 데이터가 셀 수 없을 정도로 크다면 연관성을 찾기 힘들 것입니다. 이때 우리를 도와줄 수 있는 도구가 바로 연관 규칙(Association rule learning)입니다. 대부분 추천이 이름 뒤에 붙은 것들은 연관 규칙을 이용한 것이라고 볼 수 있습니다. 간단히 정리하면 연관 규칙은 서로 관련이 있는 특성(열)을 찾아주는 머신러닝의 기법이라는 것을 알 수 있습니다.

( 지금까지 판매 내역이며 하나 이상 구매했다면 O, 구매하지 않았다면 X )

 

 

3. 변환(Transform)

 

 

 변환(transformation)데이터를 새롭게 표현하여 사람이나 다른 머신러닝 알고리즘이 원래 데이터보다 쉽게 해석할 수 있도록 만드는 알고리즘입니다. 변환이 널리 사용되는 분야는 특성이 많은 고차원 데이터를 특성의 수를 줄이면서 꼭 필요한 특징을 포함한 데이터로 표현하는 방법인 차원 축소(dimensionality reduction)입니다. 예로는 시각화를 위해 데이터셋을 2차원으로 변경하는 경우가 있습니다.

비지도 변환으로 데이터를 구성하는 단위나 성분을 찾기도 합니다. 텍스트 문서에서 주제를 추출하는 것이 예입니다.

 

 

 

 

< 강화 학습(Reinforcement learning) >

 

 강화 학습(reinforcement learning)의 핵심은 일단 해보는 것입니다. 지도 학습이 배움을 통해 실력을 키우는 것이라면, 강화 학습은 해보면서 경험을 통해 실력을 키워나가는 것입니다. 행동의 결과가 자신에게 유리한 것이었다면 상을 받고, 불리한 것이었다면 벌을 받는 것입니다. 이 과정을 많이 반복하면 더 좋은 보상을 받는 답을 찾아내는 것이 강화 학습의 기본 아이디어입니다.

 좋은 예시가 있는데 게임 실력을 키워가는 것을 보겠습니다. 우선 첫 번째로 게임이 있어야 합니다. 게임은 게이머에게 보여줄 화면이 필요하고, 하나의 주인공은 게이머입니다. 게이머는 현재의 상태를 관찰해야 하고, 관찰 결과에 따라서 게임을 조작하는 행동을 해야 합니다. 관찰과 행동을 하기 위해서는 판 단련이 필요합니다. 이런 상태에서 게임의 실력을 키워가는 과정을 살펴보면

 

1) 우선 게임은 게이머에게 현재의 상태를 보여줍니다. 캐릭터는 어디에 있고, 장애물은 어디에 있는지 알려줍니다.

2) 동시에 현재의 점수도 알려줍니다. 게이머는 이 값이 높아지는 것이 상이고, 장애물에 부딪히는 것이 벌입니다.

3) 관찰의 결과에 따라서 어떤 상태에서 어떻게 행동해야 더 많은 상을 받고, 더 적은 벌을 받을 수 있는지를 알게 됩니다.

4) 즉, 판단력이 강화된 것입니다.

5) 판단에 따라서 행동을 합니다.

6) 그 행동은 게임에 변화를 주게 됩니다.

 

 이런 과정을 반복하면 판단력이 점점 강화됩니다. 강화 학습은 이러한 과정을 모방해서 기계를 학습시키는 것입니다. 이 과정을 강화 학습에서 사용하는 용어로만 바꾸면 여러분은 강화 학습이 무엇인지 아는 사람이 되는 것입니다.

 

 

            게임 -> 환경 (environment)        게이머의 조작 -> 행동 (action)

게이머 -> 에이전트 (agent)           상과 벌 -> 보상(reward)

              게임 화면 -> 상태 (state)                게이머의 판단력 -> 정책(policy)

 

 다시 말해 강화 학습에서는 더 많은 보상을 받을 수 있는 정책을 만드는 것이 핵심입니다. 예를 들면 바둑으로 인간을 이긴 알파고가 강화 학습을 통해 구현된 소프트웨어입니다.

 

https://opentutorials.org/course/1

 

'Python > opentutorials(Machine Learning)' 카테고리의 다른 글

6. Finished Machine Learning  (0) 2021.07.20
4. Machine Learning Types  (0) 2021.07.18
3. Start Machine Learning  (0) 2021.07.17
2. About Machine Learning  (0) 2021.07.16
1. About Machine Learning  (0) 2021.07.15
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.