코딩하는 바나나
Machine Learning 본문
Machine Learning이란 무엇일까?
기존의 프로그램들은 대부분 사람이 만든 규칙에 의해 동작하는 프로그램들이다. 우리가 여러가지 제어문을 통해서 프로그램의 흐름을 정의하는 것이 프로그래밍이었다.
이러한 프로그래밍 방법은 잘 작동한다, 하지만 시간이 흐르다 보니 단순한 프로그래밍 만으로 해결 할 수 없는 문제들이 나오기 시작했다.
복잡한 문제를 기존의 프로그래밍 방식으로 구현한다면 모든 사람이 경우의 수에 대해 하나하나 코딩해주어야 할 것이다.
사진을 보고 물체를 판별하는 프로그램, 자율주행 자동차 등 기존의 방법으로 프로그래밍 하기에는 한계가 있다.
이를 해결해주는 것이 Machine Learning이다.
Machine Learning은 이름 그대로 기계가 학습을 하는 것이다. 우리가 컴퓨터에게 데이터를 주면 컴퓨터는 데이터로 부터 패턴을 찾아 결과를 도출한다. 개와 고양이 사진을 넣어주면 개와 고양이를 분류해주는 것이다.
Machine Learning은 데이터를 어떻게 주냐에 따라서 크게 3가지 정도로 분류될 수 있다.
1. Supervised Learning
2. Unsupervised Learning
3. Reinforcement Learning
Supervised Learning은 컴퓨터에게 데이터와 데이터에 대한 답을 포함해서 주는 것이다.
예를 들어 개와 고양이를 구분하는 프로그램의 경우 컴퓨터에게 개 사진과 고양이 사진을 주고 각각의 사진이 개인지 고양이인지에 대한 답을 주는 것이다.
위와 같이 개와 고양이를 구분하는 경우는 Classification 이라고 한다. 여러가지 카테고리 중 하나로 분류하는 것이기 때문이다.
위와 다른 예로 학생들의 모의고사 성적을 기반으로 수능 성적을 예측하는 프로그램은 Classification이 아니다. 정해진 카테고리로 분류하는 것이 아니라 답이 연속적으로 나 올 수 있다.. 이는 Regression이라고 한다.
Unsupervised Learning은 Supervised Learning과 다르게 답은 주어지지 않는다. 답이 없다면 어떻게 학습하는 걸까? 데이터를 분석하면 특징에 따라 데이터들이 분리 될 것이다. 이때 데이터들은 특정한 군집을 이룰 것이다. 이 군집에 따라서 컴퓨터가 알아서 데이터를 구분하는 것이다. 백화점에서 고객의 데이터를 분석해 고객의 니즈에 맞는 이벤트를 열고 싶을 때 군집화된 고객 데이터를 기반으로 각 고객 층에 맞는 이벤트를 제공 할 수 있을 것 이다.
Reinforcement Learning은 데이터와 답 모두 컴퓨터가 알아서 찾도록 하는 것이다. 이는 컴퓨터에게 현재 상태를 주고 알아서 행동하도록한다. 이 행동에 대한 결과가 좋으면 보상을 주고 결과가 안 좋으면 패널티를 주어 컴퓨터가 보상을 더 많이 받는 방법으로 학습하도록 하는 것이다. 테트리스 게임을 하는 AI의 경우 Reinforcement Learning을 사용 할 수 있다. 이 떄 AI가 기록한 점수를 보상으로 사용 할 수 있을 것이다. AI가 처음에 하고 싶은 대로 테트리스를 플레이 하다 죽으면 패널티를 받을 것이다. AI는 학습 하면 할 수록 점점 안죽고 플레이를 할 것이고 점수를 많이 받기 위해 콤보를 사용하기도 하면서 점점 발전 할 것이다.
'Machine Learning' 카테고리의 다른 글
Softmax (0) | 2023.02.01 |
---|---|
Logistic Regression (1) | 2023.01.18 |
Linear Regression (0) | 2023.01.17 |