본문 바로가기

머신러닝, 딥러닝

신경망 학습

“ 학습 “ 이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 의미한다.

신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 소개한다.

이 손실 함수의 결괏괎을 가장 작게 만드는 가중치 매개변수를 찾는 것이 목표이다.

손실 함수의 값을 가급적 작게 만드는 기법으로, 함수의 기울기를 활용하는 경사법을 알아보자.

신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. 데이터에서 학습한다는 것은 가주이 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다.

수작업으로 매개변수를 정해주는 것은 매우 쓸모없고, 불가하다.

NOTE_

퍼셉트론도 직선으로 분리할 수 있는 ( 선형 분리 기능 ) 문제라면 데이터로부터 자동으로 학습할 수 있다. 선형 분리 가능 문제는 유한 번의 학습을 통해 풀 수 있다는 사실이 퍼셉트론 수렴 정리

( perceptron convergence theorem )로 증명 되었다. 하지만 비선형 분리 문제는 자동으로 학습할 수 없다.

Machine Learning은 “ 데이터 “ 가 생명이다. 데이터가 없으면 아무것도 시작하지 못한다.

데이터의 특징 ( feature )을 추출하고 그 특징의 패턴을 기계학습 기술로 학습하는 방법이 있다. 여기서 말하는 특징은 입력 데이터 에서 본질적인 데이터를 정확하게 추출할 수 있도록 설계된 변환기를 가리킨다.

NOTE_

이미지의 특징은 보통 벡터로 기술하고, 컴퓨터 비전 분야에서는 SIFT, SURF, HOG등의 특징을 많이 사용한다.

이런 특징을 사용하여 이미지 데이터를 변환하고, 변환딘 벡터를 가지고 지도 학습 방식의 대표 분류 기법인 SVM, KNN 등으로 학습할 수 있다.

아래의 표에서 검은색 테두리는, 사람이 개입하지 않는 다는 것을 의미한다.

NOTE_

딥러닝을 종단간 기계학습 ( end to end machine learning ) 이라고도 한다. 여기서 종단간은 “ 처음부터 끝까지 “ 라는 의미로, 데이터에서 목표한 결과를 사람의 개입 없이 얻는다는 뜻을 가지고

있다.

기계학습 문제는 데이터를 훈련 데이터 ( training data ) 와 시험 데이터( test data ) 로 나눠 학습과 실험을 수행한다.

우선 훈련 데이터만 사용하여 학습하면서 최적의 매개변수를 찾는다. 그런 다음 시험 데이터를 사용하여 앞서 훈련한 모델의 실력을 평가하는 것이다.

왜 훈련 데이터와 시험 데이터를 나누는가 ? : 우리가 원하는 것은 범용적으로 사용할 수 있는 모델이기 때문이다. 이 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험데이터를 분리하는 것.

범용 능력은 아직 보지 못한 데이터 ( 훈련 데이터에 포함되어있지 않은 데이터 ) 로도 문제를 올바르게 풀어내는 능력을 의미한다.

데이터셋 하나로만 매개변수의 학습과 평가를 수행하면 올바른 평가가 될 수 없다.

수중의 데이터셋은 제대로 맞히더라도, 다른 데이터셋에서는 엉망인 일도 벌어진다. 참고로 한 데이터셋에만 지나치게 최적화된 상태를

OVERFITTING 이라고 한다. 기계학습에서 중요한 과제중 하나 이다.