AIㆍML

머신러닝 스타일 : 인공 신경망과 작동 원리, 함수 구조

Matthew Tyson | InfoWorld 2023.01.25
인공 지능(AI)은 컴퓨터 과학에서 가장 중요하고 역사가 긴 연구 영역 중 하나다. 워낙 넓은 범위를 다루는 만큼 마음과 의식의 본질에 대한 철학적 질문까지 파고든다. 실용적인 측면에서 현대의 AI는 주로 머신러닝(ML)의 영역이다. 머신러닝은 학습하는 데이터에 대응해 변화할 수 있는 소프트웨어 시스템을 다룬다. 여기서 눈에 띄는 아키텍처 스타일은 이른바 딥 러닝의 한 형태인 신경망이다. 이번 기사에서는 신경망과 그 작동 원리에 대해 알아본다.
 
ⓒ Getty Images Bank
 

신경망과 인간의 뇌

신경망은 인간의 뇌 구조와 비슷하다. 기본적인 개념은 뉴런(neuron)이라고 하는 개체의 무리가 결합되어 네트워크를 형성하는 것이다. 각각의 뉴런은 내부 계산에 따라 하나 이상의 입력과 하나의 출력을 수신한다. 따라서 신경망은 특수한 종류의 방향 그래프다.
 
많은 신경망은 노드의 층을 입력, 은닉, 출력의 세 가지로 구분한다. 입력층에는 원시 입력을 수신하는 뉴런이 있고 은닉층은 이 입력을 수정하며 출력층은 최종 결과를 생산한다. 네트워크를 통해 데이터가 이동하는 프로세스를 순전파(feedforward)라고 한다.
 
네트워크는 입력을 소비하면서 여러 뉴런 등급을 거쳐 위로 전달하고, 이후 최종 출력을 알려진 결과와 비교하는 방법으로 “학습”하고, 이렇게 학습된 내용은 시스템을 통해 역방향으로 제공되어 노드의 계산 방식을 바꾼다. 역전파(backpropagation)라고 하는 이 역방향 프로세스가 전반적으로 머신러닝의 주된 특징이다.
 
신경망의 기본 구조 내에는 방대한 다양성이 포함된다. 이러한 시스템의 모든 측면은 특정 문제 영역 내에서 개선이 가능하다. 마찬가지로 역전파 알고리즘에도 여러 구현이 있다. 일반적인 접근법은 편도 함수 미적분(경사 역전파라고도 함)을 사용해서 전체적인 네트워크 동작 중 특정 단계의 영향을 판단하는 것이다. 뉴런은 다양한 수의 입력을 가질 수 있고(1 - *) 서로 연결되어 네트워크를 형성하는 방식도 다양하다. 뉴런당 두 개의 입력이 일반적이다.
그림 1에서 2입력 노드 네트워크로 전체적인 개념을 볼 수 있다.
 
그림 1. 신경망의 대략적인 구조 ⓒ IDG 

그림 2에서 볼 수 있는, 이러한 네트워크의 뉴런 구조에 대해 더 자세히 살펴보자.
 
그림 2. 2입력 뉴런 ⓒ IDG

그림 2는 2입력 뉴런을 세부적으로 표현한 것이다. 뉴런은 항상 하나의 출력을 갖지만 입력 수는 정해져 있지 않다. 가장 일반적인 입력 수는 2개다. 입력이 들어오면 해당 입력에 대한 가중치 속성을 곱한다. 이후 가중치가 적용된 모든 입력에 편향(bias)이라는 단일 값을 더한다. 이 계산의 결과가 활성화 함수라는 함수로 전달되고, 활성화 함수는 주어진 입력에 대한 뉴런의 최종 출력을 제공한다.
 
입력 가중치는 뉴런의 주요한 동적 다이얼이다. 이 값은 계속 변경되면서 뉴런에 상이한 동작, 즉, 학습하거나 적응해서 출력을 개선하는 능력을 부여한다. 편향은 변경되지 않는 일정한 속성인 경우도 있고 학습에 의해 수정되는 변수인 경우도 있다.
 
활성화 함수는 예상된 범위 안으로 출력을 가져오는 데 사용된다. 일반적으로 비례 압축 함수의 한 종류다. 보통 시그모이드(sigmoid) 함수가 사용된다.
 
시그모이드와 같은 활성화 함수가 하는 일은 출력 값을 -1과 1 내로 가져오는 것이다. 여기서 큰 값과 작은 값은 0과 1에 근접하지만 도달은 하지 않는다.
 
그림 3의 그래프에서 시그모이드 함수의 출력을 볼 수 있다. x에 대해 0에서 멀어질수록 출력 y는 더 완만해진다.
 
그림 3 시그모이드 함수의 출력 ⓒ IDG

따라서 신경망 처리의 순전파 단계에서는 외부 데이터를 입력 뉴런으로 가져오고, 입력 뉴런은 가중치와 편향, 활성화 함수를 적용해 출력을 생성하고, 이 출력은 은닉층 뉴런에 전달되고, 이 뉴런이 동일한 프로세스를 수행하고, 마지막으로 출력 뉴런에 도달하면 출력 뉴런이 최종 출력에 대해 동일한 작업을 수행하게 된다.
 

역전파를 사용한 머신러닝

신경망의 강력함은 입력을 기반으로 학습이 가능하다는 데 있다. 학습은 알려진 결과가 있는 학습 데이터 집합과 예측을 비교한 다음 이 비교를 사용해 뉴런의 가중치와 편향을 조절하는 과정으로 이뤄진다.

손실 함수
이를 위해서 네트워크에는 알려진 양질의 답과 예측을 비교하는 함수가 필요하다. 이 함수를 오차 함수 또는 손실 함수라고 한다. 일반적인 손실 함수는 평균 제곱 오차 함수다.
 
평균 제곱 오차 함수는 길이가 같은 두 개의 숫자 집합을 소비한다고 가정한다. 첫 번째 집합을 실제 정답(올바른 출력)이라고 하며 위 방정식에서 Y에 해당한다. 두 번째 집합(y’)은 네트워크의 추정(제안된 출력)이다.
 
평균 제곱 오차 함수는 모든 i 항목에 대해 정답에서 추정치를 빼고 제곱하고 데이터 집합의 평균을 취한다. 이를 통해 네트워크가 얼마나 효과적으로 작동하는지 살펴보고 뉴런의 가중치와 편향의 변경이 미치는 영향을 확인할 수 있다.

경사 하강법
이 평가 지표를 가져와서 네트워크로 다시 밀어 넣는 것이 학습 사이클의 역전파 단계이며 프로세스의 가장 복잡한 부분이다. 일반적인 접근법은 경사 하강법이다. 경사 하강법에서는 네트워크의 각 가중치가 편미분을 통해 격리된다. 예를 들어, 주어진 가중치에 따라 연쇄 법칙을 통해 방정식이 확장되고 전체 네트워크 손실을 더 낮추기 위해 각 가중치가 세밀하게 조정된다. 각 뉴런과 그 가중치는 방정식의 일부로 간주되며 마지막 뉴런에서 역방향으로 이동한다(그래서 알고리즘의 이름이 경사 하강법).
 
경사 하강법은 이렇게 생각하면 된다. 오차 함수는 네트워크 출력의 그래프이며, 우리는 이 그래프의 전체적인 모양(경사)이 데이터 포인트에 따라 가능한 한 잘 내려오도록 조정하고자 한다는 것이다. 경사 역전파를 수행할 때는 각 뉴런의 함수(전체 경사의 한 지점)에서 미세한 조정으로 전체 그래프를 이상적인 해답에 조금 더 가깝게 옮긴다.
 
기반 개념은 전체 신경망과 그 손실 함수를 가중치와 편향에 따라 다변량(다차원) 방정식으로 간주한다는 것이다. 출력 뉴런에서 시작해서 출력 뉴런의 값의 함수로 이들의 편도 함수를 판정한다. 그런 다음 이 계산을 사용해서 역방향의 다음 뉴런에 대해 동일한 항목을 평가한다. 이 과정을 계속 진행하면서 최종 오차 손실에서 각 가중치와 편향의 역할을 확인하고 약간씩 조정해 결과를 개선할 수 있다.
 
경사 하강법에 적용되는 수학에 대한 자세한 설명은 초보자를 위한 머신러닝: 신경망 소개를 참조하라.
 
역전파는 함수 미분으로 제한되지 않는다. 손실 함수를 취해 네트워크를 통해 역방향으로 점진적이고 긍정적인 변화를 적용하는 모든 알고리즘이 유효하다.
 

결론

머신러닝의 중요한 스타일 중 하나인 인공 신경망의 전체적인 구조와 함수에 대해 간략히 살펴봤다.
editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.