Ⅳ.자료와 학습(중급) – 4. 신경망과 딥러닝

4. 신경망과 딥러닝

1. 신경망개념 - 인공신경망 이해하기
(ANN, Artificial Neural Network)

출처 https://mbite.unl.edu/files/papers/2019/j2.pdf

사람의 뇌 신경세포(뉴런)
  사람의 뉴런을 보고 인공신경을 만듦

인공신경(Artificial Neural Network)
   주변에서 입력받은 데이터를 인공신경이 처리하여 출력값을 다음 인공신경으로 전달합니다.

   먼저 이것부터 알고 시작해봅시다. 인공신경은 사람의 뇌신경세포(뉴런)을 본따서 만들었습니다. 쉽게 말해 보고 따라했어요. 왜 컴퓨터 과학자들은 하필이면 사람의 뇌신경을 모방해서 만들었을까요? 왜냐하면 기계를 똑똑하게 만들고 싶었어요, 바로 사람처럼요. 사람처럼 똑똑하게 만들기 위해 사람의 뇌속에서 일어나는 학습과정으로 기계를 가르치고 싶었던거예요. 

  그러면 신경망은 무엇일까요? 신경망은 인공신경망(ANN, Artificial Neural Network)이라고도 불리는데, 바로 인공신경이 그물처럼 연결되어 있는 것을 뜻해요. 인공신경들이 거미줄처럼 복잡하게 연결되어 있는 형태를 말하는 것이죠. 사람의 뇌에서는 1000억개의 뉴런이 있다고 해요. 그리고 그 뉴런들은 모두다 연결되어 있어요. 상상만해도 복잡한 그물이 떠올려지나요? 컴퓨터 기술이 많이 발달했음에도 1000억개의 인공신경을 만들어서 사람의 뇌처럼 연결지을 수는 없어요. 그렇지만 그 형태를 따라해서 연결한 것만으로도 컴퓨터가 굉장히 똑똑해진다는 것을 컴퓨터 과학자들이 알게 된거죠. 그래서 지금 우리가 인공신경망에 대해 배우고 있는 것이랍니다. 

  그러면 인공신경망은 어떤 순서로 발전하게 되었는지 아래 그림들을 보면서 쉽게 이해해봅시다.

1학년

  초등학생 때 경인이는 학교가 끝나면 집에 가기 전에 항상 군것질거리에 대해 고민을 하곤 했습니다. 경인이가 1학년 때에는 배고픈 정도가 50이 넘으면 간식을 사 먹고 50을 넘지 않으면 먹지 않고 바로 집으로 갔습니다. 가장 단순했던 시기였습니다.

3학년

  3학년이 된 경인이는 군것질을 살 때 배고픈 정도뿐만 아니라 자신이 가지고 있는 용돈도 고려해야 한다는 것을 깨닫게 되었습니다. 이제 배고픔에 대한 값과 남은 용돈에 대한 값의 합이 100이 넘을 때만 간식을 사 먹기로 결정을 합니다. 이 때 형성된 간단한 인공신경은 사먹는다, 사먹지 않는다 정도의 간단한 의사결정만 하게 됩니다. 

5학년

  5학년이 된 경인이는 이제 배고픈 정도, 용돈 외에도 맛집이 어디인지도 고려하게 됩니다. 또한, 음식의 종류는 무엇이 좋은지와 같은 고민도 하게 됩니다. 이렇게 선택 기준이 다양해지면서 그에 따라 무엇을 어디서 먹을지에 대한 결정 또한 다양해집니다.

  이렇게 결정을 위한 인공신경 여러 개가 모여 한 층을 이루고 그 층들이 여러 층으로 겹겹이 쌓인다고 생각해봅시다. 그렇게 되면 화살표가 무수히 많이 겹쳐 보이면서 그물처럼 복잡해지게 될 것입니다. 이것을 바로 인공신경망(ANN: Artificial Neural Network)이라고 부릅니다. 인공신경망은 복잡할수록 다양한 의사결정을 정확하게 예측할 확률이 높습니다. 

2. 퍼셉트론(Perceptron), 인공신경망의 문제점과 해결방안

  퍼셉트론(Perceptron)은 앞서 얘기한 인공신경망의 한 종류입니다. 로젠블라트라는 사람이 기존에 있던 신경망 모델을 발전시켜  실생활에 필요한 문제를 해결하는데 사용하면서 퍼셉트론이라는 이름으로 널리 알려지게 됩니다. 쉽게 말해 처음 생긴 신경망의 업그레이드 버전이라고 생각하면 됩니다.

3학년

  경인이의 3학년 때의 그림을 다시 한번 살펴봅시다. 이것은 간단한 구조(입력층과 출력층)로 구성된 단층신경망(단층 퍼셉트론, Single-Layer Perceptron)이라고 할 수 있습니다. 단층 퍼셉트론에서 기억할 것은 3가지 개념입니다. 바로 입력값, 출력값, 임계값입니다. 입력값은 배고픈정도, 남은 용돈에 대한 계산이 될것입니다. 그리고 출력값은 먹을지 말지에 대한 결정이 되겠죠. 그러면 임계값은 무엇일까요? 임계라는 것은 ‘한계에 다다랐다’는 뜻입니다. 그러므로 사먹으려면 기준이 되는 100값이 넘어야 합니다. 바로 100값이 임계값이 되는 것입니다. 

  이 단층 퍼셉트론은 연구 과정중에 반대에 부딪히게 됩니다. 왜냐하면 현실에서는 배도 고프고, 남은 용돈도 많아서 판단의 기준값이 100이 넘어도 사먹지 않는 경우가 있기 때문입니다. 예를 들어 엄마가 맛있는 갈비를 저녁으로 준비해두었기 때문에 굳이 햄버거를 사먹지 않고 참고 집으로 가는 경우가 있을 수 있지요. 이것이 그 유명한 ‘XOR문제’입니다. XOR문제 대한 내용은 수학적으로 계산하는 문제로 넘어가기 때문에 여기서는 생략하겠습니다. 

  좀 더 나아가봅시다. 

  이러한 단층신경망(단층퍼셉트론)의 현실 문제점, 즉 예외되는 상황이 존재하는 것을 설명하기 위해 입력층과 출력층 사이에 은닉층이라는 개념을 만들었습니다. 은닉층은 입력값의 가중치를 곱한 것입니다.  다시 조금 어려워지죠? 아래 그림을 보면서 깊게 생각해보겠습니다.

5학년

    경인이가 5학년일 때의 그림을 다시 살펴봅시다. 입력층(배고파, 용돈, 맛집)과 출력층(치킨, 햄버거, 초밥) 사이에 사먹을지 말지의 1개의 판단 기준만 존재하는 것이 아니라 어디서 먹을지(위치)와 무엇을 먹을지(종류)도 존재합니다. 이렇게 판단의 기준을 다양하게 함으로써 단층퍼셉트론의 한계를 넘어서려고 한 것 입니다.  예를 들어 배도 고프고 남아 있는 용돈이 충분하지만  맛집의 위치가 집까지의 거리보다 멀어서 사먹으러 가지 않고 집으로 가는 경우라고 설명이 가능하다는 것이죠. 이렇게 음식의 종류, 맛집의 위치와 같이 여러 가중치 값을 포함한 층을 은닉층(hidden layer)라고 합니다. 그리고 이러한 은닉층이 존재하는 구조를 다층 신경망(다층 퍼셉트론, Multi-Layer Perceptron)이라고 합니다. 

  아래 표와 그림을 보면서 다층신경망(다층퍼셉트론)의 종류를 구분해 봅시다.

  다층 신경망은 위에 보이는 표에서 알 수 있듯 얕은 신경망(Non-deep feedforward neural network)과 심층 신경망(Deep neural network)으로 나뉩니다.

Non-deep feedforward neural network
쉘로우 러닝(Shallow learning)학습 환경

Deep neural network
딥 러닝(Deep learning)학습 환경

  인공신경망이 단순하게 있는 형태 즉 은닉층이 1개만 존재할 때 이를 얕은 신경망(Non-deep feedforward neural network)이라고 하며, 이 얕은 신경망에서는 기계가 쉘로우 러닝(Shallow learning)이라고 말하는 얕은 수준의 학습만 할 수 있습니다. 처음 인공신경망이 만들어질 때는 기술수준이 낮아서 층을 여러 겹으로 쌓을 수 없었기 때문에 이러한 학습 방법이 이루어질 수밖에 없었습니다.

  최근에는 기술이 발전하면서 은닉층을 여러층으로 쌓을 수 있게 되어 심층신경망(Deep neural network)을 만들 수 있게 되었습니다. 그리고 이러한 심층신경망에서 일어나는 학습을 딥 러닝(Deep learning) 이라고 합니다. 

  아래 내용을 보면서 딥러닝에 대해 자세히 알아봅시다.

3. 딥러닝의 개념

 

  위의 그림에서 알 수 있듯 인공지능>머신러닝>딥러닝의 관계는 식물>꽃>장미꽃의 관계라고 생각하면 쉽습니다. 인공지능이라는 큰 범위 안에 머신러닝이라는 방법이 있고, 머신러닝을 구현해내는 다양한 방법 중 하나가 딥러닝입니다. 

  인공지능은 기계가 인간의 지능을 모방해 인간과 비슷하게 움직이도록 만든 모든 기술을 뜻합니다. 그 중 머신 러닝은 사람이 경험을 통해 지식을 습득하는 것처럼 기계가 사람의 학습방법을 모방해 학습하는 것으로 다양한 데이터들을 탐색함으로써 데이터 간의 관계를 파악합니다. 

  머신러닝을 이해하기 위해 기존의 컴퓨터 사이언스와 비교해봅시다. 기존 컴퓨터 사이언스에서 활용한 방법은 1이라는 값, 2라는 값 그리고 +라는 알고리즘을 주고 그 결과값을 얻어내는 방식이었습니다. 마치 지금의 계산기와 비슷합니다.  하지만 머신 러닝은 1이라는 값과 2라는 값 그리고 결과값 3을 주고 그 관계에 대해 알아내도록 합니다. 그럼 어떻게 이 숫자들의 관계가 +(더하기)라는 것을 알 수 있을까요? 이는 많은 데이터를 주면 가능합니다. (1,2와 3), (2,3과 5), (3,4와 7) … 이와 같은 데이터를 수백만, 수천만개를 주면 머신 러닝을 통해 ‘아 이 관계는 +(더하기)로 이루어졌구나.’ 스스로 파악하게 됩니다. 그래서 머신러닝에서는 많은 데이터 즉, 빅데이터를 줄수록 더 정확한 알고리즘을 사람에게 알려줄 수 있습니다.

  딥러닝은 이러한 머신 러닝의 여러 학습 방법 중 하나이므로 머신 러닝이 무엇이었는지 생각하는 것부터 시작해봅시다. 사람의 학습은 뇌에서 이루어집니다. 그러니까 기계에도 뇌와 비슷한 구조를 만들어주어야겠다는 생각에서 출발한 것입니다. 그 출발점이 앞에서 설명한 인공신경이었고, 그 인공신경들이 서로 연결되어 그물처럼 얽힌 것이 인공신경망이였으며, 그 인공신경망의 구조 중 핵심구조인 층(은닉층)에 여러 개로 쌓여 있는 심층신경망(DNN, Deep neural network)이 있는데, 그 DNN을 활용하여 학습하는 방법이 딥러닝입니다. 그리고 이러한 딥러닝을 활용해 이미지인식, 음성인식, 자율주행자동차, 신약개발, 질병진단 프로그램을 개발하고 있습니다. 

 

4. 딥러닝의 사례

AR콘텐츠

딥러닝 기법이 적용된 증강현실은 카메라를 통해 보이는 모든 사물과 AR오브젝트를 분리하여  다른 레이어에 넣습니다. 그러면  사람들 사이에 오브젝트를 넣거나 사람을 AR 오브젝트 사이에 존재하도록 하는 기술(People occlusion)을 구현할 수 있습니다.

얼굴인식

얼굴을 인식하기 위해서 입력된 수많은 이미지를 많은 조각으로 나눕니다. 그리고 각각의 조각에 이미지 필터를 적용하여 이미지를 단순화(convolution)시키고, 변형(acrivation)과 샘플링(pooling)이라는 과정을 거치도록 합니다. 이러한 과정을 여러 번 반복하여 마지막에 예측할 수 있도록 하는 것이 얼굴 인식에 들어간 딥러닝 중 CNN 기술입니다.

객체 인식

  처음 객체 인식이 개발되었을 때에는 하나의 사진 속에 존재하는 이미지 하나를 처리하는 데 20초가 걸렸습니다. 하지만 지금은 그 시간이 1/500초로 빨라지고 하나의 이미지 속에 존재하는 여러 객체 즉 사람이나 사물들을 동시에 인식할 수 있는 정도까지 발전했습니다. 이를 사물 감지의 ‘욜로’법(You Only Look Once)이라 부르기도 합니다.

무인 항공기

무인 항공기가 연구되는 분야 중에는 조난자를 자동으로 탐지하는 딥러닝 기반 시각 인식 모델이 있습니다. 이는 드론이 해변을 날아다니면서 물에 빠진 사람을 찾아 자동으로 119에 신고를 합니다.

part4-4. 신경망과 딥러닝 QUIZ

1. 인공신경망은 사람의 뇌세포 뉴런의 구조를 모방하는 것에서 시작하였다.

Correct! Wrong!

- 사람의 신경세포를 보고 인공신경을 만들고, 그 인공신경이 모여 서로 연결되어 있는 인공신경망이다.

2. 인공신경망의 층이 얕을수록 간단해서 의사 결정에 유리하다.

Correct! Wrong!

- 인공신경망의 층이 깊게 쌓인 것을 딥러닝이라하고 딥러닝이 의사 결정에 유리하다

3. 인공지능과 딥러닝, 머신 러닝은 다 같은 말이다.

Correct! Wrong!

- 인공지능 > 머신 러닝 > 딥러닝

4. 딥러닝은 각광 받은 최신기술이므로 데이터의 양이 적을 때에도 가장 좋은 성능을 가진다.

Correct! Wrong!

- 데이터의 양이 적을 때에는 딥러닝이 아닌 전통적인 머신 러닝의 성능이 더 좋습니다. 딥러닝은 데이터의 양이 많으면 많을수록 좋은 성능이 나타납니다.

5. 자율 주행 자동차는 객체 인식에 활용된 딥러닝이 적용되었다.

Correct! Wrong!

- 자율 주행 자동차는 컴퓨터 비전기술에 딥러닝이 적용되었습니다.