신경망이란?
신경망은 AI 분야의 주요 문제를 해결하기 위해 컴퓨터 과학과 통계를 접목하면서 인간의 두뇌를 모방하려고 시도합니다.
검은색과 파란색 배경
신경망이란?

인공 신경망(ANN) 또는 시뮬레이션 신경망(SNN)이라고도 하는 신경망은 머신 러닝의 범주에 속하며, 딥러닝 알고리즘의 핵심입니다. 그 이름과 구조는 인간의 두뇌로부터 영감을 받은 것이며, 생물학적 뉴런이 서로 간에 신호를 보내는 방식을 모방합니다.

인공 신경망(ANN)은 하나의 입력 계층, 하나 이상의 은닉 계층 및 하나의 출력 계층을 포함하는 노드 계층들로 구성되어 있습니다. 각 노드 또는 인공 뉴런은 다른 노드에 연결되며, 연관된 가중치와 임계값을 갖습니다. 개별 노드의 출력이 지정된 임계값을 초과하면, 해당 노드가 활성화되어 네트워크의 다음 계층으로 데이터를 전송합니다. 그렇지 않으면, 네트워크의 다음 계층으로 데이터가 전달되지 않습니다.

신경망은 훈련 데이터에 의존하여 학습을 수행하고, 시간이 지나면서 자체 정확도를 개선합니다. 그러나 일단 이러한 학습 알고리즘이 고도의 정확도를 얻기 위해 정밀 조정되면, 컴퓨터 사이언스 및 인공 지능 분야의 강력한 수단이 됩니다. 즉, 고속 데이터 분류 및 클러스터링을 가능하게 합니다. 음성 인식이나 영상 인식의 작업은 몇 분 정도 소요될 수 있으며, 이는 몇 시간씩 걸리는 인간 전문가의 수동적인 식별과는 비교가 됩니다. 가장 널리 알려진 신경망 중 하나로 Google의 검색 알고리즘을 들 수 있습니다.

신경망의 작동 방법

각각의 개별 노드를 입력 데이터, 가중치, 바이어스(또는 임계값) 및 출력으로 구성된 자체 선형 회귀 모델로 생각할 수 있습니다. 그 공식은 다음과 비슷합니다.

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0

일단 입력 계층이 판별되면, 가중치가 지정됩니다. 이러한 가중치는 제공된 변수의 중요도 판별에 도움이 되며, 보다 클수록 기타 입력과 비교하여 출력에 보다 현저하게 기여합니다. 그리고 모든 입력에 개별 가중치를 곱한 후에 합계가 산정됩니다. 그 이후에 출력은 활성화 함수를 통해 전달되며 이는 출력을 판별합니다. 해당 출력이 주어진 임계값을 초과하는 경우, 이는 노드를 "실행"(또는 활성화)함으로써 데이터를 네트워크의 다음 계층으로 전달합니다. 결과적으로 한 노드의 출력은 다음 노드의 입력이 됩니다. 한 계층에서 다음 계층으로 데이터를 전달하는 이러한 프로세스에서는 이 신경망을 피드포워드(feedforward) 네트워크로 정의합니다.

하나의 단일 노드가 2진 값을 사용하면 어떻게 표시될지 살펴볼까요? 우리는 이 개념을 서핑하러 갈지 여부(예: 1, 아니요: 0)와 같은 보다 실질적인 사례에 적용할 수 있습니다. 서핑하러 갈것인지 여부의 의사결정은 우리의 예측된 결과, 즉 y-hat입니다. 의사결정에 영향을 미치는 세 가지 요인이 있다고 가정하겠습니다.

  1. 파도가 서핑하기에 적절한가요? (예: 1, 아니요: 0)
  2. 라인업은 비어 있나요? (예: 1, 아니요: 0)
  3. 최근에 상어의 공격이 있었나요? (예: 0, 아니요: 1)

이제 다음 입력으로 아래와 같이 가정하겠습니다.

  • X1 = 1, 파도가 일렁이므로
  • X2 = 0, 사람들이 없으므로
  • X3 = 1, 최근에 상어 공격이 없었으므로

이제 가중치를 부여하여 중요도를 판별해야 합니다. 가중치가 더 클수록 특정 변수들이 의사결정이나 최종 결과에 더 중요하다는 것을 의미합니다.

  • W = 5, 커다란 놀이 자주 발생하지 않으므로
  • W2 = 2, 사람들에 익숙하므로
  • W3 = 4. 상어에 대한 두려움이 있으므로

마지막으로 3의 임계값도 가정하는데, 이는 –3의 바이어스 값으로 변환됩니다. 이처럼 다양한 입력이 가능한 가운데, 원하는 출력을 얻기 위해 공식에 값을 넣기 시작할 수 있습니다.

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

이 섹션의 처음부터 활성화 기능을 사용하는 경우, 6이 0보다 크므로 우리는 이 노드의 출력이 1임을 판별할 수 있습니다. 그러면 서핑을 하러 갈 것입니다. 하지만 가중치나 임계값을 조정함으로써 이 모델에서 다른 결과를 얻을 수 있습니다. 위의 예와 같은 의사결정을 살펴보면, 신경망이 과거의 의사결정, 즉 계층의 출력에 따라 점점 더 복잡한 의사결정을 내리는 방식을 이해할 수 있습니다.

위의 예에서는 수학적 내용을 설명하기 위해 퍼셉트론(perceptron)을 사용했습니다. 하지만 신경망에서는 0과 1의 값을 갖는 것으로 구분되는 시그모이드 뉴런(sigmoid neuron)을 활용합니다. 신경망은 의사결정 트리와 비슷하게 작동합니다. 0 또는 1의 x 값을 갖는 하나의 노드에서 다른 노드로 데이터를 캐스케이딩하면, 어떤 단일 변수의 변화가 임의 노드의 출력, 그리고 결국에는 신경망의 출력에 미치는 영향이 감소하게 됩니다.

이미지 인식 또는 분류와 같은 더 실용적인 신경망 적용사례에 관한 연구가 시작됨에 따라, 알고리즘 훈련에 감독형 러닝이나 레이블형 데이터 세트를 활용할 것입니다. 모델을 훈련시키면서, 비용(또는 손실) 함수를 사용하여 해당 정확도를 평가하고자 합니다. 이를 통상적으로 MSE(Mean Squared Error)라고도 합니다. 아래의 방정식에서

  • i는 샘플의 인덱스를 나타냅니다.
  • y-hat은 예측된 결과입니다.
  • y는 실제 값입니다. 그리고
  • m은 샘플의 수입니다.

= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2

궁극적으로는 비용 기능을 최소화함으로써 주어진 관찰에 대한 적합도의 정확성을 보장하는 것이 목표입니다. 모델에서 가중치와 바이어스를 조정하므로, 이는 비용 함수와 강화 학습을 사용하여 융합점 또는 극솟값에 도달합니다. 알고리즘이 가중치를 조정하는 프로세스는 기울기 강하를 통해서 이루어지며, 따라서 모델은 오류 감소(또는 비용 함수의 최소화)를 위해 취해야 할 방향을 판별할 수 있습니다. 각각의 훈련 사례에서 모델의 파라미터는 점진적으로 최솟값으로 수렴하도록 조정됩니다.  

신경망에 쓰이는 정량적 개념에 대한 자세한 설명은 이 IBM Developer 기사를 참조하세요.

대부분의 딥 신경망은 입력에서 출력으로 한 방향으로만 이동하는 피드포워드(feedforward)입니다. 그러나 역전달을 통해 모델을 훈련할 수도 있습니다. 이는 반대 방향, 즉 출력에서 입력으로 이동하는 것을 말합니다. 역전달을 사용하면 각각의 뉴런과 연관된 오류를 계산하고 속성화할 수 있습니다. 그러면 모델의 매개변수를 적절하게 조정하고 맞추는 것이 가능합니다.

신경망의 유형

신경망은 다양한 유형으로 분류할 수 있는데, 저마다 다른 목적으로 쓰입니다. 아래는 모든 유형을 나열하지는 않지만, 일반적인 적용사례에서 접할 수 있는 가장 대표적인 신경망 유형을 정리한 것입니다.

퍼셉트론(Perceptron)은 1958년에 Frank Rosenblatt 씨가 만든 가장 오래된 신경망입니다.

이 글에서는 피드포워드 신경망 또는 MLP(Multi-layer Perceptron)를 주로 다룹니다. 이는 하나의 입력 계층, 하나 이상의 은닉 계층 및 하나의 출력 계층으로 구성됩니다. 이러한 신경망을 흔히 MLP라고도 부르지만, 대부분의 실세계 문제가 비선형이기 때문에 이는 실제로 퍼셉트론이 아닌 시그모이드 뉴런으로 구성되어 있다는 점을 유념하시기 바랍니다. 일반적으로 이러한 모델의 훈련을 위해 데이터가 공급되어 컴퓨터 비전, 자연어 처리 및 기타 신경망의 기초가 됩니다.

CNN(Convolutional Neural Network)은 피드포워드 네트워크와 유사하지만, 대개 이미지 인식, 패턴 인식 및/또는 컴퓨터 비전에 활용됩니다. 이 네트워크는 선형 대수, 특히 행렬 곱셈(matrix multiplication)의 원리를 이용하여 이미지 내의 패턴을 식별합니다.

RNN(Recurrent Neural Network)은 자신의 피드백 루프에 의해 식별됩니다. 이 학습 알고리즘은 시계열 데이터를 사용하여 주가 예측이나 매출 예측 등 미래의 결과를 예측할 때 주로 쓰입니다.

 

신경망 및 딥러닝 비교

딥러닝과 신경망은 흔히 대화에서 같은 의미로 사용할 만큼 혼동하기 쉽습니다. 결과적으로, 딥러닝의 "딥"은 단지 신경망에서 계층의 깊이를 의미함을 유념해야 합니다. 입력과 출력을 포함할 수 있는 세 개 이상의 계층으로 구성된 신경망은 딥러닝 알고리즘으로 간주될 수 있습니다. 2개 또는 3개의 계층만 있는 신경망은 기본 신경망에 불과합니다.

신경망과 다른 인공 지능 형태(예: 머신 러닝)의 차이점을 자세히 알아보려면 블로그 포스트, "AI, 머신 러닝, 딥러닝 및 신경망: 차이점"을 참조하세요.

신경망의 역사

신경망의 역사는 대부분의 사람들이 생각하는 것보다 훨씬 더 오래되었습니다. "생각하는 기계"라는 개념은 고대 그리스 시대까지 거슬러 올라갈 수 있지만, 여기서는 오랜 세월에 걸쳐 인기 상승과 하락을 반복했던 신경망에 대한 인식의 진화를 이끌었던 주요 사건에 초점을 맞추겠습니다.

1943년: Warren S. McCulloch 씨와 Walter Pitts 씨는 "신경 활동에 내재된 사고의 논리적 계산법"(PDF, 1MB)(IBM 외부 링크)을 출간했습니다. 이 연구에서는 인간의 두뇌가 서로 연결된 뇌 세포, 즉 뉴런을 통해 복잡한 패턴을 어떻게 생성할 수 있는지를 파악하고자 했습니다. 이 연구의 시발점이 된 주요 아이디어 중 하나는 뉴런을 부울 논리에 대한 2진 임계값(예: 0/1 또는 true/false 선언)과 비교하는 것이었습니다.   

1958년: Frank Rosenblatt 씨는 "퍼셉트론: 두뇌의 정보 저장과 구성에 대한 확률 모델"(IBM 외부 링크) 연구에서 퍼셉트론(perceptron)을 다루면서 명성을 얻었습니다. 그는 방정식에 가중치를 도입함으로써 McCulloch 및 Pitt 씨의 연구 결과를 한 단계 업그레이드했습니다. Rosenblatt 씨는 IBM 704를 활용하여 왼쪽에 표시된 카드와 오른쪽에 표시된 카드를 구별하는 방법을 컴퓨터에 학습시킬 수 있었습니다.

1974년: 많은 연구자들이 역전달의 아이디어에 기여했으나, Paul Werbos 씨는 자신의 박사 학위 논문(PDF, 8.1MB)(IBM 외부 링크)을 통해 미국에서는 최초로 신경망 내에 이를 응용하는 것을 제안했습니다.

1989년: Yann LeCun 씨는 역전달에 제한조건을 사용하고 이를 신경망 아키텍처에 통합하는 방식으로 알고리즘의 훈련에 사용하는 방법을 제시하는 논문(PDF, 5.7MB)(IBM 외부 링크)을 발표했습니다. 이 연구에서는 신경망을 활용하여 손 글씨로 된 미국 우편 번호를 인식하는 데 성공했습니다.

관련 솔루션
IBM Watson Studio

클라우드에서 신뢰할 수 있는 AI를 구축하고 이를 스케일링합니다. ModelOps에 대한 AI 라이프사이클을 자동화합니다.

IBM Watson Studio 살펴보기
IBM Cloud 솔루션

하이브리드. 개방성. 탁월한 복원성. 디지털 혁신을 위한 플랫폼이자 파트너입니다.

클라우드 솔루션 살펴보기
리소스 2021년의 AI: 데이터를 통한 기회 발굴

AI를 비즈니스에 접목함으로써 얻게 된 기회와 과제, 그리고 경험을 통해 습득한 교훈 등을 알아봅니다. 간단한 등록을 거쳐 IBM eBook을 다운로드할 수 있습니다.

다음 단계

IBM은 IBM Watson을 개발하고 더욱더 발전시키는 등 수십 년 넘게 AI 기술 및 신경망 개발에 앞장서 왔습니다. 이제 Watson은 AI를 채택하여 구현하는 데 검증된 계층형 접근 방법을 사용함으로써 자사 시스템에 고급 자연어 처리와 딥러닝 기술을 적용하려는 기업들이 신뢰하는 솔루션입니다.

IBM Watson® Studio로 딥러닝 살펴보기