분류 전체보기
-
DenseNet의 아이디어딥러닝/CNN 모델 2022. 6. 9. 15:25
DenseNet은 2016년 발표된 논문입니다. ResNet이 2015년에 발표되었고 다음해에 발표되었습니다. 이 DenseNet에서는 행렬 합으로 퓨전하는 대신 채널 차원별 CAT (Concatenation) 으로 퓨전하는 것을 선택하였고 ResNet보다 더 적은 파라미터와 더 나은 성능을 보여주었습니다. 기본 블록은 BN, ReLU로 시작하고 컨볼루션 1x1, 3x3으로 구성되어 있는 소 블록입니다. 다음 일러스트에서 보겠지만. Conv1x1과 Conv 3x3의 출력 차원은 (배치, 뎁스, X, Y)으로 구성되어 있으며 이 중 뎁스 차원이 각각 항상 같습니다. 모델의 전반적이로 이 소 블록이 쓰이는데 어떤 위치에 있는 소 블록이든지 간에 모두 Conv 1x1 출력 차원의 뎁스는 4x32 이고 Conv..
-
활성화 함수 총정리 – 시그모이드, ReLU, 하이퍼볼릭 탄젠트, Swish, SoftPlus딥러닝/활성화 함수 2022. 6. 8. 15:01
최초의 활성화 함수는 매컬러-피츠 모델과 퍼셉트론에서 쓰인 계단 함수입니다. 이후 딥러닝이 활성화 되면서 시그모이드 계열 함수들이 쓰이다가 ReLU 함수들과 그 변형들이 쓰이기 시작했습니다. 활성화 함수 (Activation Function)은 S자형의 시그모이드 계열과 구간 선형 함수인 ReLU 계열로 구분됩니다. 시그모이드 함수 시그모이드 함수는 S자 형의 함수입니다. 함수 값의 결과인 y 축의 범위는 [0,1] 사이의 값입니다. 음수 값은 출력으로 나오지 않습니다. 모든 입력 x축 구간에서 미분할 수 있고 계속해서 증가하는 증가함수이므로 미분 값이 항상 양수입니다. 출력은 [0,1] 항상 양수 값만 출력 증가함수 모든 입력 구간에서 미분 가능 하지만 시그모이드 함수는 문제점이 몇 가지 있습니다. 시..
-
U-Net딥러닝/시멘틱 세그먼테이션 2022. 6. 5. 17:00
전체적인 아키텍쳐입니다. 1x572x572 흑백 이미지를 입력으로 합니다. 이미지의 크기가 224x224에서 많이 커졌습니다. 아키텍쳐 왼쪽 부분을 설명하겠습니다. 아키텍쳐 왼쪽 부분 왼쪽 부분에서 Conv + ReLU + Conv + ReLU + Conv + ReLU가 하나의 블록을 형성하고 총 5 개의 블록을 거치면서 28x28까지 평면 차원이 축소됩니다. 572란 width에서 패딩 적용하지 않고 컨볼루션 3x3 연산을 계속하게 되는데, 한번 적용할 때마다 width가 조금씩 깎입니다.572에서 572, 570, 568, MP, 284, 282, 280, MP, 140, 138, 136, MP, 68, 66, 64,. MP, 32, 30, 28 이렇게 갑니다. 신기하게 28이란 width에 도달했습..
-
코사인 유사도 Loss딥러닝/활성화 함수 2022. 6. 5. 16:37
뉴런 값들을 벡터로 그룹핑할 수 있습니다. 차원 수가 2인 경우 2차원 평면 상에 그려집니다. 보통 뉴런 값 N개로 이루어져 있으므로 N 차원입니다. 하지만 설명을 위해 2차원 평면 상에서 무언 가를 그려 보도록 하겠습니다. 뉴런의 피처 맵 feature map 값들은 대게 음수 값이 없습니다. 따라서 뉴런 벡터를 시각화 해 보면 2, 3, 4 분면을 지나는 벡터는 없을 것입니다. 코사인 유사도 공식을 알아보겠습니다. 벡터의 내적 공식은 $$ \large \overrightarrow{a}\bullet\overrightarrow{b}=\lvert \overrightarrow{a} \rvert\lvert \overrightarrow{b} \rvert\cos{ \theta }=a_1b_1+a_2b_2 $$ 입..
-
엔트로피와 크로스엔트로피 Cross Entropy딥러닝/활성화 함수 2022. 6. 5. 11:45
엔트로피 엔트로피 공식은 이렇게 생겼습니다. $$ \large -\sum x log({x}) $$ 엔트로피는 불확실성의 정도, 무질서함의 정도를 표현하는 것입니다. 예를 들어 동전과 주사위를 비교해 봅시다. 동전은 앞, 뒷면 2가지 경우의 수가 나오고 주사위는 6면 6가지 경우의 수가 나옵니다. 동전은 앞면과 뒷면 심플하게 2가지 경우이기 때문에 안정적이고 질서가 있습니다. 주사위는 좀 더 경우의 수가 다양하기 때문에 상대적으로 무질서해 보입니다. 엔트로피 공식에 대입해 보면 주사위 엔트로피 값이 큼을 알 수 있습니다. $$ \large -\frac{ 1 }{ 2 }log\frac{ 1 }{ 2 }-\frac{ 1 }{ 2 }log\frac{ 1 }{ 2 }\approx0.3 $$ $$ \large -\..
-
시멘틱 세그먼테이션의 시초가 된 FCN-32의 아이디어딥러닝/시멘틱 세그먼테이션 2022. 6. 5. 09:43
시멘틱 세그먼테이션은 RGB 3채널인 이미지를 출력 차원으로 하는 딥러닝 모델입니다. 이러한 모델을 특히 Fully Convolutional Neural Network 구조로 바꾸어 놓은 FCN에 대해 알아보도록 하겠습니다. 시멘틱 세그먼테이션 시멘틱 세그먼테이션은 딥러닝 아키텍쳐로 보통 출력 부분이 이미지넷의 이미지 종류 개수에 맞추어 (배치 크기, 1000) 으로 해왔던 기본 CNN 과 달리 출력 부분을 원본 이미지 차원으로 바꾸어 놓은 모델을 말합니다. 예를 들어 (배치 크기, 3, 224, 224) 가 될 수 있습니다. FCN-32 모델의 첫 입력은 (224, 224, 3)으로 입력 원본 이미지와 동일합니다. 실제 코딩으로 주입할 때는 (3, 224, 224) shape으로 주입해야 하는 점 주의..
-
ResNet의 잔차 아이디어딥러닝/CNN 모델 2022. 6. 5. 08:25
ResNet은 2015년 처음 공개되었습니다. Residual (잔차) 란 새로운 개념을 적용하였는데 이 잔차에 대해 알아보겠습니다. 서문 영어로는 Residual Connection (shortcut) 한국어로 잔차라고 합니다. 일찍이 알파고가 처음 나왔을 시절 장병탁 교수님이 지은 저서에 잔차를 강조한 부분이 얼핏 있었던 것으로 기억납니다. 그때 저는 딥러닝이 아닌 옛날 머신러닝을 한참 공부하고 있었던 병아리로써 이해가 되지 않았던 책이지만 잔차란 단어는 지금도 기억납니다. 딥러닝에서는 어떠한 목적을 가진 가중치 흐름이 여러 개가 있을 수 있습니다. 그 흐름들 중 일부 또는 전부를 모델이 진행됨에 따라 계속해서 합쳐지거나 분화됩니다. 그 중 퓨전 행위는 합치는 행위를 뜻합니다. 잔차는 일종의 퓨전 행..
-
CNN 파라미터 수 계산 방법딥러닝/기본 연산들 2022. 6. 4. 14:43
CNN 아키텍처의 컨볼루션 층 파라미터 개수 세는 법을 알아보겠습니다. 컨볼루션 층은 스트라이드가 1 또는 2일 때, 커널 사이즈가 1x1, 3x3, 5x5 일때로 또 다시 구분합니다. 스트라이드=1, 패딩=1, 커널 사이즈=3x3 배치 차원을 뺀 입력 차원 수는 (224, 224, 3)이고 3x3 컨볼루션을 쓰며 출력 차원 수는 (224, 224, 8)이라고 생각해 봅시다. 컨볼루션 연산을 통해 XY 평면 차원수는 그대로 유지하였고 채널 차원 수만 3에서 8로 증가했습니다. 이때 파라미터 수를 계산해 봅시다. 3x3x3 인 커널이 8개 존재하는 것이므로 3x3x3x8이 됩니다. 스트라이드=2, 패딩=2 , 커널 사이즈 5x5 배치 차원을 뺀 입력 차원 수는 (224, 224, 8)이고 3x3 컨볼루션을..