신경망(Neural Network)이란?

신경망이란 우리 인간의 뇌를 본따 만든 알고리즘.
뉴런과 시냅스가 연결되어 있는 구조가 알고리즘의 구조와 흡사하여 붙여진 이름.
오늘날 알파고, 시리, 빅스비 등에서 다양하게 쓰이고 있음.

CNN(Convolutional Neural Network)이란?

1950년, 허블과 비셀이 고양이를 대상으로 실험한 흥미로운 실험이 있음.
바로 고양이의 머리(두뇌)에 전극을 꽂아 고양이가 시각 정보를 어떻게 처리하는지를 분석하는 것.

이때 발견한 것은 두뇌는 이미지를 통째로 한번에 인식하는 것이 아니라 소수의 뉴런이 이미지를 쪼개어서 각각 받아들인다는 것임. 눈의 수많은 시신경들이 사물을 보고, 신호가 뉴런과 시냅스들을 통해 뇌로 전달되어 비로소 어떠한 물체를 “사과"라고 인식하게 되는 것.

CNN은 크게 두가지로 구성되어있음. 바로 백색 원을 나타내는 뉴런과 화살표를 나타내는 시냅스. 뉴런은 정보를 저장하고 시냅스는 이런 정보를 알맞게 배달하는 역할을 하게 됨.
여기서 '알맞게 배달'하는 것이란?
각각의 뉴런에게 모든 정보를 똑같이 전달하는 것이 아니라 필요한 곳에 필요한 만큼의 정보를 두는 가중치를 준다는 것.

이미지 인식 과정

  1. 이미지가 주어짐.
    이때 위의 input layer의 뉴런들은 이미지를 훑으면서, 자신에게 할당된 특성 (feature)을 찾게 됨. 예를 들어 강아지 이미지가 주어지면 귀, 코, 눈, 꼬리 등등 각각의 특성을 따로 저장함.

  2. 각각의 Feature가 hidden layer로 보내짐.
    뉴런이 모은 feature들은 너무나 되어 있고 각각을 따로 보았을때 별 의미가 없기 때문에 유사한 부분이 있는 것들끼리 모이게 됨. 시냅스가 feature들을 hidden layer에 전송하며 각각의 feature들은 한 뉴런에만 저장되는 게 아니라 여러 뉴런에 유사한 정보끼리 모이게 됨.

  1. hidden layer의 정보들이 output으로 감.
    Hidden layer의 뉴런들이 저장하고 있던 정보들을 뇌에서 종합하고 어떤 이미지인지 파악함.

그렇다면 우리가 CNN을 쓰는 이유는 뭘까?

데이터가 너무나 많음! 데이터가 많이지면 컴퓨터는 연산 처리할 것들이 많이져 점점 복잡해지고 무거워지며 느려짐. 이미지를 인식하는데 필요한 핵심 정보를 파악하기 위해서 필요없는 정보들을 줄여야함. 그러기 위해서 필요한 것이 convolution.
convolution이란? downsizing하면서 최종 유효한 이미지 얻는 것.


위 이미지는 합성곱을 반복하며 적절한 가중치를 찾는 모습.


위 사진은 CNN구조.


CNN 구조를 살펴보면, 과정이 진행될수록 더 복잡하고 추상화된 정보가 추출되는 걸 볼 수 있음.

CNN에서 쓰이는 함수

신경망에서는 출력값을 여러겹의 층(layer)를 통과시키면서 그 값이 더 축약된다는 특징이 있습니다. 활성화함수(Activation Function)은 그 과정을 위한 것. 쉽게 생각하면 이미지 출력 조정에 쓰인다고 보면 됨.

위 사진은 중간과정은 생각하고 입력과 결과에만 포커스를 둔 사진. 결과가 나오기 전에 활성화 함수가 사용되는 것을 알 수 있음.

대표적으로 Sigmoid 함수, tanh 함수, ReLU함수가 존재함.

ReLU 함수는 최근 가장 많이 사용되고 있는 함수임. 이 함수는 시그모이드, tanh 함수보다 학습시간이 훨씬 단축되고 연산 비용이 크지 않고 구현이 매우 간단함. 그러나 (x < 0) 구간에서 기울기가 0이기 때문에 뉴런이 작동하지 않는다는 단점이 있습니다. 이러한 단점을 보완하기 위해 Leakly ReLU, PReLU 함수가 등장함.

같이 보면 좋은 것

뉴럴 네트워크

알파고 바둑 실력의 비밀, '딥 러닝'

인공지능 기술 활용 강국을 향한과학기술정책 제고 전략(2020)

인공지능 기술 전망과 혁신정책 방향


다음에 공부할 것

  • RNN
  • GAN
  • Open CV
profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글