일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 문제정의
- 네이티브앱
- 비즈니스 거래 유형
- supervised learning
- 디디콘
- 부린이
- unsupervised learning
- 고객_인터뷰
- Ai
- 머신러닝
- 회복 탄력성
- 제품 기획
- 트렌드_키워드
- 인프런
- 익스트림 유저
- 부동산_왕초보
- pwa
- ChatGPT
- Hous
- 가설수립
- C2B
- 앱 서비스
- DDC2023
- TECHIT
- 챗GPT
- O4O
- UX/UI
- 트렌드코리아2023
- 인풋 대비 아웃풋
- DIKW 피라미드
- Today
- Total
기획/디자인 기록지
머신러닝(Machine Learning)이란? 본문
이제는 머신러닝이라던지 딥러닝이라던지 등의 용어가 들려온 지도 꽤 많은 시간이 지난 것 같다. 데이터 및 AI 전공자는 아니지만 관심이 있어서(아무래도 내 첫 회사가 데이터 관련 회사였기에 더욱 그런 것 같다.) 데이터 관련 개념(이 글에선 머신러닝.)들을 가볍게 정리해보려 한다. 이번 글은 여러 아티클과 전 회사에서 배웠던 것들을 요약 정리한 것이다.
1. 인공지능(AI)이 뭐지?
머신러닝을 알아보기 전, ‘인공지능’이라는 말부터 훑어보자. 인공지능(AI)이란 인간 지능을 모방하여 작업을 수행하고 수집한 정보를 기반으로 반복적으로 개선할 수 있는 시스템/기계를 의미한다고 한다. 챗봇, 지능형 어시스턴트, 추천 엔진 등이 AI의 예시라 할 수 있다.
그럼 인간의 지능은 어떤 식으로 만들어질까?
IT 업계, 문헌 정보관리, 정보 시스템 등의 분야에선 DIKW 피라미드(Data Information Knowledge Wisdom Pyramid)를 활용하여 설명한다.
가장 아래서부터 데이터 → 정보 → 지식 → 지능의 순이다.
데이터는 객체를 관찰, 측정해 수집된 사실이나 값, 수치, 문자 등의 가공되지 않은 원본 데이터를 말한다. 이렇게 수집된 데이터들을 사용자의 필요에 따라 다양한 방식으로 가공하면 정보가 된다. 즉 정보는 여러 데이터 중 사용자가 필요로 하는 데이터를 말한다. 이 정보들을 일반화하고 체계화하여 활용 가능한 형태로 만든 것이 지식인데, 정보의 상호 연결된 패턴을 이해하여 예측한 결과물이라고 생각하면 된다. 마지막 지혜는 지식에 유연성을 더하고 상황이나 맥락에 맞게 규칙을 적용하는 것이다. 근본적인 원리를 이해함으로써 효율성을 극대화하는 식이다.
정확할지 모르겠지만 가볍게 예시를 하나 들자면, 인간 신체에 대한 여러 데이터가 있다고 가정해보자. 난 특히 키에 대한 데이터를 보고 싶다. 그렇게 사람들의 키에 대한 데이터만 모아 정보를 만들었다. 이 정보들의 패턴을 확인해보니 남자의 평균 키가 여자의 평균 키보다 크다는 사실을 발견했다. 이게 지식이다. 이런 관계 형성에 대한 정보(패턴)가 많이 쌓이면 예측이 가능해진다. 때문에 지혜의 일환으로 남자의 평균 몸무게가 여자의 평균 몸무게보다 더 무겁겠구나 하고 예측할 수 있게 되는 것이다.
인간의 지능을 따라하려 하기에 인공지능의 데이터 접근 방식 역시 위와 크게 다르지 않을 것이라 생각한다.
2. AI / ML / DL
- AI(Artificial Intelligence) : 기계인데, 사람의 지능을 모방하는 것.
- ML(Machine Learning) : 명확한 프로그램 없이 학습하는 능력.
- DL(Deep Learning) : ML보다 복잡하고 이질적인 대량의 데이터를 포함한다. 인간의 뇌를 따라하는 능력이라 생각하면 쉬울 것이다.
AI와 ML, DL의 관계도를 그리면 아래와 같다. DL의 하위 폴더로는 Neural networks 즉 신경망이 존재한다. 신경망은 두뇌의 뉴런을 기반으로 모델링된 네트워크로, 이 인공뉴런은 ‘노드’라고 불리기도 한다.
3. 머신러닝(Machine Learning)이 뭐지?
기계학습이라고도 하는 머신러닝은 위에서 말했듯 명확한 프로그램 없이 학습하는 능력이다. 컴퓨터를 프로그래밍하는 대신 컴퓨터가 데이터로 학습하고 경험을 통해 개선하도록 훈련한다. 머신러닝의 알고리즘은 대규모 데이터 셋에서 패턴과 상관관계를 찾고, 분석하여 최적의 의사결정 및 예측을 하도록 훈련된다고 한다.
명확한 프로그램 없이 학습한다는 게 무슨 말일까. 프로그램이란 A → B 같이 구체적이고 명확하게 지시하면 그대로 따르는 것이다. 짜장면을 시켜!라는 명령에 짜장면을 시키는 것과 같다. 명확한 프로그램이 없다는 말은 점심 시켜! 같은 상황을 의미한다. 짜장면을 시킬 수도, 짬뽕을 시킬 수도, 파스타를 시킬 수도 있다. 즉 결정된 데이터, 축적된 경험을 토대로 이후 결정을 내리는 것이다.
Tom Mitchell이라는 사람은 머신러닝을 다음과 같이 정의했다.
A computer program is said to learn from experience E with respect to some class of task T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
(컴퓨터 프로그램이 특정한 태스크 T를 수행할 때, 성능 P 만큼 개선되는 경험 E를 보이면 → 그 컴퓨터 프로그램은 T와 P에 대해 경험 E를 학습했다 할 수 있다.)
즉 어떤 일에 대해 성능을 측정하고 경험을 통해 개선을 반복하여 학습한다는 얘기다. 결국 데이터를 통해 배우는 것이 ML이라 할 수 있다.(이와 관련해 더 많은 내용을 보고 싶다면 출처의 3번째 아티클을 확인해보면 좋을 것이다.)
4. 머신러닝(Machine Learning)의 4가지 학습모델
머신러닝은 데이터의 특성과 원하는 결과에 따라 4가지 학습모델을 선택하여 구현할 수 있다.
1) 지도 학습(Supervised learning)
지도형 학습 모델은 ‘인풋(입력)’과 ‘아웃풋(출력)’의 데이터 쌍으로 구성되며 데이터에 대한 피드백이 존재한다. 간단하게 말하자면 데이터를 ‘지도’하는 방법이다. 레이블이 있는 데이터(=정답이 있는 데이터)로 학습 시키는 것이다.
고양이와 강아지를 구분할 수 있는 머신러닝을 만들려고 할 때, 고양이 사진과 - 이 사진은 고양이라는 사실을 알려주고 강아지 역시 마찬가지로 데이터를 넣어주면 시스템은 알고리즘을 통해 사진의 유사성, 차이점 등등을 학습하기 시작하고 이는 고양이와 강아지 사진을 구분할 수 있을 때까지 학습을 반복한다.
2) 비지도 학습(Unsupervised learning)
비지도 학습은 지도 학습과는 달리 정답이 없는 데이터를 통해 학습시킨다.(대부분 레이블이 없는 비정형 데이터.) 정답 없는 데이터들을 마구 넣어두면 시스템은 데이터들의 패턴과 상관관계를 인식하기 시작한다. 사람은 직관과 경험에 의존해 사물을 그룹화하는데, 이와 비슷한 맥락이라고 생각하면 된다. 비지도 학습은 지도 학습 데이터보다 많은 양의 데이터를 필요로 하고 그만큼 구체적이지도 않지만 큼직큼직하게 구분할 수 있게 된다.
비지도 학습의 대표적인 예는 안면 인식, 유전자 서열 분석, 시장 조사, 사이버 보안 등이 있다고 한다.
3) 준지도 학습(Semi-Supervised learning)
준지도 학습은 지도 학습과 비지도 학습이 합쳐져 있다고 생각하면 된다. 즉 레이블이 있는 데이터와 없는 데이터를 가지고 학습하는 것이다.
4) 강화 학습(Reinforcement learning)
지도 학습의 경우 정답이 있는 데이터를 인풋시켜 학습시킨다고 한다면, 강화 학습의 경우에는 ‘정답’은 제공하지 않지만 허용 가능한 행동/규칙/잠재적 최종 상태(대략적인 정답 범위로 인지하면 될 것 같다.)가 입력된다. 강화 학습은 원하는 목표가 변동 가능한 경우에 경험과 보상을 통해 학습하게 된다.(물론 보상이란 건 금은보화가 아닌 숫자다.)
예시를 들어보자면, 이번에도 고양이와 강아지를 구분하는 머신러닝이라 해보자. 이번엔 개와 고양이 박스가 있다. 머신러닝은 개 박스와 고양이 박스에 데이터를 분류한다. 틀렸다면 혼내고 다시 시킨다. 좋아졌다면 보상, 잘못했다면 피드백을 주어 전보다 나은 ‘상태’를 만들어가게끔 하는 것이다.
다른 예시는 체스 게임이다. 체스 말이 이동할 수 있는 모든 경로를 알려주는 것이 아닌, 체스 규칙을 알려주고 체스를 두게 한다. 보상/피드백의 경험을 쌓게 해 기술을 습득하게끔 하는 것이다.
데이터를 학습시킬 때에는 학습 방법 뿐만 아니라, 윤리 이슈나 데이터의 퀄리티(편파, 오차…) 이슈 등 여러 가지를 신경써야 한다.
인공지능, 머신러닝, 블록체인, IOT 등 많은 기술이 존재하지만 중요한 것은 ‘기술’ 그 자체가 아니다.(물론 기술도 굉장히 중요하지만.) 위의 사례와 같이 기계에 ‘지능’을 주는 이유는 무엇일까? 나는 그 이유가 ‘문제 해결’과 밀접하게 관련있다고 생각한다. 머신러닝은 해결할 문제를 스스로 파악하지 못한다. 진짜 문제가 무엇인지 파악하지 못한다면 수많은 학습을 거친 인공지능은 그저 단순히 똑똑한 기계일 뿐이다. 목표 없는 인공지능은 굉장히 작은 문제를 해결하거나 아무런 문제도 해결하지 못할 수도 있다. 문제를 찾고 고객을 찾고 고객의 니즈를 분석해 솔루션을 도출하는 중요한 과정에서 하나의 선택지로써 머신러닝을 활용할 수 있을 것이다.(머신러닝을 사용해 좋은 솔루션을 낼 수 있다면 좋겠지만, 머신러닝 없이도 개인에게 최적화된 경험을 충분히 만들 수 있을 것이다. 중요한 것은 형식이 아닌 목적이다.)