codestates / codestates/ds-blog

어서와, 머신러닝은 처음이지?

Open
#180 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
2
Forks
4
PR merge metrics
No merged PRs in 30d

Description

# 어서와, 머신러닝은 처음이지?

머신러닝이라는 단어를 보고 들어본적이 있는가?
자문해보면 데이터를 공부하기 이전에도 뉴스 기사며 광고며 제품 소개며 다양한 곳에서 많이 들어봤다.
아마 전혀 관련이 없는 사람도 바깥 소식을 접해본 사람이라면 스쳐지나가면서도 들어봤을 단어일테다.

그렇게 '단어'만 인지하고 있던 상태에서 데이터를 공부하기 시작하며 지도학습이니 비지도학습이니 선형 회귀니 이게 뭐야고 어려워하다 문득 생각한다.
'이게 다 머신러닝의 일부라는데 머신러닝이 대체 뭐야?'
머신러닝이 뭔지조차 확실히 개념정리가 안되어있다는 걸 깨닫고 머신러닝이 뭔지 이해한 뒤 그 안에 자세한 내용을 배우더라도 이해가 더 되겠구나 싶었다.

이처럼 혹시 머신러닝이 뭔지 확실하게 개념이 잡히질 않고 이게 뭔가 싶은 사람들이 있다면 조금이라도 이해에 도움이 되길 바란다.

# Machine Learning
영어를 보고 해석하면 '기계', '학습'이다. 사전적 정의를 보자.
> 인공지능의 연구 분야 중 하나로, 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법이다.

라고 네이버 지식 사전에서 말하고 있다.
머신러닝은 위 내용 그대로 인간이 기계를 학습시킨다. 인간이 가진 학습 능력을 갖도록 한다.
왜 하는 걸까?
## 산업혁명
먼저 산업혁명 단계를 생각해보자.
* 1차 산업혁명 : 증기기관 기반의 기계화
* 2차 산업혁명 : 전기 에너지 기반의 대량생산
* 3차 산업혁명 : 컴퓨터와 인터넷 기반의 지식정보

지난 날 발전해온 인간 사회를 보면 언제나 인간의 신체적 한계를 넘어서는 혁명이 있어왔다. 이제 4차 산업 혁명은 인간이 뇌로 신체를 총괄 지휘하듯 세상 만물에 지능을 붙여 사람이 판단하고 결정하고 움직이도록 하는 일을 기계 스스로 할 수 있게 발전시키고있다. 그야말로 초연결, 초지능, 초연결이다.
인간의 '일'을 덜어주고 '시간'을 벌어주는 효율. 이렇게 할 수 있도록 하는 방법중 하나가 '머신러닝'이다.

조금 더 직접적으로 들여다보자.
머신러닝은 어떻게 쓰이고 어떤 이점이 있을까?
몇 가지 예를 들어보자.

* 자율 주행 차량
사람이 운전을 하면서 신호, 도로상황 내 주위에 모든 차들이 움직이는 걸 보면서 방향, 속도등을 결정한다. 주위 환경을 파악하고 순간마다 판단하며 운전을 한다.
그러나 자율 주행 차량은 이렇듯 도로교통 상황을 보고 판단하는 사람의 일을 대신 해준다. 차와 인공지능이 만나 주변 차량의 움직임과 교통 신호를 보며 사람처럼 판단하고 운전을 해준다. 축하할 일이다. 자율 주행 차량으로 인간들은 운전으로 인한 피로감에서 해방될 수 있다!

* 카메라 어플
내 얼굴을 인식해서 캐릭터로 바꿔준다거나 자동으로 메이크업을 해주는 '스노우'같은 앱을 써본적이 있는가? 이것도 머신러닝 기술이 적용되었다. 수많은 사람들의 눈코입 위치를 학습한 뒤 카메라로 새로운 얼굴을 비추면 눈코입과 얼굴을 인식해서 메이크업이나 다른 모습으로 변경해 동영상이나 사진을 찍을 수 있게 해준다.

* 판매 예측
여러분은 짜장면과 짬뽕을 파는 중국집 사장님이다. 이번 주말에 짜장면과 짬뽕이 각각 몇 그릇이 나갈지 예측해보자. 지난 주말에 팔렸던 그릇을 참고할 수도 있다.
하지만 짜장면, 짬뽕이 잘 팔리는 이유를 가정해보자. 예를 들어, 기온이 올라갈 수록 짜장면이 잘 팔리고 떨어질 수록 짬뽕이 잘 팔린다. 비가 오는 날은 짬뽕이 많이 팔리고 날씨가 좋은 날은 짜장면이 더 잘 팔린다. 축구 경기를 하는 날은 짜장이, 야구 경기를 하는 날은 짬뽕이 잘 팔린다.
이렇게 판매 수에 영향을 미치는 여러 요소들이 많을 수록 우리가 직접 일일이 그걸 비교하고 예측하는 계산을 하기란 매우 어렵다.
그러나 머신러닝은 쉽고 빠르게 해낸다. 짜장면과 짬뽕이 잘 팔리는데 영향을 주는 요소가 1천개, 1만개가 있어도 순식간에 그 관계성을 파악하고 미래에 팔릴 그릇 수를 예측해주고 그에 맞춰 재료를 준비하고 각종 프로모션을 기획할 수도 있다.

위 3가지 말고도 이미 의학, 제조, 운송, 재무, 마케팅 등 수 많은 곳에서 머신러닝이 쓰이고 있다.

## 머신러닝을 하려면
위에서 머신러닝은 기계를 학습시키는 일이라고 했다. 기계를 어떻게 학습을 시킨단 말인가?
사람은 필요한 지식을 위해 책을 보거나 누군가 말로 설명해주거나 시험을 보고 문제를 푸는 등 직접 경험하면서 학습한다.
기계는 데이터로 학습한다.
* 데이터
충분한 양의 데이터로 기계가 그 속의 원인과 결과로 예측할 수 있도록 한다. 기계는 데이터들의 관계를 학습하고 설명한다. 이 과정을 '모델'이라고 부른다.
기계가 학습하고 데이터의 관계를 설명한 모델에 새로운 데이터를 넣으면 그 데이터로 원하는 결과를 예측해 준다.

## 학습 종류
머신러닝은 3가지 학습이 있다.
* 지도 학습 : 데이터와 정답을 주고 학습을 시킨다.
* 비지도 학습 : 데이터는 주지만 정답은 없이 학습을 시켜서 기계가 데이터를 관찰하며 정답 없이 관계나 의미를 찾는다.
* 강화 학습 : 학습을 통해서 능력을 향상시키는 것에서 지도학습과 비슷하다. 다만 지도학습은 데이터를 미리 주고 정답을 알려주며 학습시키지만 강화학습은 게임처럼 어떤 상황에서 어떤 액션을 취하느냐에 따라 최적의 상태를 스스로 수련하듯 학습을 한다.

오늘 크게 머신러닝이 무엇인지 그 안에 어떤 것들이 있는지 정리를 해보았다.
이후에 각 학습 종류 안에는 어떤 것들이 있는지 알아보자.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.