빅데이터 파이썬 기반

딥러닝 CNN 기초 컨볼루션 개념

도꺠비 개발자 2022. 9. 30. 22:18
728x90

 ( 이번의 포스팅은 유튜버 Neo Wizard 교수님의 강의를 보고 정리한 개념입니다 )

 

딥러닝 CNN 은 사진을  가지고 딥러닝을 할 때 사용하는 기술입니다 그중 가장 핵심인 컨볼루션 개념에 대해서 보고 공부한 것을 적어보려고 합니다  요번 포스팅을 보시면 딥러닝 CNN의 커널인 컨볼루션의 개념을 아실 수 있을 것입니다

 

밑에 컨볼루션의 수학적 정의를 적어보려고 합니다 괴물 같은 식인데 보고 뒤로 나가지 마세요 엄청 쉽습니다

Neo Wizard 교수님의 강의 중 한 사진

자 위에 식을 보니 적분을 해야할 것 같고 함수를 곱해야 할것 같은 식이 나오는데요 사실 컨볼루션의 개념을 수학적 정으로만 가지고 한다면 세상 어느 사람도 100 이해하기 힘들 것이라고 봅니다 

 

아주 간단하게  2번은 어떤 변화를 줄 수 있는 값 2번 안에 있는 t는 움직이는 변화 ( 시간의 변화 ) 3번 들어온 데이터의 변화를 주는 행동 4는 변화를 준행동을 전부 곱하는 것인데요

 

Neo Wizard 교수님의 강의 중 한 사진

자 위에 식과 대조해서 해석을 보시면 조금 이해되실 텐데요 사진은 rgb 총 255 개의 숫자로 나타내는 색으로 컴퓨터는

표현합니다 즉 사진의 값 하나당 작으면 0 크면 255라는 숫자를 가진다는 것이죠 

 

사진 하나의 데이터를  움직이면 원본의 값을 변화를 주고 평 군적으로 데이터가 얼마나 변하는지 나타내는 것 을 컨볼루션 

이라고 적혀있습니다  이렇게 글로 해석을 해도 이해가 안 된다고 하실 수 있습니다 

Neo Wizard 교수님의 강의 중 한 사진

 

자 위에 4행 4열의 행렬을 f(x)라는 값이 있습니다 즉 사진 한 장을 rgb ( 255 개의 숫자로 표현 한색 )의 데이터 하나와

데이터의 값을 변화를 줄 수 있는 값 g(x) 값이 있습니다  g 값은 3행 3 열이죠 dot 연산은 첫 번째 행의 열과 두 번째 행열의 행이 같아야 연산이 가능한데요 그래서 g(x) 함수는 자기한테 맞는 크기를 찾아 연산합니다 

 

0일 때는 자기에 딱맞게 1번부터 t 가 1 일떄는 뒤로 움직여서 2는 또다시 움직이고 3도 또다시 움직이고 이렇게 사진 한 장을 다 연산을 할 때까지 컨볼루션 연산을 하는데요

 

이 정도면 충분히 이해하셨나요? 다시 위에 식을 보면  (적분식) f(x) g(x-t) dx를 보시면 f(x)와 g(x-t)는 데이터 값의 행과 열을 움직이면서 원본 데이터를 f(x)의 값을 연산하는 것이고요 적분식 은 그것을 전부 더하는 것입니다 

 

이 정도만 아시면 컨볼루션의 개념은 충분히 이해하셨다고  생각합니다 감사합니다

 

 

 

728x90