인지야공/강의 요약/5번째 글
딥러닝 — 사람이 3을 3으로 읽는 이유와 그 밑의 수학
강의 첫 시간의 예시가 좋았다. 손으로 쓴 숫자 3을 여러 개 보여 준다. 해상도도 다르고 모양도 제각각인데 사람은 전부 3으로 읽는다.
눈 안의 시지각 세포가 빛을 받아들이는 패턴은 그림마다 완전히 다르다. 그런데 시각피질은 그 차이에도 불구하고 두 이미지가 같은 개념을 가리킨다고 판단한다. 딥러닝은 이 원리를 알고리즘으로 옮긴 것이다.
딥러닝과 퍼셉트론
딥러닝 — 뉴런으로 구성된 레이어를 여러 개 연결해 만든 네트워크다. 네트워크를 어떻게 구성하느냐에 따라 X-NN 으로 불린다. CNN, RNN 이 그 예다.
퍼셉트론 — 신경망의 기원이 되는 알고리즘이다. 하나의 뉴런으로 다수의 입력을 받아 최종 결과를 0 또는 1로 출력한다. 가중치(Weight)는 신호의 결과에 주는 영향력을 조절하는 역할을 한다.
퍼셉트론에는 결정적 한계가 있었다 — XOR 연산이 불가능하다. 이걸 극복하려고 나온 것이 다층 퍼셉트론(MLP)이고, 다수의 뉴런으로 구성된 여러 층 구조를 갖춘 딥러닝이 여기서 시작한다.
XOR 이 안 되는 이유는 직선 하나로 나눌 수 없기 때문이다. 층을 쌓아 비선형 경계를 만들면 풀린다. “층을 왜 쌓는가”에 대한 가장 오래된 답이 이것이다.
활성화 함수
| 위치 | 함수 |
|---|---|
| 입력층 → 은닉층 | ReLU |
| 은닉층 → 출력층 | 시그모이드 |
이 배치가 기본이다. ReLU 는 양수 구간에서 기울기가 1로 유지돼 기울기 소실을 덜 겪고, 출력층의 시그모이드는 0과 1 사이의 확률을 낸다.
순전파와 역전파
| 하는 일 | |
|---|---|
| 순전파 | 입력에서 출력을 얻는 과정. 정답과 출력값의 차이를 구할 수 있다 |
| 역전파 | 오차 를 기반으로 가중치 를 업데이트하기 위한 과정 |
순전파는 값을 앞으로 흘리고, 역전파는 오차를 뒤로 흘린다. 그리고 그 오차를 각 가중치가 얼마나 책임져야 하는지 계산해 갱신한다. 신경망 학습의 전부가 이 두 줄이다.
머신러닝에 필요한 수학
여기부터는 강의에서 항목만 나열돼 있던 부분이라, 정의를 다시 채워 정리했다.
벡터와 행렬
| 특징 벡터 Feature Vector | — 하나의 샘플을 수치로 표현한 것 |
| 설계 행렬 Design Matrix | 특징 벡터를 행으로 쌓은 것. 행이 샘플, 열이 특징 |
| 전치행렬 | — 행과 열을 바꾼 것 |
| 역행렬 | 를 만족하는 행렬 |
머신러닝에서 데이터는 항상 이 형태로 들어온다. df.shape 이 (n_samples, n_features)
인 것이 곧 설계 행렬이다.
고윳값과 고유벡터 — 를 만족하는 와 다. 행렬을 곱해도 방향이 바뀌지 않고 크기만 변하는 벡터가 고유벡터고, 그 배율이 고윳값이다. PCA 가 공분산 행렬의 고유벡터를 주성분으로 삼는 이유가 여기 있다 — 데이터가 가장 많이 퍼진 방향이 곧 가장 큰 고윳값의 고유벡터다.
행렬 곱의 성질
| 법칙 | 성립 |
|---|---|
| 교환법칙 | 성립하지 않는다 |
| 결합법칙 | 성립 |
| 분배법칙 | 성립 |
교환법칙이 안 된다는 게 실무에서 자주 사고를 낸다. 신경망의 층은 결국 행렬곱의 연쇄인데, 순서를 바꾸면 차원부터 안 맞는다. 반대로 결합법칙이 성립하기 때문에 여러 변환을 하나의 행렬로 미리 합쳐 둘 수 있다 — 영상처리의 동차 좌표 변환이 이 성질을 쓴다.
내적과 노름
내적은 두 벡터의 대응 성분을 곱해 더한 것이다.
노름은 벡터의 크기다.
L1 과 L2 의 구분이 규제(Regularization)에서 그대로 다시 나온다. L1 은 가중치를 정확히 0 으로 만들어 특징 선택 효과를 내고, L2 는 전반적으로 크기를 줄인다. 절댓값 함수의 꼭짓점이 원점에 있기 때문에 생기는 차이다.
코사인 유사도
내적을 두 벡터의 크기로 나눈 것, 즉 각도만 남긴 값이다. 에서 사이이고 1에 가까울수록 방향이 같다.
크기를 지운다는 점이 핵심이다. 문서 두 개를 단어 빈도 벡터로 만들었을 때, 긴 문서는 모든 값이 크게 나온다. 유클리드 거리로 재면 길이가 다르다는 이유만으로 멀어 보인다. 코사인 유사도는 “무엇에 대해 이야기하는가”만 비교한다. 추천 시스템과 텍스트 마이닝에서 기본으로 쓰이는 이유다.
다음으로
이 강의의 뒷부분은 OpenCV 로 넘어간다. 영상 데이터를 다루는 내용이라 영상처리 정리에 합쳐 두었다. 신경망 구조의 자세한 내용 — CNN, RNN, LSTM, 어텐션 — 은 패턴인식 정리 쪽에 있다.