알고리즘
계산을 실행하기 위한 단계적 절차를 의미하기도 한다. 즉, 문제 풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다
머신 러닝
기계에 학습시킨다. 어려운 문제들을 컴퓨터가 풀게 할 수있지 않을까해서 생겼다고한다.
우리는 데이터를 보고 "어떤 함수에 비슷한 모양일 것이다"라고 가설을 세우고 그에 맞는 손실 함수를 정의해야한다. 우리가 하는 일은 여기서 끝이고 기계는 우리가 정의한 손실 함수를 보고 우리의 가설에 맞출 수 있도록 열심히 계산하는 일을 하게하는 것이다.
** 범주 : 인공지능>머신러닝>딥러닝
머신러닝의 학습방법
크게 세가지로 나뉜다. 지도학습(Supervised Learning) / 비지도학습(Unsupervised Learning) / 강화학습(Reinforcement Learning)
- 지도 학습(Supervised Learning) : 정답을 알려주면서 학습시키는 방법. 지도 학습은 기계에게 입력값과 출력값을 전부 보여주면서 학습시킨다. 우리는 이미 정답을 알고 있기 때문에 정답을 잘 맞추었는지 아닌지를 쉽게 파악할 수 있다. 대신 정답(출력값)이 없으면 이 방법으로 학습시킬 수 없다. ** 실무에서 문제를 해결해야하는데 데이터가 없는 경우가 비일비재하다. 따라서 입력값에 정답을 하나씩 입력해주는 작업을 하게 되는 경우가 있는데 그 과정을
노가다라벨링(Labeling, 레이블링) 또는 어노테이션(Annotation)이라고 한다. regression & classification, 회귀와 분류 문제가 대표적인 지도 학습에 속한다. - 비지도 학습(Unsupervised Learning) : 정답을 알려주지 않고 군집화(Clustering)하는 방법. 출력값에 해당하는 데이터(Label 또는 Class)가 없을 때 사용한다. ex) (수 백만개의 음원 파일이 있는데, 각 음원 파일에 대한 장르 데이터는 없어. 그러니까 기계에게 음원 파일을 들려주고 알아서 비슷한 것끼리 분류하게 해보자!) 그룹핑 알고리즘(Grouping algorithm)의 성격을 띄고 있다. 종류로는 군집 (Clustering) & 시각화(Visualization)와 차원 축소(Dimensionality Reduction) & 연관 규칙 학습(Association Rule Learning)이 있다.
- 강화학습(Reinforcement Learning) : 주어진 데이터없이 실행과 오류를 반복하면서 학습하는 방법이다. 행동 심리학에서 나온 이론으로 분류할 수 있는 데이터가 존재하지 않거나, 데이터가 있어도 정답이 따로 정해져 있지 않고(경우의 수가 많고), 자신이 한 행동에 대해 보상(Reward)를 받으며 학습하는 것을 말합니다. ex) 게임을 예로 들면 게임의 규칙을 따로 입력하지 않고 자신(Agent)(개체)이 게임 환경(Environment)에서 현재 상태(State)에서 높은 점수(Reward)를 얻는 방법을 찾아가며 행동(Action)하는 학습 방법으로 특정 학습 횟수를 초과하면 높은 점수(Reward)를 획득할 수 있는 전략이 형성되게 됩니다. 단, 행동(Action)을 위한 행동 목록(방향키, 버튼)등은 사전에 정의가 되어야 합니다. 만약 이것을 지도 학습(Supervised Learning)의 분류(Classification)를 통해 학습을 한다고 가정하면 모든 상황에 대해 어떠한 행동을 해야 하는지 모든 상황을 예측하고 답을 설정해야 하기 때문에 엄청난 데이터가 필요하게된다.
- 강화학습의 개념
- 에이전트(Agent)
- 환경(Environment)
- 상태(State)
- 행동(Action)
- 보상(Reward)
회귀 Regression
모든 문제를 풀기 위해서는 먼저 입력값(Input)과 출력값(Output)을 정의해야 된다. 출력값이 연속적인 소수점으로 예측하게 하도록 푸는 방법을 회귀라고 합니다. (대부분소수점(float)로 표현)
선형 회귀 Linear Regression
모든문제는 선형으로 풀 수 있다라고 가정하는게 선형 회귀이다. 직선으로 표시할 수 있다는 가설을 세우는 것으로 시작한다.
임의의 직선 1개로 이 그래프를 비슷하게 표현할 수 있다고 가설을 세울 수 있습니다. 이 선형 모델은 수식으로 아래와 같이 표현할 수 있다. (직선 = 1차 함수)
H(x) = Wx + b (W:기울기, b:y절편) 수식을 가설(hypothesis) 이라고한다.
머신러닝의 모든 문제는 가설이 있어야 풀 수 있다.
우리가 만든 임의의 직선(가설)과 점(정답)의 거리가 가까워지도록 해야한다.
그러기 위해서 손실함수(cost(loss) function) 개념이 필요하다 : 점과 직선의 거리 (mean squared error:평균제곱오차)
가설에 맞추기 위해서 cost function 사용해서 가설과 정답값의 거리를 좁히는 방법으로 학습을 기계에게 시킨다.
기계는 W(weight)와 b(bias편향)값을 계속 바꿔가면서 cost가 최소화가 되는 방향으로 학습한다.
손실함수를 최소화하여 직선과 점의 거리를 가깝게하면 모델이 잘 학습되었다고 말할 수 있다.
다중 선형 회귀 Multi-variable linear regression
입력값이 2개 이상이 되는 문제를 선형 회귀로 풀고 싶을 때 다중 선형 회귀를 사용합니다.
이진 분류 Binary classification
출력값이 불연속적일때 사용한다. 예를들면 출력값이 0 또는 1, True or False 이진 클래스(Binary class)로 나눌 수 있는 경우이다.
다중 분류 Multi-class classification, Multi-label classification
class가 여러개인 경우에 사용한다.
¶ 문제를 정의할때 input과 output 값을 먼저 정한 후 output값에 따라서 학습방법을 정의하고 문제를 접근하면 좋다
손실함수를 최소화하는 방법
경사하강법 (Gradient descent method)
목표는 손실 함수를 최소화(Optimize)하는 것이다. 손실 함수를 최소화하는 방법은 이 그래프를 따라 점점 아래로 내려가야한다. 컴퓨터는 사람처럼 수식을 풀 수 없기때문에 경사 하강법이라는 방법을 써서 점진적으로 문제를 풀어간다. 처음에 랜덤으로 한 점으로부터 시작합니다. 좌우로 조금씩 그리고 한번씩 움직이면서 이전 값보다 작아지는지를 관찰합니다. 한칸씩 전진하는 단위를 Learning rate라고 부르죠. 그리고 그래프의 최소점에 도달하게 되면 학습을 종료한다.
머신러닝 모델이 학습을 잘하기 위해서는 적당한 Learning rate를 찾는 노가다가 필수!
만약 Learning rate가 작다면 초기 위치로부터 최소점을 찾는데까지 많은 시간이 걸릴 것이다.
반대로 만약 Learning rate가 지나치게 크다면 우리가 찾으려는 최소값을 지나치고 검은 점은 계속 진동하다가 최악의 경우에는 발산하게 될 수도 있다. (Overshooting)
또한 Learning rate를 잘못 설정할 경우 Local cost minimum에 빠질 가능성이 높다.
최대한 Global cost minimum을 찾기 위해 좋은 가설과 좋은 손실 함수를 만들어서 기계가 잘 학습할 수 있도록 만들어야하고 그것이 바로 머신러닝 엔지니어의 핵심 역할이다.
데이터셋 분할
Training set (학습) = 교과서
- 머신러닝 모델을 학습시키는 용도, 전체 데이터셋의 80%차지
Validation set (검증) = 모의고사
- 머닝러신 모델의 성능 검증, 또는 튜닝 지표의 용도로 사용. 이 데이터는 정답 라벨이 있고, 학습 단계에서 사용하기는 하지만, 모델에게 데이터를 직접 보여주지는 않으므로 모델의 성능에 영향을 미치지는 않는다.
Test set (평가 테스트) = 수능
- 정답 라벨이 없는 실제 환경에서의 평가 데이터셋
'AI 웹 개발 과정 > 실전 머신러닝' 카테고리의 다른 글
07. CNN / 전이 학습 (0) | 2022.05.16 |
---|---|
06. 3주차 실습 - 딥러닝 XOR / MNIST 데이터셋 분류 (0) | 2022.05.16 |
04. 2주차 실습 : 이진논리회귀 / 다항논리회귀 / 전처리 (1) | 2022.05.14 |
03. 논리 회귀 / sigmoid / softmax / crossentropy / 전처리 (정규화, 표준화) (0) | 2022.05.14 |
02. 1주차 실습 : kaggle / tensorflow & keras / cost function / optimizer / learning rate (0) | 2022.05.13 |