https://www.youtube.com/watch?v=9Cu2UfNO-gw
사실 아무리 CNN을 보고 봐도 직관적으로 이해가 되지 않았다.
그래서 일단 강의를 올 스톱 시켜놓고 CNN에 대한 다른 설명들을 찾아 공부를 시작했다.
그래서 찾은 위의 두 링크를 통해 직관적으로 받아들일 수 있게 되었다.
혹시 나와 같은 고민을 하고 계신 분이 계시다면 위의 두 링크를 들어가 공부하시길 강력 추천한다!
아래는 공부와 이해 정리
인간의 두뇌는 매우 강력한 기계입니다. 우리는 1초마다 여러 이미지를 보고(캡처) 처리 방법을 알지 못한 채 처리합니다. 그러나 기계의 경우는 그렇지 않습니다.
이미지 처리의 첫 번째 단계는 기계가 읽을 수 있도록 이미지를 표현하는 방법을 이해하는 것입니다.
=> 일종의 인간의 두뇌를 기계로 생각하고
=> 이미지를 0과 1로 이루어진 데이터로 표현
=> 이 데이터를 이용한 알고리즘을 개발
간단히 말해서 모든 이미지는 특별한 순서로 배열된 점(픽셀)의 배열입니다. 픽셀의 순서나 색상을 변경하면 이미지도 변경됩니다. 예를 들어 보겠습니다.
=> 어떠한 이미지도 픽셀로 쪼개져있고
=> 각 필셀은 하나의 행렬 값으로 표현할 수 있다.
=> 색이 들어간 픽셀 값은 다차원으로 RGB 값을 넣을 수도 있다.
fully connected network 를 사용하여 식별한다고 가정해 보겠습니다. 그것은 무엇을합니까?
=> 처음에 공부하고 넘어갔을때는 fully connected network 를 아 그렇구나하고 넘어갔었는데, 이 원리가 궁금해졌다.
=> 전에 공부했던 MLP에서 공부했던 퍼셉트론들의 원리가 적용됨
Fully Connected Neural Network홍정모 교수님의 강의
https://www.youtube.com/watch?v=VOtnU7Vp4WA
완전히 연결된 네트워크는 이 이미지를 평면화하고 픽셀 값을 이미지의 수를 예측하는 기능으로 고려하여 이 이미지를 배열로 사용합니다. 확실히 네트워크가 아래에서 일어나는 일을 이해하는 것은 어렵습니다.
것이 숫자 4의 표현이라는 것을 인간이 식별하는 것은 불가능합니다. 우리는 픽셀의 공간적 배열을 완전히 잃어 버렸습니다.
우리는 무엇을 할 수 있습니까? 공간 배열이 유지되도록 원본 이미지에서 특징을 추출해 보겠습니다.
사례 1. 데이터 값에 가중치(1차원 데이터)를 일괄적으로 적용해 큰 데이터를 더욱 큰 데이터로 만들기
=> 공간적 배열 보존 x
사례 2. 공간 배열 보존을 위해 다차원(픽셀 값의 2D/3D 배열) 가중치를 적용
=> 두개의 가중치를 반영하기 때문에 특정(가장자리 오른쪽이나 왼쪽) 데이터들이 손실을 당하는 결과를 얻음
사례 3. 패딩으로 가장자리에 0 데이터를 적용
=> 위의 문제가 해결이 됐으나 이미지의 크기가 더 커짐.
사례 4. 그래서 (0.1, 5), (1, 0.3) 두가지 가중치(여러 가중치)를 반영한 결과 값들을 결합
사례 5. 지금까지 수평 픽셀을 사용하려는 가중치를 사용. 그러나 대부분의 경우 수평 및 수직 방향의 공간 배열을 보존해야함. 그래서 수평 및 수직 방향 모두를 반영한 가중치를 적용. 예를들어, ((1, 0.3), (0.5, 2))
위에서 우리가 한 것은 이미지의 공간적 배열을 사용하여 이미지에서 특징을 추출하려고 했던 것입니다.
우리는 입력 이미지를 가져오고 가중치 행렬을 정의할 수 있으며 입력은 공간 배열에 대한 정보를 잃지 않고 이미지에서 특정 특징을 추출하도록 컨볼루션됩니다.
위에서 보았듯이 컨볼루션된 이미지는 원본 이미지에 비해 픽셀 수가 적습니다. 이렇게 하면 네트워크에 대해 훈련해야 하는 매개변수의 수가 크게 줄어듭니다.
=> 공간 데이터 / 이미지 데잉터 / 해당 이미지를 그대로 특정하며 매개변수를 줄임