신경망 학습에서 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다.
이번 장에서는 손실 함수(Loss Function)라는 것이 나온다. 비용 함수(Cost Function)라고도 부른다고 한다.
신경망이 학습할 수 있도록 해주는 지표이며 이 손실 함수의 결괏값을 가장 적게 만드는 가중치 매개변수를 찾는 것이 목표이다.
앞으로 이 손실 함수의 값을 가급적 작게 만드는 기법으로, 함수의 기울기를 활용하는 경사법이 나온다.
데이터 주도 학습
데이터에서 답을 찾고 패턴을 발견하고 이야기를 만드는 것이 기계학습이다. (패턴 찾기)
즉, 수집된 데이터 셋에 존재하는 패턴을 학습하여 유용한 알고리즘을 개발하는 것이다.
예를 들어 이미지에서 '5'라는 숫자를 인식하는 프로그램을 구현한다고 해보자. 그림 [4-1]과 같은 손글씨 이미지를 보고 5인지 아닌지를 알아보는 프로그램을 구현하는 것이 목표이다.
사람이라면 이미지를 보고 '5'인지 아닌지 쉽게 인식할 수 있지만, 이를 판별하는 알고리즘으로 만들기는 쉽지 않을 것이다.
기계학습을 통해 알고리즘을 만든다면 이미지에서 특징(feature)을 추출하고 그 특징의 패턴을 학습할 것이다. 여기서 말하는 특징은 입력 데이터에서 중요한 데이터를 정확하게 추출할 수 있도록 설계된 변환기를 가리킨다. 이런 특징을 사용해 이미지 데이터를 벡터로 변환하고, 변환된 벡터를 가지고 학습한다.
이와 같이 기계학습에서는 데이터에서 패턴을 찾아내는 역할을 '기계'가 담당하지만, 이미지를 벡터로 변환할 때 사용하는 특징은 여전히 '사람'이 설계해야 한다. 예를 들어 사람이 특징을 잘 설계하지 않으면 좋은 결과를 얻을 수 없다.
반면에 신경망(딥러닝) 방식은 [그림 4-2]의 아래처럼 사람이 개입하지 않는다. 신경망은 위 기계학습 방식과 다르게, 이미지를 '있는 그대로' 포함된 중요한 특징까지 '기계'가 스스로 학습한다. '처음부터 끝까지' 학습하기 때문에 신경망(딥러닝)을 종단간 기계학습(end-to-end machine learning)이라고도 한다.
훈련 데이터와 시험 데이터
기계학습을 할 때, 일반적으로 훈련 데이터(training data)와 시험 데이터(test data)로 나눠 학습을 한다.
먼저 훈련 데이터로 모델을 학습을 시켜 최적의 매개변수를 찾고, 그 다음 시험 데이터를 사용해 학습시킨 모델의 성능을 평가한다.
이렇게 데이터를 나누는 이유는 학습하지 않은 데이터(훈련 데이터에 없는 데이터)로도 문제를 올바르게 풀어내는지 풀어내는 능력인 범용 능력을 평가하기 위함이다.
참고로 한 데이터셋에만지나치게 최적화된 상태를 오버피팅(over fitting)이라고 한다. 오버피팅을 하게 되면 훈련 데이터에 대해 치우치게 학습되어 보통 새로운 데이터에 대해 성능이 낮다.
'Data Science > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
손실함수 (0) | 2023.07.25 |
---|---|
Chapter 3.4 3층 신경망 구현하기 (1) | 2023.05.25 |
Chapter 3.3 다차원 배열의 계산 (0) | 2023.05.24 |
Chapter 3.2 활성화 함수 (0) | 2023.05.24 |
Chapter 3.1 퍼셉트론에서 신경망으로 (0) | 2023.05.23 |