머신러닝이란?
- 데이터 사이언스/머신러닝 딮러닝
- 2023. 6. 26.
인공지능은 현대 사회에서 가장 빠르게 발전하는 기술 중 하나로, 우리의 생활과 업무에 혁명적인 변화를 가져오고 있습니다. 그리고 그 핵심적인 역할을 맡고 있는 것이 바로 "머신러닝(Machine Learning)"입니다. 머신러닝은 알고리즘을 구축하는 컴퓨터 과학의 하위 분야로 최근에는 인공지능의 핵심기술로 자리잡고 있습니다. 요즘은 머신러닝으로 할 수 없는 것들도 많아지고 있는 추세지만 기본적인 베이스가 되고 있는건 변함 없습니다.
컴퓨터가 패턴을 학습하여 스스로 데이터분석과 문제를 해결하는 능력을 갖추게 된다면 얼마나 편해질까요? 데이터를 컴퓨터에게 던져주면 알아서 분석도 해주고 ppt도 만들어주고 문서도 만들어줄겁니다. 여태까지 컴퓨터로 했던 모든 것들은 이제 말이나 타이핑을 통해서 해달라고 요청하면 컴퓨터가 알아서 해줄지도 모릅니다.
머신러닝이 추구하는 바는 배운 학습을 기반으로 스스로 다양한 알고리즘과 모델을 사용하여 데이터를 분석하고, 특정한 패턴이나 규칙을 발견하는 것입니다. 이러한 알고리즘과 모델은 주어진 데이터를 기반으로 최적의 결과를 도출하기 위해 계속해서 튜닝되고 개선되고 있습니다. 일반적으로 지도학습(Supervised Learning), 준지도학습(semi-supervised), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning)으로 나눌 수 있습니다.
지도학습(Supervised Learning)
지도학습은 주어진 데이터를 입력 데이터와 그에 해당하는 정답(label) 데이터를 정해서 만듭니다. 정답을 만드는 것을 레이블링이라고 하는데 모델은 입력 데이터와 정답 데이터 간의 관계를학습하고, 이를 통해 새로운 입력 데이터에 대한 정답을 예측할 수 있게 됩니다.
즉, 레이블링된 견본인 ${(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$ 으로 만들어서 학습을 시킵니다. 여기서 $x_i$ 를 특징 벡터(feature vector)라고 합니다.
여기서 1차원 배열로 바꾼 후 인덱싱값로 순서를 정해 시퀀스를 만들어줍니다.
D개의 시퀀스의 길이로 이루어져 있다면 이를 차원(dimensionality)라고 합니다.
$[x^{(1)},x^{(2)},...,x^{(D)}]$ 으로 정답과 분리를 해서 나타냅니다.
벡터 하나하나는 각각 동일한 특징을 가지고 있어야 하는게 중요한 포인트입니다.
예를 들어, 데이터에서 x 가 신체정보를 나타내는 경우 첫번째 특징 $x^{(1)}$을 키(cm), 두번째 특징 $x^{(2)}$는 체중(kg)으로 나타낼때 모두 동일하게 cm, kg으로
해주어서 학습을 진행하게 됩니다. 정답인 레이블 $y_i$는 일반적으로 유한한 클래스 ${1,2,...,C}$나 실수, 벡터 등 다양한 형태로 나타날 수 있습니다.지도학습은 항상 정답을 기반으로 학습을 하기 때문에 어떤 범주를 예측해야하는지가 정해져 있습니다. 이를 target이라고 합니다.
보통 클래스를 예측하는 문제를 분류라고 하고 값을 예측하는 경우를 회귀라고 합니다.
예측하고자 하는 target을 값으로 나타내주어야 합니다.
분류와 회귀의 초점이 다른데 분류는 클래스를 어디로 넣어야할까에 초점이 맞춰져 있어 구분하는 선 또는 초평면을 찾는데에 초점이 맞춰져 있고, 회귀는 훈련 견본을 모두 대변할 수 있는 선 또는 초평면을 찾는데에 초점이 맞춰져 있습니다.
지도학습을 쓰는 가장 쉬운 예가 스팸 메일 필터링입니다. 수천 개의 이메일 데이터와 이메일이 스팸인지 아닌지를 나타내는 레이블을 사용하여 모델을 훈련시키고, 이를 통해 새로운 이메일이 스팸인지 아닌지를 예측할 수 있습니다.
비지도학습
비지도학습은 정답(label) 데이터 없이 입력 데이터의 패턴이나 구조를 스스로 학습하는 방법입니다. 이는 데이터의 내부 구조를 탐색하고, 데이터를 클러스터링하거나 차원 축소하는 등의 작업에 활용됩니다. 예를 들어, 소셜 미디어에서 사용자 그룹을 발견하는 경우에 비지도학습 알고리즘을 사용할 수 있습니다. 입력 데이터만으로 알고리즘이 유사한 특성을 가진 사용자들을 군집화하고, 이를 통해 사용자 그룹을 생성할 수 있습니다.
즉, 레이블이 없는 데이터 ${x_1,x_2,...,x_N}을 가지고 패턴을 찾아나가는 방법입니다.
대표적인 방법이 군집화(clustering)입니다. 군집화는 각 데이터 중 비슷한 것끼리 묶어서 하나의 덩어리(군집)로 만들어가는 것을 의미합니다. 그래서 아주 많은 데이터를 묶어서 몇가지의 카테고리로 만들 수도 있고 군집된 중 대표값을 꺼내어 하는 경우도 있습니다. 하지만 군집화를 잘 못하게 되면 엉뚱한 샘플링이 되어 똑같은 데이터만 가져와 결과가 이상해질 수 있습니다.
차원 축소, 이상치 검출을 할 때 많이 쓰입니다.
준지도학습
준지도학습은 지도학습과 비지도학습을 섞어놓은 형태로 데이터가 레이블링이 된 것과 안 된것이 같이 있는 경우입니다. 이런 경우 레이블링 안 된 데이터를 추가적으로 사용하고 싶을 때 사용합니다. 학습개선을 위한 경우입니다. 방법은 지도학습이나 비지도학습의 방법을 씁니다. 모델 개선이기 때문에 상황을 잘 살펴보고 실행해야 효과적일 수 있습니다.
강화학습
강화학습은 환경과 상호작용하며 보상을 최대화하는 의사결정을 학습하는 방법입니다. 강화학습은 에이전트(agent)라고 불리는 주체가 환경과 상호작용하며, 어떤 행동을 취함으로써 보상을 받거나 벌점을 받게 됩니다. 이러한 보상과 벌점을 통해 에이전트는 보상을 최대화하는 최적의 정책을 학습하게 됩니다. 예를 들어, 자율 주행 자동차는 강화학습을 통해 도로에서 안전하고 효율적인 주행 방식을 스스로 학습하는 경우입니다. 이 밖에도 게임이나 주식매매(?)등에서도 쓰일 수 있습니다. 바둑 인공지능인 알파고가 강화학습의 예입니다.
강화학습의 목표는 최적의 정책(policy)를 학습하는 것입니다. 보상을 극대화하기 위해 학습을 합니다. 그러니깐 행동이 평균 장기 보상(average log-term reward)를 극대화하게 된다면 최적이 된다고 할 수 있습니다.
강화학습은 의사결정을 하는데 있어서 목표가 장기적인 경우를 해결하는데 적합합니다. 로봇공학, 자원 관리, 물류 문제등에 강화학습을 쓰면 보다 효과적일 수 있습니다.
마치며
머신러닝은 이미 다양한 분야에서 적용되고 있습니다. 의료 분야에서는 환자 데이터를 분석하여 질병을 조기에 탐지하고, 약물 효능을 예측하는 등의 의사 결정을 지원합니다. 금융 분야에서는 사기 탐지, 신용 스코어링, 주가 예측 등의 작업에 활용되고 있습니다. 또한, 교육 분야에서는 개인 맞춤형 학습 경로를 제공하거나 학습자의 학습 스타일을 분석하여 효과적인 교육 방법을 제안하는 등의 활용이 이루어지고 있습니다.
파급력이 크고 광범위로 쓰이고 있기 때문에 어떻게 쓰느냐에 따라 큰 발전이 될 수도 큰 해악이 될 수 있는 것이 머신러닝입니다. 이것을 꼭 염두하고 공부하시길 바랍니다.
'데이터 사이언스 > 머신러닝 딮러닝' 카테고리의 다른 글
[머신러닝] 숫자형 데이터 스케일링 방법 정리 (0) | 2023.11.25 |
---|---|
[파이썬] 선형회귀 간단하게 구현 (0) | 2023.10.19 |
[자연어처리] NLTK 설치 및 소개 (0) | 2023.05.15 |
iris dataset 가져오기(데이터셋 가져오는 요령) (0) | 2023.01.14 |
[머신러닝] 지도학습 성능 평가방법 총정리 (0) | 2022.12.05 |