본문 바로가기
● 인공지능, 분석/20.08 생코_머신러닝

생활코딩_머신러닝개념_비지도학습/강화학습

by 0ver-grow 2020. 8. 20.
반응형

어떤 대상들을 구분해서 그룹을 만드는 것이 군집화라면,
분류는 어떤 대상이 어떤 그룹에 속하는지를 판단하는 것이라고 할 수 있습니다.

 

배달 사업자
- 전국 고객, 1000만명
- 전국 고객의 위치(위도,경도)
- 이 위치를 바탕으로 배달본부 설치
- 1000만명이 적절히 분포된 100개 그룹(군집)을 만드는 것 => 군집화
- 표의 숫자를 군집화시켜 보여주는 도구, 좌표평면

 

만약 행,열이 수백개라면?

어떻게 군집화시켜서 파악할 수 있을까?

바로 머신러닝, 그중에서 비지도 학습, 그중에서 군집화입니다.

 

군집화라는 도구에 1000만개의 관측치(행)를 입력하고
100개의 클러스터가 필요하다고 알려주면,
유사한 속성을 가진 관측치끼리 분류하여
총 100개의 클러스터를 만들어줍니다.

좌표상에서 가깝다는 것은 데이터가
서로 비슷하다는 의미와 같습니다.


연관규칙학습

서로 연관된 특징을 찾아내는 것

일명 장바구니 분석

 

온라인 쇼핑몰 사장
- 목적 : 더 많은 상품 판매
- 방법 : 고객의 장바구니 상품과 관련된 상품을 추천하기
- 도구 : 판매 내역과 관련한 표

 

라면을 구입한 사람은 계란을 구입할 확률이 높습니다.
라면과 계란은 서로 연관성(Association)이 높다

그런데 판매하는 제품의 종류가 1만개이고,
하루에 1000만 명이 여러분의 쇼핑몰을 이용한다.

 

제품들 간의 연관성을 사람이 찾아내는 것은
정말 어려운 일.

 

우리를 구원해줄 수 있는 도구가 바로 연관규칙.

 

쇼핑 추천, 음악 추천, 영화 추천, 검색어 추천, 동영상 추천…..
추천이 이름 뒤에 붙은 것들은 거의 다 연관규칙을
이용한 것

 

연관규칙은 서로 관련이 있는 특성(열)을 찾아주는
머신러닝의 기법

  • 관측치(행)를 그룹핑 해주는 것 => 군집화
  • 특성(열)을 그룹핑 해주는 것 => 연관규칙

 


비지도 학습

비지도학습은 데이터들의 성격을 파악하는 것이 목적.

독립변수와 종속변수의 구분이 중요하지 않습니다.
데이터만 있으면 됩니다.

 

이에 반해 지도학습은 역사적입니다.

과거의 원인과 결과를 바탕으로 결과를
모르는 원인이 발생했을 때
그것은 어떤 결과를 초래할 것인가를 
추측하는 것이 목적입니다.

그래서 원인인 독립변수와 결과인
종속변수가 꼭 필요합니다.

-----

 

<비지도 학습_독립/종속변수 구분 없이 데이터만 있으면 된다.>

조금 엉뚱한 이야기입니다만,
‘나는 누구인가?’를 파악하는 좋은 방법이 있습니다.

 

집안의 살림들을 정리 정돈 해보는 것도
나를 이해하는 좋은 방법입니다.

정리를 해보니까
컴퓨터 관련된 장비가 많이 나왔다면
컴퓨터를 많이 사용하는 사람이라는 것을
짐작할 수 있습니다.

또는 물건을 잘 못 버리는 사람이라는 것도
짐작할 수 있습니다.

이렇듯 정리정돈을 해보면 성질을 파악할 수 있습니다.

 

군집화와 연관규칙만을 놓고 봤을 때
데이터의 성격을 파악하는 작업은
결국, 비슷한 것은 모으고 다른 것은 떨어뜨리는 것입니다.

 

그룹핑을 하는 것

 

비지도 학습은 데이터를 정리 정돈해서
그 표에 담긴 데이터의 성격을 파악하는 것이
중요한 목적

 


강화학습 Reinforcement Learning

강화학습은 영어로는
Reinforcement Learning이라고 합니다.

 

강화학습의 핵심은 일단 해보는 것입니다.

비유하자면 지도학습이 배움을 통해서
실력을 키우는 것이라면,
강화학습은 일단 해보면서 경험을 통해서
실력을 키워가는 것입니다.

그 행동의 결과가 자신에게 유리한 것이었다면
상을 받고, 불리한 것이었다면 벌을 받는 것입니다.


이 과정을 매우 많이 반복하면
더 많은 보상을 받을 수 있는 더 좋은 답을
찾아낼 수 있다는 것이 강화학습의 기본 아이디어입니다.

이런 상태에서 게임의 실력을 키워가는 과정을 따져봅시다.

  1. 우선 게임은 게이머에게 현재의 상태를 보여줍니다. 캐릭터는 어디에 있고, 장애물은 어디에 있는지 알려줍니다.
  2. 동시에 현재의 점수도 알려줍니다. 게이머는 이 값이 높아지는 것이 상이고, 장애물에 부딪히는 것이 벌입니다.
  3. 관찰의 결과에 따라서 어떤 상태에서 어떻게 행동해야 더 많은 상을 받고, 더 적은 벌을 받을 수 있는지를 알게 됩니다.
  4. 즉, 판단력이 강화된 것입니다.
  5. 판단에 따라서 행동을 합니다.
  6. 그 행동은 게임에 변화를 주게 됩니다.

이런 과정을 반복하면 판단력이 점점 강화됩니다.
이것이 현실에서 게임의 실력자가 되는 과정입니다.

 

강화학습은 이러한 과정을 모방해서
기계를 학습시키는 것입니다.

이 과정을 강화학습에서 사용하는 용어로만 바꾸면
여러분은 강화학습이 무엇인지 아는 사람이 되는 것입니다.

 

  • 게임 =>  환경(environment)
  • 게이머 => 에이전트(agent)
  • 게임화면 => 상태(state)
  • 게이머의 조작 => 행동(action)
  • 상과 벌 => 보상(reward)
  • 게이머의 판단력 => 정책(policy)

강화학습에서는 더 많은 보상을 받을 수 있는
정책
을 만드는 것이 핵심입니다.

이렇게 만들어진 정책은 게임의 인공지능 플레이어를
만드는 데 사용될 수 있습니다.

바둑으로 인간을 이긴 알파고가
바로 강화학습을 통해서 구현된 소프트웨어입니다.

자동차의 자율주행 기능도 강화학습을
이용해서 만들어집니다.

 

반응형