딥러닝60 Xception 구조 및 특징 Inception 모델에 이어 Xception 모델을 알아보겠습니다. 이 모델도 이미지 분류 작업을 위해 설계된 CNN(컨볼루션 신경망) 아키텍처입니다. Keras 딥러닝 라이브러리 창시자인 François Chollet가 2017년에 발표한 "Xception: Deep Learning with Depthwise Separable Convolutions"라는 논문에서 제안한 것입니다. Inception과 차이점 '엑스셉션(Xception)'이라는 이름은 '극단적인(eXtreme)'과 '인셉션(Inception)'을 합친 것입니다. 이는 널리 사용되는 Inception 아키텍처에 사용되는 블록인 Inception 모듈의 극단적인(extreme) 버전을 나타냅니다. 기존 Inception 모델이 채널(1x1.. 2024. 3. 11. Residual Network(ResNet) 아이디어: skip connect Residual Network 또는 ResNet이라고 불리는 CNN 아키텍처에 대해 알아보겠습니다. 2015년에 Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun이 "Deep Residual Learning for Image Recognition"라는 논문에서 소개되었습니다. Residual Network 아이디어 CNN의 대표적인 모델인 AlexNet의 경우 8개의 layer를 사용했으며 GoogleNet은 22개의 layer를 사용했습니다. 그리고 ResNet은 52개의 layer의 사용하여 Layer를 늘렸을 때 성능이 더 좋아 진다는 것을 결과로 증명하였죠. 층을 깊이 쌓을수록 더 좋다는 것은 어느 정도 통용되기 시작했는데요. 그렇다고 Layer를 무작정 늘.. 2024. 3. 11. 인셉션(Inception) 특징: 1x1 Conv, Auxiliary classifier 인셉션(Inception) 모델의 아이디어와 블럭의 살펴보면서 두 가지 특징으로 1x1 Convolution과 Auxiliary classifier라고 이야기했습니다. 이 글에서는 그 두 가지를 더 자세히 살펴보도록 하겠습니다. 1x1 Convolution 특징 1x1 Conv의 의미 1x1 Conv는 채널 전체 정보의를 유지하면서 필터 수를 줄여서 차원 감소를 가능하게 하는 역할을 했습니다. 블럭과 블럭을 연결하는 레고블럭과 같은 역할을 한다고 볼 수 있죠. 예를 들어, Inception과 같이 블럭단위로 기능을 하는 네트워크 안에 또 다른 네트워크가 존재하는 계념입니다. 또 다른 용어로 Point-wise Convolution이라고 표현하기도 합니다. 점마다 수렴하는 Conv(합성곱)이라는 의미입니다.. 2024. 3. 7. GoogleNet의 인셉션(Inception) 블럭을 뜯어보자 인셉션 모델은 컨볼루션 신경망 (Convolutional Neural Network, CNN) 아키텍처의 하나로 이미지 인식 및 분류 작업에 널리 사용됩니다. CNN의 발전 방향에서 GooLeNet이 2014년 이미지넷(ImageNet) 대회에서 우승했다는 이야기를 했는데요. 이 모델은 GoogLeNet 모델에서 영감을 받아 발전하게 됩니다. Inception 모델 아이디어 Inceptoin이라는 명칭은 영화 ‘인셉션’에서 이름을 가져왔다고 합니다. 눈문에 영화 대사인"더 깊이 가야 해, we need to go deeper” 말을 인용하기도 합니다. 모델은 대부분이 Inception 블럭들의 조합으로 구성되어 있습니다. 이는 신경망의 두가지 이슈 때문입니다. 첫째는 모델을 deep 하게 하면 Overf.. 2024. 3. 6. CNN 층은 깊을수록 좋을까? 신경망의 층의 깊이도 하나의 하이퍼파라미터로 우리가 선택해야 할 숙제입니다. 일반적으로 층(Layer)을 깊게 쌓을수록 이점이 있다고 알고 있는데 그 확실한 이점은 논의된 것이 별로 없었습니다. 이 글에서는 CNN에서 깊은 층의 이점과 표현력에 대한 관계를 살펴보도록 하겠습니다. CNN에서 깊은 층은 어떤 이점이 있을까? 1. 표현력 향상: 복작한 패턴 인식 Layer를 깊게 쌓으면 모델이 데이터의 저수준 특징뿐만 아니라 고수준 특징도 추출할 수 있습니다. 처음 몇 개의 layer는 간단한 특징을 추출하고, 점차적으로 더 복잡하고 추상적인 특징을 학습합니다. 그래서 깊은 layer는 데이터의 복잡한 패턴과 구조를 인식할 수 있습니다. 깊은 Layer는 데이터를 더욱 계층화된 방식으로 표현할 수 있습니다... 2024. 3. 5. 이미지 데이터 증강(Data Augmentation) 방법 데이터 증강(Data Augmentation)은 훈련 데이터가 부족할 때 데이터를 늘려주는 방법입니다. 그렇다면 오버 샘플링(Over Sampling)하고 차이점이 뭘까요? 오버 샘플링은 불균형 데이터를 균형을 맞추는 과정에서 데이터를 더 만들어 준다면, 데이터 증강은 기존 데이터를 변형시켜 더 많은 훈련 데이터를 확보하는 기법입니다. 특히 CNN(Convolutional Neural Networks)과 같은 이미지를 다루는 심층 신경망을 사용하는 경우 데이터 증강은 모델의 성능을 향상시키고 일반화 능력을 향상시키는 데 도움이 됩니다. 이 데이터 증강이 필요한 몇 가지 이유가 있습니다. 데이터 증강이 필요한 이유 1. 데이터 부족 문제 해결 데이터가 적으면 모델이 충분히 다양한 패턴과 특징을 학습하기 어.. 2024. 3. 4. CNN 모델 종류: LeNet, AlexNet, VGG, GoogleNet 비교 CNN의 역사를 보면 다양한 아키텍처로 발전해 왔습니다. 그 중에서도 기본적으로 알아야할 4가지 알고리즘에 대해 살펴보도록 하겠습니다. 바로 LeNet, AlexNet, VGG, GoogleNet 입니다. LeNet LeNet은 '르넷'으로 읽으며, 1998년 제안된 CNN의 초기 모델입니다. 주로 손글씨를 인식하는 네트워크로 활용했죠. 합성곱 계층과 풀링 계층을 반복하고 마지막에 완전 연결 계층을 거치면서 결과를 출력합니다. CNN의 공식데로 합성곱과 풀링 계층을 반복하는 것이 특징이죠. 풀링(Pooling)은 단순히 원소를 줄이기만 하는 서브샘플링(sub sampling) 계층이 있는 것이 특징입니다. Sub sampling 방법은 최대 풀링(max pooling), 평균 풀링(average pool.. 2024. 2. 29. CNN의 발전 방향 및 생각해 볼 문제 지금까지 CNN의 기본적인 개념들을 알아봤습니다. 그런데 이런 개념들을 적용해 CNN은 어떻게 발전해 왔을까요? CNN의 등장 이후 여러 논문을 통해 다양한 네트워크들이 나오면서 발전해 갔습니다. 이 글에서는 CNN의 발전 방향과 그로 인해 몇 가지 생각해 볼 문제를 다뤄보겠습니다. CNN의 등장 CNN의 초기 아이디어는 1980년대에 얀 르쿤(Yann LeCun)과 그의 동료들에 의해 제안되었습니다. 바로 “Backpropagation applied to handwritten zip code recognition, LeCun, 1989” 이 논문에서 소개되었죠. 그 당시에는 손으로 쓴 우편번호를 인식하는데 활용되었습니다. CNN은 생물학적인 시각 시스템에서 영감을 받았습니다. 알고리즘은 이미지의 특징을.. 2024. 2. 28. CNN의 3차원 계산 및 분류 과정 CNN의 경우 합성곱 계층을 처리를 위해서는 3차원 벡터(또는 텐서)를 사용합니다. 합성곱 계층 역할에서 이해를 위해 2차원 벡터로 설명을 하였습니다. 이 글에서는 3차원 벡터를 이용할 때 계산 방법을 설명하도록 하겠습니다. 또 한 가지는 3차원 벡터를 분류를 위해 아래 그림처럼 1차원 벡터로 변경해줘야 합니다. 이 과정은 CNN의 특징 추출 단계 이후, 그 결과를 완전 연결층(fully connected layers)에 입력으로 넣기 위해 필요합니다. 합성곱 + 풀링 이후 출력 영역의 처리 과정도 이야기해 보도록 하겠습니다. 3차원 데이터 합성곱 연산 3차원 데이터 연산은 입력 데이터와 필터의 합성곱 연산을 채널마다 수행하고 그 결과를 더해서 하나의 출력을 얻게 됩니다. 여기서 주의 사항은 입력 데이터.. 2024. 2. 26. 이전 1 2 3 4 5 6 7 다음