신경망
퍼셉트론
퍼셉트론은 뉴런에서 착안한 아이디어로 다층 퍼셉트론과 딥러닝에서 핵심 개념이다. 입력층과 출력층으로 구성되며 i 번째 에지는 xi와 wi를 곱해서 출력층으로 전달된다. 출력노드 o는 d+1개의 곱셈을 모두 더한 s를 계산하고 활성함수를 적용한다. 활성함수는 뉴런을 활성화하는 과정을 모방한 함수로 퍼셉트론은 계단함수를 사용한다.
학습 알고리즘
사람이 어떤 것을 학습하는 원리와 아주 유사하다. 예를 들어 사람이 수영을 한다고 하자. 수영을 위해 동작을 취하고 만족스러우면 그대로 수영하면 되는데, 만족스럽지 않다면 약간 조정해서 새로운 자세로 동작을 수행한다. 이처럼 조금 더 나은 방향을 향해 개선하는 것인데, 신경망은 가중치를 최적화하는 방향으로 개선한다. 이때 손실함수 J를 계산해서 J(w) 값을 줄이는 방향으로 수정하는 것이다.
손실함수는 1. w가 훈련집합의 샘플을 모두 맞히면 J(w) = 0, 2. w가 틀리는 샘플이 많을수록 J(w)는 커진다. 는 2가지 조건을 만족해야 한다. 즉, 틀린 샘플이 많을수록 J를 증가시킨다.
다시 돌아와서, 학습 알고리즘은 경사하강법의 원리를 이용한다. 즉, 손실함수 J의 최저점을 찾아야 한다. 방향은 알지만 얼마나 가야하는지 이동량에 대한 정보가 없기 때문에 학습률(learning rate)를 곱해서 조금씩 이동한다. 값이 너무 작으면 학습하는데 오래 걸려서 적당히 1보다 작은 수를 곱해야 한다.
다층 퍼셉트론(Multi-Layer Perceptron)
기존의 퍼셉트론은 선형적이라는 한계가 존재한다. 그래서 선형적으로 분리가 불가능한 경우에는 오류률이 매우 높다. 다층 퍼셉트론은 입력층와 출력층 사이에 은닉층을 추가해서 비선형으로 확장하는 방법이다.
두 개의 퍼셉트론을 병렬로 결합해서 특징 공간을 변환해 서로 다른 공간으로 분리할 수 있다. 퍼셉트론은 OR 문제는 풀 수 있지만 XOR 문제는 풀 수 없었다. 다층 퍼셉트론으로 이를 해결할 수 있다.
정리하면 다층 퍼셉트론은 아래와 같은 구조를 가진다. 은닉층의 노드 개수는 하이퍼 매개변수로 작용하며, 은닉 노드가 많아지면 은닉층의 용량이 증가하고 overfitting의 가능성이 높아진다.
이 과정을 행렬로 표현하면 아래와 같다.
각 샘플의 오류 값을 측정하는 손실함수는 아래와 같은 식을 사용한다. 오차를 제곱해서 루트를 씌우면 된다.
활성함수
퍼셉트론은 계단함수를 사용하는데, 예측 결과를 0에서 1 사이의 확률로 표현해야 하는 경우에 계단함수는 부적절하다. 그래서 다층 퍼셉트론은 Sigmoid, 딥러닝은 ReLU, softmax를 주로 사용한다.
학습 알고리즘
다층 퍼셉트론은 오류 역전파 알고리즘(Back Propagation Algorithm)으로 학습한다. 은닉층이 있고 활성함수가 sigmoid이기 때문에 퍼셉트론 학습 알고리즘보다는 복잡하지만 기본 원리는 동일하다.
신경망의 출력 베터 o가 부류 벡터 y와 같을 수록 매개변수 U1, U2는 데이터를 더 잘 인식하기 때문에, o와 y가 가까워지도록 U1, U2를 갱신해주어야 한다. 그래서 오차가 클수록 갱신하는 양이 커진다.
그래서 샘플 하나의 오차를 측정하는 손실함수를 표현하면 다음과 같다. 계산 편의를 위해 손실의 오차를 평균을 내어서 계산한다. 가중치 갱신 규칙도 퍼셉트론과 동일하다.
위의 과정을 통해 학습 알고리즘을 그려보면, 아래와 같다.
하이퍼 매개변수 최적화
하이퍼 매개변수란 학습률, 훈련 반복 횟수와 같이 모델을 학습할 때 조정할 수 있는 변수값을 말한다. Grid Search, Randomized Search 기법을 사용해 값을 최적화한다.
'CS > 인공지능' 카테고리의 다른 글
[인공지능] Reinforcement Learning (3) | 2024.12.11 |
---|---|
[인공지능] CNN(Convolutional Neural Network) (0) | 2024.11.30 |
[인공지능] 딥러닝과 텐서플로 (1) | 2024.11.30 |
필기 숫자 데이터 인식 성능 비교 (0) | 2024.11.30 |
[인공지능] 머신러닝 기초 (1) | 2024.10.28 |