프로그래머인 저는 도메인 전문가를 통해 도메인 지식을 학습하고 알고리즘화할 수 있는 도메인 지식을 프로그램합니다.
그런데 어떤 도메인(음성 인식, 영상 인식 등)의 지식들은 알고리즘화하기 어려워 프로그램으로 작성하기 어렵습니다. 알고리즘화한다고 해도 효용성이 떨어져 프로그램으로 작성할 필요를 느끼지 못하는 경우도 있습니다.
도메인 지식에서 규칙성을 찾을 수 없어 알고리즘화할 수 없는 경우 과학적인 접근법을 취할 수 있습니다.
과학자들은 먼저 많은 수의 관찰(데이터)로 시작해서 패턴(규칙성)을 찾습니다. 일정한 규칙성이 발견되면 가설(알고리즘)을 세우고 검증합니다. 검증된 이론으로 새로운 현상을 예측합니다.
음성 인식, 영상 인식 등은 사람이 직접 가설을 세우고 검증하기 어려운 분야 였던 것 같습니다. 머신러닝이 필연적으로 등장합니다. 머신러닝은 데이터를 학습해 알고리즘을 찾습니다. 신경망은 데이터를 학습해 매개변수 값을 조정함으로 스스로 프로그램을 짜고 검증합니다.
4.1 데이터에서 학습한다!
p107. 신경망의 특징은 학습할 수 있다는 점이다.
학습이란 데이터로부터 가중치 매개변수의 최적값을 결정한다는 뜻이다.
p110. 딥러닝은 종단간 기계학습(end-to-end machine learning)이라고 한다. 여기서 종단간은 처음부터 끝까지라는 의미로 데이터(입력)에서 목표한 결과(출력)를 사람이 개입 없이 얻는다는 뜻을 담고 있다.
기계학습 문제는 데이터를 훈련 데이터(training data)와 시험 데이터(test data)로 나눠 학습과 실험을 수행하는 것이 일반적이다. 우선 훈련 데이터만 사용하여 학습하면서 최저그이 매개변수를 찾는다. 그런 다음 시험 데이터를 사용하여 앞서 훈련한 모델의 실력을 평가하는 것이다.
4.2 읽고 신경망 학습의 지표인 손실 함수를 이해합니다.
p114 그림 4-3 밑의 설명 중 식 4.2에 대한 설명 부분은 처음 읽을 때 바로 이해되지 않았습니다. – log y 가 log 1/y라는 것과 log 1 = 0 이라는 것을 생각하면서 읽어야 합니다.
4.2.5 설명은 예술입니다. 이렇게 쉽고 명확하게 설명해주다니.
4.2 손실 함수
p112. 손실 함수는 일반적으로 평균 제곱 오차와 교차 엔트로피 오차를 사용한다.
p116. 데이터셋의 데이터 수가 매우 큰 경우 모든 데이터를 대상으로 손실 함수의 합을 구하는 것은 비현실적이다. 데이터 일부를 추려(무작위로) 전체의 ‘근사치’로 이용할 수 있다. 이 일부를 미니배치(mini-batch)라고 한다.
p119. 신경망의 어느 한 가중치 매개변수에 주목한다고 하자. 이때 그 가중치 매개변수의 손실 함수의 미분이란 ‘가중치 매개변수의 값을 아주 조금 변화 시켰을 때, 손실 함수가 어떻게 변하나’라는 의미이다. 만약 이 미분 값이 음수면 그 가중치 매개변수를 양의 방향으로 변화시켜 손실 함수의 값을 줄이고, 반대로 이 미분 값이 양수면 그 가중치 매개변수를 음의 방향으로 변화시켜 손실 함수의 값을 줄일 수 있다. 미분 값이 0이면 가중치 매개변수를 어느 쪽으로 움직여도 손실 함수의 값은 달라지지 않는다. 가중치 매개변수의 갱신은 거기서 멈춘다.
교차 엔트로피에 대한 좀 더 자세한 설명은 다음 링크를 참조합니다.
https://brunch.co.kr/@chris-song/68
4.3과 4.4를 읽고 수치 미분과 기울기에 대해서 이해합니다.
4.3 수치 미분, 4.4 기울기
p126. 변수가 여럿인 함수에 대한 미분을 편미분이라고 한다.
p127. 모든 변수의 편미분을 벡터로 정리한 것을 기울기(gradient)라고 한다.
p129. 기울기는 각 지점에서 낮아지는 방향을 가리킨다. 더 정확히 말하자면 기울기가 가리키는 쪽은 각 장소에서 함수의 출력 값을 줄이는 방향이다. 기울기를 잘 이용해 함수의 최솟값을 찾으려는 것이 경사법이다.
p130. 경사법은 현 위치에서 기울어진 방향으로 일정 거리만큼 이동한다. 그런 다음 이동한 곳에서도 마찬가지로 기울기를 구하고, 또 그 기울어진 방향으로 나아가기를 반복한다. 이렇게 해서 함수의 값을 점차 줄이는 것이 경사법이다.
p133. 신경망 학습에서도 기울기를 구해야 한다. 기울기는 가중치 매개변수에 대한 손실 함수의 기울기이다.
4.5를 읽고 학습 알고리즘을 구현합니다.
4.5 학습 알고리즘 구현하기
p137. 확률적으로 무작위로 골라낸 데이터에 대해 경사 하강법을 확률적 경사 하강법(Stockastic Gradient Descent, SGD)라고 한다.
p143. 에폭은 하나의 단위이다. 1에폭은 학습에서 훈련 데이터를 모두 소진했을 때의 횟수에 해당한다. 예컨대 훈련 데이터 10,000개를 100개의 미니배치로 학습할 경우, 확률적 경사 하강법을 100회 반복하면 모든 훈련 데이터를 소진한게 된다. 이 경우 100회가 1에폭이 된다.