seegongsik
인공지능

어떻게 뉴런을 겹겹이, 신경망

앞 레슨에서 뉴런 하나가 입력에 가중치를 곱해 더하고, 켜질지 말지를 정하는 것을 봤다. 그런데 뉴런 하나로는 경계를 직선으로 긋는 단순한 판단밖에 못 한다. 뉴런을 여러 개 이어 층층이 쌓으면 어떻게 될까? 훨씬 복잡한 패턴까지 배울 수 있게 된다. 이렇게 뉴런을 겹겹이 이은 것이 신경망이에요.

01

뉴런을 겹겹이 이어요

뉴런 하나는 입력을 가중치로 모아 더한 다음, 그 합에 따라 신호를 낸다. 간단한 만큼 판단도 단순해서 선 하나로 가르는 정도가 고작이다.
그런데 한 뉴런의 출력을 다른 뉴런의 입력으로 이으면 사정이 달라져요. 뉴런들이 신호를 주고받으면서, 하나로는 볼 수 없던 더 큰 그림을 함께 만들어 간다.

뉴런 / 신호선
뉴런 · 신호선

뉴런을 하나씩 눌러 켜 보자. 켜진 뉴런끼리 신호선이 이어지며 단순한 뉴런들이 망을 이뤄요.

뉴런 하나하나는 여전히 단순하다. 달라진 것은 서로 이어졌다는 점이다. 한 뉴런의 출력이 다음 뉴런의 입력이 되니, 혼자서는 못 보던 것을 여럿이 함께 보기 시작해요.
다만 아무렇게나 잇기보다 줄을 맞춰 이으면 계산이 훨씬 깔끔해진다. 이 줄을 층이라고 부른다.

02

입력층, 은닉층, 출력층

뉴런을 줄 맞춰 세우면 층이 된다. 맨 앞 층은 바깥에서 들어온 값을 받는 입력층이고, 맨 뒤 층은 최종 답을 내놓는 출력층이에요. 그 사이의 층들은 바깥에서 직접 보이지 않아서 은닉층이라고 부른다.
흔히 한 층의 뉴런은 앞 층의 모든 뉴런과 이어진다. 신호는 입력층에서 출발해 층을 차례로 지나 출력층까지 앞으로만 흐른다.

입력층은닉층출력층
버튼을 누르면 신호가 흘러요
0 / 3

버튼을 눌러 신호를 한 층씩 앞으로 보내 보자. 입력층에서 은닉층을 거쳐 출력층까지 차례로 켜져요.

신호가 앞으로만 흘렀다. 각 층은 앞 층의 출력을 받아 다시 계산해서 다음 층으로 넘긴다. 사진을 알아보는 신경망이라면 앞쪽 층은 선이나 모서리 같은 작은 조각을 살피고, 뒤쪽 층은 그 조각들을 모아 눈이나 귀 같은 더 큰 모양을 알아본다.
층이 깊어질수록 점점 추상적인 특징을 잡는 것이에요. 은닉층이 여럿인 깊은 신경망으로 배우는 것을 딥러닝이라고 부른다. 그런데 층을 쌓을 때 빠뜨리면 안 되는 것이 하나 있다.

03

사이에 휘는 단계가 있어야 해요

층을 쌓기만 하면 될 것 같지만 함정이 있다. 각 층이 곱하고 더하기만 하면 그것은 곧은 직선 변환이다. 곧은 변환을 아무리 이어 붙여도 결과는 또 하나의 곧은 변환이라서, 층을 백 개 쌓아도 한 층과 다를 바가 없어요.
그래서 층과 층 사이에 신호를 휘게 하는 단계를 꼭 넣는다. 앞 레슨에서 본 활성화 함수가 바로 이 단계다. 요즘 흔히 쓰는 것은 음수가 들어오면 영으로 바꾸고 양수는 그대로 내보내는 단순한 함수다.

휨이 없으니 층을 쌓아도 결국 직선 하나로 합쳐져요
linear

휘는 단계를 켜고 꺼 보며 비교해 보자. 끄면 층을 쌓아도 직선 하나로 합쳐지고, 켜면 휜 선들이 살아남아 모양이 풍부해져요.

차이가 확연했다. 휘는 단계를 끄면 층을 아무리 쌓아도 결국 직선 하나이고, 할 수 있는 일은 한 층짜리와 같다. 휘는 단계를 켜면 층마다 신호가 조금씩 휘어서 곧은 선으로는 그릴 수 없던 모양이 나와요.
이 휘는 단계 덕분에 층을 쌓은 보람이 생긴다.

04

층을 더할수록 더 복잡한 패턴

휘는 단계를 갖춘 층을 늘려 보자. 층이 하나면 곧은 선 하나로 세상을 둘로 가르는 정도다. 층과 뉴런을 더하면 휜 선들이 모여 꺾이고 굽은 경계를 그릴 수 있어요.
더 쌓으면 동그라미나 구불구불한 경계까지 점점 더 복잡한 패턴을 배운다. 뉴런이 충분히 많으면 신경망은 거의 어떤 모양의 경계든 흉내 낼 수 있다고 알려져 있다. 이것이 신경망이 강력한 이유다.

● 무리 A■ 무리 B
층 1개: 곧은 선 하나로 가름
1 / 4

층 더하기를 눌러 보자. 층이 적으면 곧은 선이고, 늘릴수록 경계가 더 굽이치며 복잡한 무리를 감싸요.

층을 더할 때마다 경계가 더 자유로워졌다. 곧은 선에서 시작해 꺾인 선으로, 그리고 굽은 곡선으로 바뀌었다. 단순한 뉴런들이 층을 이루고 사이사이 휘는 단계가 들어가니, 혼자서는 꿈도 못 꿀 패턴을 함께 배워 내는 것이에요.
물론 대가도 있다. 층과 뉴런이 늘수록 고칠 가중치가 많아지고, 학습에 필요한 데이터와 계산도 늘어난다.

05

정리

정리하면 이렇다. 단순한 뉴런을 층층이 쌓아 잇고, 신호는 입력층에서 출력층으로 흐른다. 각 층은 앞 층의 출력을 받아 더 큰 특징을 잡아낸다.
층과 층 사이에는 휘는 단계가 꼭 있어야 해요. 그렇지 않으면 모두 직선 하나로 합쳐지기 때문이다. 층을 쌓고 사이를 휘게 해 복잡한 패턴을 배우는 것, 이것이 신경망이다.

핵심을 차례로 눌러 되짚어요

핵심을 차례로 눌러 되짚어 보자. (뉴런을 층층이 쌓기 → 신호는 앞으로 흐름 → 사이에 휘는 단계가 필요 → 층을 더할수록 복잡한 패턴)

이제 단순한 뉴런이 모여 어떻게 복잡한 패턴을 배우는지 알게 됐다. 선 하나밖에 못 긋던 뉴런이 층을 이루고 사이를 휘게 하니 곡선 경계까지 배웠어요.
그런데 층이 여럿이면 문제가 하나 생긴다. 출력이 틀렸을 때 그 책임이 수많은 가중치 가운데 어디에 얼마나 있는지 어떻게 알까? 틀린 정도를 출력에서 거꾸로 거슬러 올라가며 나누는 방법을 다음 레슨 역전파에서 다룬다.

한 줄 정리신경망은 단순한 뉴런 여러 개를 층층이 쌓아 이은 것이다. 신호는 입력층에서 은닉층을 지나 출력층으로 앞으로 흐르고, 각 층은 앞 층의 출력을 받아 더 큰 특징을 잡아낸다. 앞 층이 선이나 모서리 같은 작은 조각을 보면, 뒤 층은 그 조각을 모아 더 큰 모양을 보는 식이에요. 층과 층 사이에는 신호를 휘게 하는 비선형 단계, 곧 활성화 함수가 꼭 있어야 한다. 휘는 단계 없이 곱하고 더하기만 되풀이하면 층을 아무리 쌓아도 직선 하나로 합쳐져 한 층과 같아지기 때문이다. 휘는 단계를 갖춘 층을 쌓으면 곡선 같은 복잡한 경계도 배울 수 있어요. 뉴런을 층층이 쌓고 사이에 휘는 단계를 두어 복잡한 패턴을 배우는 것이 신경망이다.
← 인공지능
이 페이지가 도움 됐다면 후원하기