본문 바로가기
deeplearning/tensorflow(keras)

텐서플로우 - 컨볼루션 개념

by jinny-log 2024. 9. 15.

https://youtu.be/63Y4tP_soXc?si=JY3L_rFd2ynETA5a

 

이 영상은 컴볼루션의 개념을 깊이 있게 탐구하며, 데이터의 흐름과 변화를 수학적으로 이해하는 방법을 제시합니다. 컴볼루션은 두 함수의 곱을 적분함으로써 데이터를 분석하는 기법으로, 시간에 따른 데이터의 평균적 변화를 나타내는데 중점을 두고 있습니다. 이 영상은 복잡한 수학적 원리를 직관적으로 설명하여 이해를 돕고 있습니다.

 

핵심주제

컨볼루션은 두 개의 함수를 활용하여 데이터를 변화시키는 수학적 연산입니다.
  • 컨볼루션은 f와 g라는 두 함수를 곱하고 적분하여 데이터를 변화시키는 과정입니다.
  • 이 과정은 시간 변화에 따라 원본 데이터에 곱셈과 덧셈을 통해 변화를 주는 것으로 설명됩니다.
곱셈과 덧셈은 컨볼루션의 기본적인 연산으로, 데이터의 변화를 의미합니다.
  • 원본 데이터에 대한 곱셈은 원하는 출력 데이터를 생성하는 역할을 하며, 덧셈은 변화를 통합하여 평균을 구하는 개념을 포함합니다.
  • 이러한 연산을 통해 컨볼루션은 풍부한 데이터 표현을 가능하게 합니다.
컨볼루션의 시간 전이 개념은 데이터를 얼마나 변화시키는지를 보여줍니다.
  • 함수 f와 g의 시간 변화에 따라 두 함수의 겹치는 부분이 달라지며, 이러한 변화가 컨볼루션의 적분 결과에 직결됩니다.
  • 시간에 따라 g 함수가 이동함으로써 f 함수에 미치는 영향을 통해 컨볼루션이 이루어집니다.
CNN에서 컨볼루션은 고차원 데이터를 다루는 핵심 개념입니다.
  • CNN에서는 데이터 f와 dx를 행렬이나 텐서로 표현하며, 이들을 통해 컨볼루션이 이루어진다는 점에서 중요합니다.
  • 실제 데이터 처리 과정에서는 시간 t=0에서의 곱셈 결과가 각기 다른 값으로 도출됩니다.

타임라인

1. 컨볼루션의 개념과 수학적 정의

  • 오늘은 수학의 구조의 핵심인 컨볼루션의 개념에 대해 알아보겠다.
  • 컨볼루션은 두 개의 함수 f와 g를 곱하고, 그 결과를 무한대에서 부정할 때까지 적분하는 것으로 정의된다.
  • 적분 변수 t에 대해 하나의 함수를 시간 t만큼 이전으로 이동시킨 후, 다른 함수 g와 곱하고 전체 구간에 대해 접근한다.
  • 즉, 컨볼루션은 적분 변수 t가 함수를 이동시킨 후 결과를 적분하는 과정이다.
  • 그러나 이러한 수식이나 내용을 읽어보더라도, 과연 컨볼루션이 무엇인지 직관적으로 이해하기는 어렵다.

2. 🧮컨볼루션의 의미와 데이터 관점에서의 해석

  • 컨볼루션의 의미를 이해하기 위해, 내용을 직관적으로 이해할 수 있도록 수식을 변화시켰다.
  • 변수 t를 친숙한 변수 x로 바꾸고, 시간 d에 대해서만 이동하는 수식으로 변경한 것을 확인할 수 있다.
  • 컨볼루션은 시간 변화에 따른 곱셈과 덧셈 연산으로 구성되며, 데이터 관점에서 두 연산의 의미를 단계별로 알아보았다.
  • 곱셈은 원본 데이터에 변화를 주는 연산으로 설명되며, 이 원리를 컴볼루션 공식에 적용하면 숫자 3의 변화가 생긴다.
  • 곱해지는 수치(1, 0)는 수식에서 특정 변화를 나타내는 텍스트로 해석할 수 있다.

3. 데이터 변화를 위한 곱셈과 덧셈의 이해

  • 원본 데이터 f(x)의 다양한 변화를 주기 위해 txt를 곱하는 과정을 설명합니다.
  • 곱셈 연산은 원본 데이터를 변화시켜 원하는 출력 데이터를 생성하는 역할을 하며, 변화를 주기 위해 계속해서 txt를 곱합니다.
  • 다음으로 + 연산을 통해 내부적으로 평균의 의미를 내포하고 있다는 점을 강조합니다.
  • 적분도 더하기 개념으로 이해되며, 평균 개념을 포함한다고 볼 수 있습니다.
  • 따라서 곱셈과 덧셈의 물리적 의미를 바탕으로 컴볼루션을 해석할 수 있으며, 이는 원본 데이터의 여러 변화를 생성하고 그 변화의 평균을 구하는 과정으로 이해할 수 있습니다.

4. 데이터 관점에서 시간의 변화와 컨벌루션 이해하기

  • 이제 데이터 관점에서 곱하기와 더하기의 의미를 마치고, 시간의 변화 과정을 나타내는 1번 부분을 더 자세히 알아볼 것이다.
  • 시간의 전이 개념을 이해하기 위해 함수 f(x) g(x)를 정의하고, 시간 변화에 따른 컨벌루션 과정을 살펴볼 예정이다.
  • 시간의 변화가 0일 때 원래 함수 f g는 변화가 없어서 두 함수의 컨벌루션을 계산하면 겹치는 부분이 존재함을 확인할 수 있다.
  • 시간이 1일 경우 함수 f는 그대로 있고, g 함수는 위치가 이동하여 두 함수의 겹치는 구간을 확인할 수 있다.
  • 이러한 상태에서 적분 결과를 계산하면 컨벌루션의 결과를 도출할 수 있음이 밝혀진다.

5. 컨볼루션의 시간 전이 개념 이해하기

  • 시간 t가 2초일 때, 함수 f는 변하지 않지만 함수 g는 t 변수를 가지고 있어 한 칸 오른쪽으로 이동하여, 2와 3 부근에서 겹친다.
  • 이는 정적분을 계산하면 컨벌션 적합이 나온다는 것을 알 수 있다.
  • 컨볼루션에서 시간의 흐름은 원본 데이터 f(x)의 변화를 주며, g(x)를 이동시켜 f(x)의 변화를 유도하는 과정이다.
  • 따라서, 컨볼루션은 시간의 흐름에 따라 데이터 g(x)가 이동하면서 입력 데이터 f(x)를 평균적으로 변화시키는 것을 의미한다.
  • 즉, 시간에 따른 이동 개념과 곱셈, 덧셈으로 작업이 이루어진다고 이해할 수 있다.

6. 컨볼루션의 개념과 물리적 의미

  • 데이터 관점에서 컨볼루션의 개념과 물리적인 의미를 설명하고 이후 실제 시나리오에서 어떻게 구현되는지 알아보겠습니다.
  • CNN과 같은 딥러닝에서는 데이터 f(x)와 dx가 일반적으로 행렬 또는 텐서와 같은 고차원 데이터로 표현됩니다.
  • 적분의 형식은 유지되지만, 원칙적으로는 시간의 흐름으로 표시되어야 합니다.
  • 시간 t=0에서 f와 dx가 겹치는 부분의 곱셈 결과는 10으로, 이후 경우에 따라 각각 16, 2, 15라는 결과를 얻게 됩니다.

7. CNN의 컨볼루션 개념과 다음 주제 소개

  • 이번 장에서는 fx와 dx를 바탕으로 컨볼루션이 실제 어떻게 수행되는지를 설명할 예정이다.
  • CNN의 핵심인 컨볼루션의 개념과 연산 과정을 모두 알아보았고, 다음 시간에는 CNN 아키텍처와 2D 트위터, 풀링 패딩의 역할에 대해 자세히 알아보겠다.
  • 모두 수고하셨습니다.