CNN 8

Swin Transformer란?

Swin Transformer(Shifted Window Transformer)는 비전 트랜스포머(ViT)의 단점을 개선하여, 이미지 분류, 객체 검출, 분할(Segmentation) 등 다양한 비전 작업에 최적화된 모델이다. Microsoft Research에서 2021년에 발표했으며, 기존 CNN보다도 강력한 성능을 보인다.1. Swin Transformer의 핵심 개념1) Shifted Window 기반의 지역적(Self-Attention) 연산기존 ViT(Vision Transformer)는 Self-Attention을 적용하지만, 이는 연산량이 매우 많음.Swin Transformer는 이미지를 작은 창(Window) 단위로 나누고, 각 창에서 Self-Attention을 수행하여 연산량을 감소..

PixelRNN

PixelRNN은 이미지 생성 모델로, 이미지의 픽셀을 순차적으로 예측하는 방식을 사용한다. 주로 자연스러운 이미지 생성을 목표로 하며, 각 픽셀의 값은 이전 픽셀들의 값에 의존하는 확률 모델을 기반으로 계산된다. PixelRNN은 픽셀 간의 의존성을 학습하여 점진적으로 이미지를 생성하는데, 이를 통해 더 세밀하고 자연스러운 이미지를 얻을 수 있다.arXiv:1601.06759주요 특징:순차적 예측: 이미지를 한 번에 생성하는 대신, PixelRNN은 픽셀을 하나씩 순차적으로 예측한다. 각 픽셀은 그 이전에 생성된 픽셀들에 의존하게 된다.RNN 구조: PixelRNN은 순환 신경망(RNN)을 사용하여 이미지의 각 픽셀을 생성한다. 각 픽셀은 행렬의 가로와 세로 방향에서 각각의 RNN 계층을 통해 계산되며..

컴퓨터공학/RNN 2024.10.21

Vision Transformer

Vision Transformer(ViT)는 기존의 합성곱 신경망(CNN)과는 다른 방식으로 이미지를 처리하는 혁신적인 딥러닝 모델이다. ViT는 이미지 인식, 분류, 객체 탐지 등에서 매우 우수한 성능을 보여주고 있으며, 자연어 처리에서 도입된 Transformer 모델의 개념을 시각적 데이터 처리에 적용한 것이 특징이다.ViT의 핵심 개념패치 분할(Patch Embedding): ViT는 이미지를 고정 크기의 패치로 나누어 각각을 작은 시퀀스로 처리한다. 예를 들어, 224x224 크기의 이미지를 16x16 크기의 패치로 나누면, 이 이미지가 14x14개의 패치로 변환된다. 이 패치들은 각각 Transformer 모델에 입력되는 시퀀스 역할을 한다.위치 인코딩(Position Encoding): Tr..

CNN 자바로만 구현하기

CNN을 구현해 보고자 한다.파이선의 텐서플로우를 사용하면 쉽게 구현할 수 있겠지만 공부를 위해서 또 향후 좀더 발전된 알고리즘을 개발하기 위해 Java로 구현하고자 한다. 물론 Java에도 Deeplearning4j라는 라이브러리가 있지만 이 역시 사용하지 않고 순수 코드로만 작성한다.구현은 고전적인 숫자학습으로 하고자 한다. 입력 데이터 셋 : https://yann.lecun.com/exdb/mnist/인식율은 90~92% 정도 되는 것 같다. import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.u..

컴퓨터공학/CNN 2024.08.18

Convolutional Layer(합성곱층)

Convolutional Layer(합성곱층)는 Convolutional Neural Networks(CNN)의 핵심 구성 요소 중 하나로, 이미지나 신호에서 특징을 추출하는 역할을 한다. Convolutional Layer의 작동 원리와 주요 개념들을 아래에 상세히 설명하겠다.Convolutional Layer의 주요 개념필터(Filter) 또는 커널(Kernel):필터는 작은 크기의 행렬(예: 3x3, 5x5 등)로 구성된다.필터의 값은 학습을 통해 조정되며, 초기에는 랜덤 값으로 시작한다.각 필터는 이미지의 특정 특징(에지, 텍스처 등)을 감지한다.여러 개의 필터를 사용하여 다양한 특징 맵을 생성할 수 있다.스트라이드(Stride):필터가 입력 이미지 위를 이동하는 간격을 나타낸다.스트라이드가 1이..

컴퓨터공학/CNN 2024.08.14

CNN/RNN/Transformer 특징 장단점 비교하기

CNN(Convolutional Neural Networks), RNN(Recurrent Neural Networks), 생성형 AI에서 사용하는 트랜스포머(Transformer)의 차이점과 특징을 설명한다. 1. CNN (Convolutional Neural Networks) 구조와 동작 방식:CNN은 이미지 데이터 처리에 주로 사용된다. 입력 이미지에서 특징을 추출하기 위해 컨볼루션 필터를 사용한다.필터를 통해 지역적인 특징을 학습하고, 풀링 레이어를 통해 차원을 축소한다. 장점:이미지 및 영상 데이터 처리에 매우 효율적.지역적인 특징을 잘 학습할 수 있음.파라미터 수가 적고, 학습이 비교적 빠름. 단점:순차 데이터 처리에는 적합하지 않음.이미지의 전체적인 문맥을 이해하는 데 한계가 있을 수 있음. ..

컴퓨터공학/NN 2024.08.10

다층 퍼셉트론(MLP, Multi-Layer Perceptron)

다층 퍼셉트론(MLP, Multi-Layer Perceptron)은 인공 신경망의 한 형태로, 여러 개의 퍼셉트론 층으로 구성되어 있다. MLP는 입력층, 하나 이상의 은닉층, 출력층으로 이루어져 있으며, 각 층은 다수의 노드(뉴런)로 구성된다. MLP는 단순한 퍼셉트론으로 해결할 수 없는 비선형 문제(XOR 문제)를 해결할 수 있도록 고안되었다.다층 퍼셉트론의 구조입력층(Input Layer):네트워크의 첫 번째 층으로, 각 노드는 입력 데이터를 받아들인다. 이 층은 단순히 데이터를 다음 층으로 전달하는 역할을 한다.은닉층(Hidden Layers):하나 이상의 은닉층으로 구성될 수 있으며, 각 은닉층은 여러 개의 노드로 구성된다. 은닉층의 노드는 입력 데이터를 처리하고 특징을 추출하는 역할을 한다.은..

컴퓨터공학/NN 2024.08.06

CNN(Convolutional Neural Network)이란

CNN(Convolutional Neural Network, 합성곱 신경망)은 주로 이미지와 같은 데이터를 처리하는 데 사용되는 딥러닝 모델이다. CNN은 이미지 분류, 객체 탐지, 영상 처리, 의료 영상 분석 등 다양한 분야에서 널리 사용되고 있다. CNN의 주요 구성 요소와 작동 원리는 다음과 같다.주요 구성 요소Convolutional Layer (합성곱 층):이미지의 특징을 추출하는 역할을 한다. 필터(또는 커널)를 사용하여 입력 이미지와 합성곱 연산을 수행한다.각 필터는 이미지의 다른 특징을 감지하는 데 사용되며, 필터의 가중치는 학습을 통해 조정된다.활성화 함수(ReLU)를 적용하여 비선형성을 추가한다.Pooling Layer (풀링 층):입력 이미지의 크기를 줄여 계산량을 줄이고, 중요한 특..

컴퓨터공학/CNN 2024.08.05