본문 바로가기

CNN8

42번째 이야기 - 합성곱 신경망, CNN, 비정형 데이터, ● 이제껏 꽤나 긴 호흡으로 합성곱 신경망(CNN)을 살펴보았습니다. ● 네, 다른 건 몰라도 합성곱 신경망이 이미지 인식을 잘하는 딥러닝 기법의 신경망이라는 건 잘 알겠습니다.● 그런데 말입니다. 합성곱 신경망이 이미지 인식을 잘 한다는 것은 무엇을 의미하는 것일까요? ● 물론 본래 이미지가 갖고 있는 정답을 잘 예측하는 것이라 할 수 있습니다. ● 컴퓨터는 비정형 데이터인 이미지를 픽셀값의 수치로 인식합니다. ● 아래 그림과 같이 픽셀값으로 이미지를 인식하게 되면 이미지의 위치가 달라지거나 회전하거나 관점(Point of view)을 달리하거나, 크기를 달리하거나 조명(조도)에 변화를 주면 같은 사물의 이미지라 하더라도 완전히 다른 것으로 인식할 수 밖에 없습니다.     ● 그러나 합성곱 신경망은 .. 2024. 6. 2.
41번째 이야기 - CNN, 합성곱층, 풀링층, 전결합층 ● 정리해봅시다. CNN은 합성곱층, 풀링층, 전결합층으로 구성됩니다. 합성곱층은 특징 추출을 담당하며, 풀링층은 차원을 축소하여 신경망의 규모를 줄여줍니다. 전결합층은 추출된 특징 정보를 활용해 최종적으로 분류를 수행합니다.● 축하합니다. 드디어 합성곱신경망의 구조와 각각의 층들이 하는 일에 대해 개념적으로 파악하게 되었습니다. 여기까지의 코드는 다음과 같습니다.  from keras.models import Sequential  from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout  model = Sequential()  model.add(Conv2D(32, kernel_size=(3, 3), strides=1, padding=.. 2024. 6. 2.
40번째 이야기 - 전결합층과 드롭아웃, MLP, 과적합 방지 에서의 전결합층과 드롭아웃, 신경망의 개선>● 합성곱 신경망(CNN)의 합성곱층(특징 추출)과 풀링층(차원 축소)을 거치게 되면 아래의 이미지와 같이 길고 깊게 이어진 빨대 모습의 추출된 특징을 얻게 됩니다.   ● 이제 이 추출된 특징을 가지고, 실제로 이미지를 분류해야 합니다. ● 분류를 위해서 특별한 구조가 필요한 것은 아닙니다. 분류는 이전에 살펴보았던 일반적인 신경망 구조인 MLP(전결합층)으로도 충분하니까요.● 사실 MLP는 분류에 매우 효과적입니다. 잠시 이미지 인식을 위해 합성곱층을 사용한 이유를 복습해볼까요?● MLP(전결합층)에서는 2차원의 이미지를 다룰 수 없기 떄문에 1차원의 벡터로 변환해주어야 하는 불편함이 있었습니다. 즉, 2차원의 이미지를 다루지 못한다는 것은 공간 정보의 손실.. 2024. 6. 2.
38번째 이야기 - 풀링층, 이미지 압축 작용, 최대 풀링, 커널 윈도우 ● 풀링층을 사용하는 이유를 정리해봅시다. CNN에서는 합성곱 층에서 수많은 합성곱 필터를 사용합니다. 즉, 합성곱 연산의 결과 출력되는 특징맵의 깊이가 깊어지고, 파라미터의 수가 기하급수적으로 증가하게 됩니다.● 이때, 풀링층을 사용하면 중요한 특징을 간직하면서도 이미지의 크기를 줄여 다음 층에 전달할 수 있게 됩니다(물론 세세한 모든 특징을 다 전달할 수는 없습니다. 하지만 중요한 특징은 기억하여 보냅니다.).● 이미지를 압축하면 해상도가 떨어집니다. 그러나 즁요한 특징을 유지하면서 용량을 줄여주는 효과가 있습니다. 바로 풀링층은 합성곱 층에서 '이미지 압축 작업'의 역할을 합니다.  ● 그러나 최근에는 풀링층을 배제하고, 합성곱 층만을 활용해 CNN을 구성하는 방법이 많이 제안되고 있습니다. 왜 그.. 2024. 6. 2.
35번째 이야기 - 커널 사이즈, 스트라이드, 패딩, 합성곱 신경망 합성곱 신경망의 합성곱층에서는 어떤 일이 벌어지는 걸까? (커널 사이즈, 스트라이드, 패딩에 관하여)>● 합성곱층은 CNN의 은닉층입니다. 즉, 특징 학습이 이루어지는 곳이죠. 합성곱 필터의 개수(filters)를 늘리면 MLP(다층 퍼셉트론)의 은닉층의 개수를 증가시킨 것과 같으므로, 더욱 복잡한 패턴을 탐지하며 학습할 수 있게 됩니다.   ● 합성곱 필터의 개수는 은닉층의 개수를 의미합니다. ● 커널 크기(kernel_size)는 말 그대로 합성곱 필터인 커널의 크기를 의미합니다. 커널은 가중치가 담긴 행렬이며, 입력 이미지 위를 돌아다니면서 특징을 추출하는 역할을 한다고 말씀드렸습니다. 보통 커널 크기(kernel_size)는 합성곱 필터의 크기*높이를 뜻합니다.    ● 직관적으로 봤을 때, 커널.. 2024. 6. 2.
33번째 이야기 - 합성곱 신경망, CNN, 합성곱층, Convolution layer ● 오랜만에 뵙습니다. 합성곱 신경망(CNN)의 구조에 대해 간단히 살펴보도록 하겠습니다. ● 일반적인 신경망의 학습은 입력층에서 은닉층을 거쳐갈수록 점점 복잡한 특징들을 학습해나갑니다. ● 기본 특징(모서리나 직선 등)에서부터 조금 더 복잡한 패턴(원, 정사각형) 그리고 더 복잡한 추상화된 패턴(고양이 수염, 얼굴의 부분, 자전거 바퀴 등)에 이르기까지 말이죠. ● 합성곱 신경망 또한 이러한 일반적인 신경망의 학습과 별반 다르지 않게 진행됩니다. 오차를 계산하여 오차만큼 역전 파한 후, 가중치를 조정해가는 학습의 과정도 물론 동일합니다. ● 단, 하나! 일반 신경망에서는 특징의 학습을 전 결합층(Fully-Connected layer = MLP)에서 했다면, 합성곱 신경망에서는 합성곱층(Convolut.. 2022. 11. 21.