#1 - 기계학습과 딥러닝 이란?
기계학습이란?
- 기계학습 : 컴퓨터가 투입된 데이터를 분석하고 추론하여 명시적인 지시 없이 테스크를 수행하도로 하는 알고리즘의 일종
ex)- 스팸메일 분류 시스템 ‘하드코딩’ VS ‘기계학습’
- 하드코딩 : 스팸메일의 특징을 사람이 직접 찾고, 그 특징을 사람이 실제로 코드에 넣어서 스펨메일을 분류
- 기계학습 : 스펨메일의 특징을 스스로 파악하고, 해당 메일이 스펨메일인지 확률에 근거하여 분류
- 스팸메일 분류 시스템 ‘하드코딩’ VS ‘기계학습’
- 기계학습 모델 ; 데이터가 실제로 들어있는 레이어와 그 사이를 연결한 형태 (perceptron)
- 레이어(layer) : 사전적 의미로 Layer는 층을 의미함. 기계학습에서는 실제로 데이터나 변수가 저장되는 곳을 의미
- 가중치(weight) : 하나의 노드에 포함된 데이터가 연결된 다음 노드의 데이터에 얼마나 큰 영향을 미치는지 표현하는 파라미터
- 편향(vias) : 가중치가 관여하는 영향을 제외한, output데이터에 직접 영향을 주는 파라미터
- 기계학습 방법
- 지도학습(supervised learning) : 훈련 데이터를 분석할 때 가이드라인을 제공하여 주어진 데이터가 어떤 종류인지 분류하게 함
- 데이터에 포함된 속성을 벡터형태로 표현하고, 각각의 벡터에 대하여 실제 데이터가 원하는 결과가 무엇인지 유추하는 회귀분석 과정을 통함
- 알맞는 방법을 통해 기존 훈련 데이터로 부터 얻지 못한 상황까지도 분석할 수 있게 일반화된 처리가 필요(ex. 사람과 동물을 구분)
- 학습 과정에서 각각의 입력 데이터는 라벨을 가지고, 해당 라벨을 바탕으로 학습하여 확률에 근거한 분류를 함
- 비지도학습(un-supervised learning) : 지도학습고는 반대로 가이드라인을 제공하지 않고, 주어진 데이터가 어떤 종류인지 분류하게 함
- 데이터가 자체가 부족하거나, 데이터 수집에 너무 많은 비용이 소모될 때 사용함
- 데이터는 라벨을 가지고 있지 않고, 분석된 데이터에서 유사도를 직접 파악하여 확률에 근거한 분류를 한다.
- 강화학습(reinforcement learning) : 어떠한 환경안에서 현재 상태와 선택가능한 행동들중에서 최적의 동작을 하게 하는 학습방법
- 선택 가능한 행동들에 보상을 부여하여 보상을 최대화 하는 행동 또는 행동 순서를 선택하게 한다.
- 만약 행동이 비정상 적이거나, 개발자의 의도와 맞지 않더라도 명시적인 정정이 일어나지 않는다. (즉, 이상하게 움직여도 보상이 크면 OK)
- 게임이론, 제어이론, 정보이론, 통계학, 유전 알고리즘 분석 에서 주로 연구 된다.
- 지도학습(supervised learning) : 훈련 데이터를 분석할 때 가이드라인을 제공하여 주어진 데이터가 어떤 종류인지 분류하게 함
지도학습 | 비지도학습 | 강화학습 |
---|---|---|
레이블이 지정된 데이터 처리 | 레이블이 지정되지 않은 데이터 처리 | 보상의 최대를 구하는 데이터 처리 |
예측이 쉽다 | 예측이 어렵다 | 예측이 어렵고, 결과가 비정상적일 수 있다 |
딥러닝이란?
- 기계학습의 perceptron에 숨겨진 레이어(hidden layer)가 추가된 형태의 학습 알고리즘의 일종
-
인간의 사고와 비슷하게 구현해보려는 시도에서 등장 (Neural Network)
- hidden layer : 생각을 잠시 저장하는 공간
- 특성추출(feature extraction) : 동일한 특징이나, 특정 알고리즘에 따라 분류하여 각각의 hidden layer node 로 넘어수
- 정확히 예측 되었는지 평가하기 위하여 손실함수(Loss function)을 사용함
- 컴퓨터가 연산을 반복하면서 정답과 가장 근접한 weight를 찾도록 유도한다.
- 손실함수(Loss fucntion) : 총오차를 계산하는 수식, 일반적인 신경망 학습에는 MSE와 Cross Entropy를 사용한다.
- MSE 와 MAE의 차이 비교
종류 | 장점 | 단점 |
---|---|---|
Mean Squared Error | - 실제 정받에 대한 정답률의 오차뿐만 아니라 다른 오답에 대한 정답률의 오차도 함께 계산한다. - MAE와 달리 최적값에 가까워질수록 이동값이 다르게 변화하기 때문에 최적값에 수렴하기 용의하다. |
- 값을 제곱하기 때문에 절댓값이 1미만인 겂은 더 작아지고, 1보다 큰 값은 더 커지는 왜곡이 발생할 수 있다. - 제곱하기 때문에 특이값의 영향을 많이 받는다. |
Mean Absolute Error | - 전체 데이터의 학습된 정도를 쉽게 파악할 수 있다. | - 어떤 식으로 오차가 발생했거나 음수인지 양수인지 알 수 없다. - 최저점에서 연속적이지 못하다. 따라서 최저값에 수렴하기가 어렵다. |
- Entropy
- 엔트로피는 정보량의 기댓값을 나타내는 척도라고 할 수 있다. (확률 분포의 무질서도 or 불확실성 등)
- 정보가 항상 일정한 데이터를 가지고 있다가도, 특별한 데이터가 등장하면서 예측했던 데이터와 크게 다를때 엔트로피가 크다고 할 수 있다.
- 예시로 카페에서 항상 아메리카노를 먹는 손님이 어느날 갑자기 카페라떼를 시키는 것과 같이 예상하기 어려운 상황을 엔트로피가 크다고 한다.
- Cross Entropy
- Entropy와는 다르게 두가지 확률 분포가 얼마나 비슷한지를 수리적으로 나타내는 개념이다.
- (필자는 초기에 Cross Entropy가 확률(probability)학에서 사용되는 Co-Variance와 유사하다고 생각했다.)
- Cross Entropy에서는 실제값과 예측값이 맞는 경우에는 0으로 수렴하고 값이 틀릴경우에는 값이 커진다. 따라서 두 확률 분포가 얼마나 다른지 알수 있다.
- Binary Cross Entropy
- 이진 분류(ex. 맞다 vs 아니다, 같다 vs 다르다, 양성 vs 음성 등)훈련을 해야 할때 사용하면 유리하다.
- 예측값은 0과 1사이의 값으로 나오며 0또는 1에 가까울수록 둘중 하나의 클래스에 가깝다.
- Categorical Crossentropy
- 분류해야될 클래스가 3개 이상일때 사용된다. (ex. 사람 vs 고양이 vs 개 등)
- 라벨을 one-hot encoding 형태로 제동될 때 사용가능하다.
- softmax function과 함께 쓰이는 일이 많다.
- Sparse Categorical Crossentropy
- Catergorical Crossentropy와 유사하지만 라벨이 0, 1, 2 와 같이 정수로 제공될 때 사용한다. (ex. 사람 = 0 vs 고양이 = 1 vs 개 = 2 등)
- hidden layer가 “뇌처럼 생각하는 공간” 역할을 잘 수행하기 위해서는 활성함수를 사용해야한다. 이는 다음 포스트에서 다루겠다.
😺 오타나 논리적 오류 지적은 언제든지 환영합니다!😺
항상 읽어주셔서 감사합니다~ 🙏
Leave a comment