신경망 (Neural Network)
기계학습과 인지과학에서 생물학의 신경망 (동물의 중추신경계중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다. 신경세포를 흉내 내며 어느 정도 이하의 자극은 무시된다.
퍼셉트론 (Perceptron)
퍼셉트론 (perceptron)은 인공신경망의 한 종류로서, 1957년에 코넬 항공 연구소(Cornell Aeronautical Lab)의 프랑크 로젠블라트 (Frank Rosenblatt)에 의해 고안되었다.
다층 퍼셉트론 (Multilayer Perceptron)
다층 퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층 방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향 (feedforward) 네트워크 또는 순전파라고 한다. 다층 퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층 퍼셉트론의 동작원리는 단층 퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층 퍼셉트론은 활성함수가 1개라는 점이고, 다층 퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러 개인 것이다. 다층 퍼셉트론의 동작 원리는 다음과 같다.
|
다층 퍼셉트론은 단층 퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층 퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 역전파시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.
경사 하강법 (Gradient descent)
경사 하강법 (Gradient descent)은 1차 근삿값 발견용 최적화 알고리즘이다. 기본 개념은 함수의 기울기 (경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것이다.
해당 함수의 최소값 위치를 찾기 위해 비용 함수 (Cost Function)의 경사 반대 방향으로 정의한 Step Size를 가지고 조금씩 움직여 가면서 최적의 파라미터를 찾으려는 방법이다. 여기에서 경사는 파라미터에 대해 편미분한 벡터를 의미하며 이 파라미터를 반복적으로 조금씩 움직이는 것이 관건이다.
경사 하강법에서는 학습시 스텝의 크기 (step size)가 중요하다. 학습률이 너무 작을 경우 알고리즘이 수렴하기 위해 반복해야 하는 값이 많으므로 학습 시간이 오래걸린다. 그리고 지역 최소값 (local minimum)에 수렴할 수 있다. 반대로 학습률이 너무 클 경우 학습 시간은 적게 걸리나, 스텝이 너무 커서 전역 최소값 (global minimum)을 가로질러 반대편으로 건너뛰어 최소값에서 멀어질 수 있다.
경사 하강법에도 약점이 있다. 경사 하강법은 현재 위치에서의 기울기를 사용하기 때문에 지역 최소값에 빠질 수 있다. 또한 무작위 초기화 (random initialization)로 인해 알고리즘이 전역 최소값이 아닌 지역 최소값에 수렴할 수 있다. 또한 평탄한 지역을 지나기 위해서 시간이 오래 걸리고 일찍 멈추어서 전역 최소값에 도달하지 못할수도 있다.
이와 같은 문제점을 해결하기 위해 사용하는 방법이 모멘텀이다. 쉽게 말해 기울기에 관성을 부과하여 작은 기울기는 쉽에 넘어갈 수 있도록 만든것이다. 즉, 공을 예로 들면 언덕에서 공을 굴렸을때, 낮은 언덕은 공의 관성을 이용하여 쉽게 넘어갈 수 있게 하여 지역 최소값을 탈출 할 수 있게 한다는 뜻이다.
'Learning-driven Methodology > ML (Machine Learning)' 카테고리의 다른 글
12. 토픽 모델링 (Topic Modeling) (0) | 2021.12.22 |
---|---|
11. 워드투벡터 (Word2Vec) (0) | 2021.12.22 |
09. 주성분 분석 (PCA)과 밀도기반 군집분석 (DBSCAN) (0) | 2021.12.15 |
08. 텍스트 마이닝 (Text mining) (0) | 2021.12.15 |
07. SVM (Support Vector Machine) (0) | 2021.12.15 |