이전 방법들의 한계
멀티 클래스 분류기, 아달린, 퍼셉트론의 한계는 XOR 문제로 한 번에 정리됨. 같이 XOR 문제가 무엇인지 알아보자.
XOR 문제
이러한 관측값들이 존재할 때, 리그레션을 이용해서 XOR 상황을 이진 분류하는 방법을 찾기가 불가능한가?에 관한 것임. OR의 경우엔 결정 경계를 그리기가 매우 간단하지만 XOR의 경우엔 좀 복잡함.
멀티 클래스 분류기를 사용하는 방법이 있겠지만, 결국 4가지의 클래스로 만들어서 분류를 해야함. 저 정도로 간단한 수준에선 그런 접근이 괜찮지만 분류가 복잡하면 복잡할수록 그게 불가능해짐.
그래서 이 문제는 초기 인공지능 개발에서 꽤 큰 문제였지만, 결국 '은닉층'의 도입으로 해결되었음.
그림2, 이제부턴 퍼셉트론을 뉴런이라 부르고 기울기는 무게라고 부른다.
멀티 클래스 분류기로 나온 결과를 그대로 임계함수에 가져가지 않고 다시 한 번 더 뉴런에 가도록하면 XOR 문제를 해결할 수 있게 됨.
그림2 상황을 예를 들면:
내 첫 층은 2개의 멀티 클래스 분류를 하여 출력층의 값이 들어가고 나온 값인 [a_1, a_2]를 만들어낸다. 이 벡터는 아마 [0, 1] ... [0, 0] 이런 모양을 가질 것이다. 그러면 출력층의 뉴런의 파라미터(무게)를 w_1 = -1, w_2 = 1로 주면 XOR에서도 이진 분류가 가능해진다.
ANN
그림3와 같은 구조를 ANN이라고 부르는데, 가장 큰 특징은 앞서 말한 은닉층(히든 레이어가)이 존재한다는 것임.
그리고 이러한 뉴런들이 세로로 만드는 층을 우린 레이어라고 단위한다.
보면 계산이 입력층 -> 은닉층 -> 출력층 순서대로 되는 것을 볼 수 있음.
DNN
만약 히든 레이어가 가로로 길게 층층이 싸여진 경우, 우린 그걸 깊다(deep하다)고 표현하여 Deep Neural Network(소위 딥러닝)라고 부른다. 그림4를 보면 왼쪽의 ANN은 한개의 은닉층 밖에 없지만, 오른쪽의 DNN은 더 많은 은닉층이 존재한다.
DNN은 위와 같은 난잡한 관측값도 인간이 하듯 분류해버림. 그림5는 텐서플로우 플레이그라운드란 사이트의 스샷인데, 여기에 들어가서 직접 DNN의 분류 과정을 이해해 볼 수 있음.
DNN의 문제
앞서 본 ANN의 경우엔 학습을 계산하는 것이 상대적으로 매우 쉽고, 우리가 이전의 글에서 배운 알고리즘을 사용해도 문제가 없었음. 하지만 DNN은 그런 알고리즘들로 접근해선 학습을 계산하는 것이 불가능함.
그리고 2000년대 전까지만 하더라도(그라디언트 계산에서의 문제나 데이터 부족의 문제도 있었지만) 당시 컴퓨터의 전산 능력으론 DNN의 구현이 불가능했었음. 하지만 게임 산업을 등에 타고 급속도로 발전한 GPU(그래픽 카드)를 이용함으로써 수억개의 파라미터 학습이 가능해졌음. 그리고 계산 방법에 있어서도 솔루션이 등장했기 때문에 현대에 와서는 DNN을 사용하는게 가능해진거임.
그라디언트 계산 문제들에서의 솔루션에 대해 약간의 직관을 주자면:
DNN도 뉴런을 훈련할 때, 우리가 배웠던 GD(경사 하강법)의 논리를 그대로 사용함. 하지만 앞서 말한 그라디언트를 계산할 때의 문제 때문에, 비용함수보다는 손실함수를, GDR보다는 SGD(또는 미니-배치)를 사용하고, 백 프로파게이션란 일반적이지 않은 컴퓨터 계산 방식을 쓰며, 또 그라디언트 초기화라는 솔루션이 도입된다.
끝
위에서 말한 솔루션들은 설명하지 않겠음. 그러기 위해서는 convex set, 다변수 미분적분, 계산 그래프, 분포의 이해 등 어느 정도 수학적 직관이 필요함. 또 여기까지가 학부생 정도의 수준이기 때문, 원하면 직접 찾아보셈.
2025 agi는 과학
잘봤다노