반응형

인공신경망을 공부하면 초반에 만나는 어려운 용어들이 많다.

뉴런, 퍼셉트론, 활성화 함수, 계단 함수, 시그모이드 함수,  ReLU 함수, 소프트맥스 함수...

하나씩 쉽게 알아보자.

 

인공신경망

 

우리 몸의 신경세포 뉴런

뉴런은 신경세포다.

뉴런

우리 몸의 신경계를 구성하는 가장 기본적인 세포다.

이 세포가 어떤 일을 하는 걸까?

우리는 이미 중학교 2학년 때 뉴런의 기초를 배웠다.

바로 함수다.

 

함수

 

함수는 어떤 값을 입력받고 내부에서 정해진 연산을 한다.

그리고 그 결과를 내보낸다.

예를 들어 위 함수처럼 내부에 +3이 있다고 하자.

2를 입력값으로 넣으면 2+3이 되어 5가 된다.

뉴런도 함수와 기능이 같다.

입력값이 들어오면 가중치를 곱해서 결과를 내보낸다.

가끔 입력값과 가중치의 합이 기준치를 넘지 못하기도 한다.

그땐 0 또는 신호 없음을 출력하기도 한다.

 

인공신경망의 뉴런, 퍼셉트론

퍼셉트론이라는 용어를 처음 봤을 때 엄청 어려운 전문용어로 보였다.

하지만 그 의미를 이해하면 그냥 중2 때 배운 수학 시간의 함수와 같다는 것을 알게 된다.

 

퍼셉트론

우리 몸의 신경망의 가장 기본적은 세포는 뉴런,

인공신경망을 구성하는 가장 기본적인  세포 같은 단위는 퍼셉트론.

이렇게 이해하면 된다.

퍼셉트론이 신경망처럼 복잡하게 연결되어 결과를 만들어 낸다.

바로 딥러닝이다.

복잡하게 연결하는 이유는 결과의 정확도를 높이기 위해서다.

 

활성화 함수의 필요성

퍼셉트론은 입력값을 받아 연산 후 결괏값을 내보낸다고 했다.

사실 뉴런이나 퍼셉트론은 입력값의 확률을 내보낸다.

1차로 입력값을 받아서 가중치(w)를 곱하고 임계값(θ)을 더한다.

이건 또 뭔 소릴까?

도형을 보고 원, 삼각형, 사각형인지 구분하는 과정을 보자.

카메라로 이미지를 인식해서 기초 값을 정해야 한다.

픽셀값으로 선과 바탕을 구분한다.

꺾이는 부분(각도)과 면적 등을 프로그램을 통해 값을 추출한다.

당장 카메라를 작동하고 분석하는 프로그램이 없으니 가정해서 값을 정하자.

입력값은 총 3가지로 정하자.

삼각형, 사각형 등 각의 개소는 x1로 한다.

곡선에 대한 곡률은 x2로 정하자.

가로세로비는 x3으로 정하자.

이렇게 세 가지 입력값을 정했다.

도형별 가중치도 정하자.

 

가중치와 임계값

이 구조를 딥러닝 구조로 처리해 보겠다.

이 데이터들을 활용해서 원을 분별해 보자.

카메라에서 분석된 원 데이터를 정하자.

원은 둥글어서 각이 없다. x1 = 0.0

완벽하게 둥글어서 곡률 100이다. x2 = 1.0

동그라니깐 가로세로비는 같다. x3 = 1.0

이제 이 입력값을 히든층으로 보내서 가중치를 곱하고 편향을 더하자.

원뉴런: (x1 * w1) + (x2 * w2) + (x3 * w3) + θ

삼각형뉴런: (x1 * w1) + (x2 * w2) + (x3 * w3) + θ

사각형뉴런: (x1 * w1) + (x2 * w2) + (x3 * w3) + θ

 

실제 값을 넣고 계산하면 다음과 같다.

원뉴런 : 4.0, 삼각형뉴런 : -4.5, 사각형뉴런 : -9.5

원뉴런 값이 가장 크다.

그래서 도형은 으로 판정한다.

하지만 값이 너무 자유분방하다.

정해진 틀 안에 값을 넣고 백분율로 판단하면 더 좋겠다.

우선 이런 경우 값의 범위를 0과 1 사이의 값으로 출력하는 함수가 필요하다.

바로 활성화 함수가 그 기능을 한다.

그중 시그모이드 함수를 사용해 본다면 다음과 같다.

원은 시그모이드(4.0)로 0.98201...이 나온다.

삼각형은 시그모이드(-4.5)로 0.01099...가 나온다.

사각형은 시그모이드(-9.5)로 0.00007...이 나온다.

이 값을 보면 원의 값이 1에 근접한다.

도형이 원임을 확인했다.

이번 포스팅은 입력값이 무엇인지 살펴봤다.

그리고 가중치로 해당 뉴런에서 분류가 가능하게 한다.

편향을 이용해 미세한 값 조정을 통해 분류의 정확도를 높인다.

실제 값으로 테스트해 봤다.

다음 포스팅은 활성화 함수를 더 꼼꼼히 살펴보겠다.

잘못된 내용이 있으면 댓글로 부탁.

반응형
반응형

 


인공 신경망과 딥러닝

 

인공 지능(AI)이 이제 미래다.

그래서 인공 지능은 어떻게 무엇을 공부해야 하는지 찾아봤다.

딥러닝(DeepLearning), 머신러닝(MachineLearning) 등 용어가 자주 등장한다.

딥러닝을 시작으로 책도 보고 검색도 해봤다.

용어도 어렵고 복잡한 수식을 보면 그냥 책을 덮고 싶었다.

그래도 27년 차 개발자로 살아온 경력이 있는데 쉽게 포기할 순 없다.

전문가처럼 어려운 말이 아닌 내가 이해한 대로 쉽게 이야기해보려고 한다.

 

딥러닝을 공부하면 인공 신경망이란 용어를 만난다.

우리 뇌의 뉴런을 컴퓨터를 이용해 비슷하게 만든 것이 인공 신경망이라고 한다.

딥러닝에 있어 인공 신경망이란?

 

사칙연산

 

예를 들어,

깊이 있는 고등 수학 공부를 한다면 사칙연산은 기본으로 알아야 하는 것과 비슷하다.

딥러닝을 공부하기 위해서는 인공 신경망을 알아야 한다는 의미다.

인공 신경망으로 깊이 학습하는 구조를 만드는 것이 딥러닝(DeepLearning)이다.

아이고 어려운 용어만 난무한 내용이었다.

 

뉴런과 인공 신경망

 

앞서 이야기 한 것처럼 인공 신경망은 뉴런을 기초해서 만들었다고 했다.

 

뉴런 구조

 

이미지를 보자.

왼쪽 세포체에 붙어 있는 수상돌기에서 신호를 받는다.

이 신호는 뉴런 몸통을 통과해서 오른쪽 끝의 축삭말단에서 결과가 나온다.

그 결과 신호는 다시 다른 뉴런의 수상돌기에 보낸다고 한다.

그렇다면 입력 받는 신호, 즉 입력 신호는 무엇인가?

우리는 신호를 오감으로 생각하면 쉽게 이해가 된다.

오감이라면 시각, 미각, 후각, 청각 그리고 촉각이 있다.

사과(시각), 향이 좋아(후각), 맛있어(미각), 부드럽네(촉각), 사각사각소리(청각).

이 모든 것은 외부에서 감각을 받아들이는 눈, 코, 입 등 신체를 통해 뇌에 전달된다고 한다.

그래서 우리는 전달된 정보를 기반으로 사과라는 것을 안다. (인지)

 

오감

 

어떻게 알까?

과거의 기억을 바탕으로 현재 들어온

즉, 뉴런의 수상돌기를 통해 들어온 정보와 비교해서 인지하게 된단다.

외부의 자극(빛, 통증 등)을 전기적 신호로 변환해서 뉴런들을 통과하게 된다고 한다.

기존 기억으로 저장된 정보와 비교해서 가장 가능성 있는 정보를 인지해서 결과를 준다고 한다.

그래서 사과를 보면 사과라고 인지하게 되는 것이다.

반면, 사과를 처음 본 사람은 사과에 대한 기억(정보)이 없다.

그래서 복숭아, 배와 비슷한 형태로 과일이라는 추측만 하게 된다.

그 이유는 사과에 대한 정보가 부족했기 때문일거다.

뉴런에 대해 이야기했으니 이제 인공 신경망 이야기를 해보자.

컴퓨터 센서를 통해 값(정보)을 전달받는다.

이 값이 어떤 의미를 갖는지 판단(분류) 한 후 가장 어울리는 값을 돌려준다.

뉴런과 원리가 엄청 비슷하다는 것을 눈치챘는가?

 

사과

 

이때 입력값(정보)에서 특징을 정확히 분류해서 저장해 둔다.

사과에 대한 다양한 정보(색, 크기, 껍질 등)를 기반으로 스무고개 하듯 입력값을 분류한다.

그렇게 취합해서 최종 결과가 사과인지 판단한다.

이런 흐름으로 구성한 것을 인공 신경망이라 한다.

스무고개 질문을 다시 보면 특징(모양, 크기, 색상 등)을 확인해서 분류하는 과정이다.

몇 개가 될 수도 있고 좀 더 세밀하게 분류한다면 수 십 개가 될 수도 있다.

이렇게 깊이 있게 특징들에 대해 구분해서 학습하는 것, 바로 딥러닝(DeepLearning)이다.

즉, 깊이 있는 특징(질문)들은 입력받은 다양한 사과 사진을 보고 특징을 정리한다.

그러면 프로그램에서 알아서 질문(특징)들을 만들어 스무고개를 완성한다고 한다. (꼭 20개는 아니다)

 

분류와 가중치

 

인공 신경망은 뉴런을 보고 만들었다고 한다.

뉴런의 역할은 무엇인가?

뉴런을 기초로 한 인공 신경망은 도대체 뭘 하는 건가?

인공지능에서 인공 신경망은 왜 필요한가?

 

바로 분류를 하기 위해 존재하고 필요하다고 생각한다.

분류? 분류라면...

이것은 사과인가? 배인가?

이것은 초코파이인가? 오예스인가?

이것이 분류다.

바로 우리 뇌는 뉴런이 인공 지능에서는 인공 신경망이 그 일을 한다고 한다.

분류를 할 때 더 높은 가능성에 점수를 줘야 한다.

바로 가중치라고 한다.

특징을 보니 네모만 초콜릿과자니까 오예스에 더 가깝다는 결론에 도달한다.

 

인공 신경망, 딥러닝(DeepLearning)

 

예를 들어,

시각적으로 초콜릿으로 덮인 과자가 정보가 들어온다.

모양이 네모라서 가중치를 많이 줬다.

네모 초콜릿 과자라 가중치를 더 받았고 그 값이 커서 오예스로 분류했다.

 

마무리

 

인공 신경망을 배우기 위해 뉴런의 특징에 대해서도 알아봤다.

신호(값)를 입력받으면 내부 정보(특징)를 활용해서 무엇인지 분류한다.

판단 근거에 대한 정확도를 높이기 위해 더 많고 심도 있는 분류 조건이 필요하다.

즉, 더 많은 정보가 필요하다는 의미다.

깊은 학습, 바로 딥러닝(DeepLearning)을 통해 정확도를 높이게 된다.

우선 인공 신경망, 딥러닝, 가중치, 뉴런 등 용어가 더 친숙해졌다.

  • 뉴런 신호 전달에서 시작으로
  • 인공 신경망 구조를 알고
  • 가중치(점수)를 어떻게 활용하는지
  • 딥러닝, 깊이 있는 학습의 개념을 이해하게 되었다.

그렇다면 성공이다.

궁금하거나 잘못된 정보가 있다면 댓글에 알려주기 바란다.

반응형