2024. 6. 26. 15:36ㆍinformation/AI
특징점을 추출해서 스스로 학습시키는 모델이 머신러닝이였습니다. 그렇다면 특징점도 스스로 뽑게 할 순 없을까?라는 의문으로부터 시작된 방법이 표현학습입니다. 표현학습은 데이터들로부터 특징점 추출을 자동으로 학습하는 기계학습의 일종입니다. 이러한 표현학습을 좀 더 잘하는 학습을 딥러닝이라고 보면 됩니다. 딥러닝은 인공신경망에 기반하여 특징점을 추출하는 기계학습의 일종입니다.
인공신경망은 생물학적인 신경망에 영감을 받은 것으로 노드 간의 수많은 연결(조합)으로 만들어집니다.
뉴런은 정보를 취합하고 판단하고 출력합니다. 여기에 영감을 받은 인공 신경망이 퍼셉트론입니다.
위와 같이 계단처럼 생긴 함수를 step func이라하고, 입력 신호의 가중치 합이 어떤 임계값을 넘는 경우에만 뉴런이 활성화되어 1을 출력하고 그렇지 않으면 0을 출력합니다. 여기서 b(바이어스)가 임계값 역할을 하게 됩니다.
위와 같이 0보다 크면 1을 출력, 0보다 작으면 0을 출력하는 것을 알 수 있습니다. w*x+b의 식은 직선 형태를 띕니다. 따라서 퍼셉트론은 선형 분류자의 일종이라 할 수 있습니다.
하지만 퍼셉트론은 비선형적인 문제는 해결이 불가능해야합니다. 예를 들어 and나 or문제는 선형으로 풀 수 있지만 ,xor문제와 같은 비선형적으로 구분해야하는 문제를 해결하는데 한계가 있었고 복잡한 패턴 인식 문제를 해결하기에는 단일 계층 구조(은닉층이 없고 입력층과 출력층으로 구성됨)가 너무 단순했습니다.
그래서 나오게 된게 다층 퍼셉트론(multilayer perceptron:MLP)입니다. 위의 그림과 같이 입력층과 출력층 사이에 은닉층을 가지고 있는 신경망입니다. 위와 같이 뉴런의 개수를 대폭 늘리고 은닉층을 도입하였습니다. 앞에서는 미분이 불가능한 계단모양의 함수(step func)를 활성화 함수(activation func)으로 사용하였지만, MLP에서는 다양한 미분 가능한 비선형 함수들을 활성화 함수로 사용합니다.
MLP를 학습시키기 위해서는 역전파 알고리즘이 필요합니다. 오차 역전파(backpropagation)라는 기법이 활용되는데 순방향으로 계산하여 출력을 계산한 후, 실제 출력과 우리가 원하는 출력 간의 오차를 계산합니다. 이 오차를 역방향으로 전파하여 오차를 줄이는 방향으로 가중치를 변경하게 됩니다.
가중치를 변경하는 과정에서 미분값을 이용하여야 합니다. 미분값(접선의 기울기)가 음수라면 가중치는 증가시키고 반대로 미분값(접선의 기울기)가 양수라면 가중치는 감소시켜야 합니다. 이때, 손실함수(정답과 신경망 출력 사이의 오차)에 대한 각 가중치의 기울기를 구하는데 사용되는 기법은 체인룰(chain rule)이라고 합니다.
가중치를 업데이트하기 위해서 경사 하강법(Gradient descent)가 수행됩니다. 현재 위치에서 그래디언트 값을 계산한 후에 그래디언트 반대 방향으로 움직이는 방법입니다.
MLP에서 은닉층의 개수를 증가시킨 것이 DNN(심층신경망)이라고 합니다.
딥러닝은 컴퓨터 시각, 음성 인식, 기계 번역 등에 사용되고 있고 훈련자료의 양이 늘어나고 컴퓨터의 발달, 각종 학습 기법의 발달로 딥러닝 연구가 활발히 진행되고 있으며 다양한 연결 구조를 갖는 신경망 구조가 제안되어 좋은 성능을 확보하고 있습니다.
'information > AI' 카테고리의 다른 글
[머신러닝] (0) | 2024.06.26 |
---|---|
[유전자 알고리즘] (0) | 2024.06.20 |
[퍼지논리] (0) | 2024.06.20 |
[전문가 시스템] (0) | 2024.06.20 |