본문 바로가기

딥러닝 & 머신러닝/딥러닝 지식

(23)
CNN https://seoilgun.medium.com/cnn%EC%9D%98-stationarity%EC%99%80-locality-610166700979 CNN과 이미지가 찰떡궁합인 이유 딥러닝이 뜨고 지금까지 가장 활약한 모델 중 하나는 CNN이다. 대부분의 사람들이 아무런 의심없이 이미지 데이터를 다룰때는 CNN을 사용한다. 그렇다면 도데체 왜 CNN은 이미지 데이터를 잘 처리 seoilgun.medium.com gan -> low freq 정보 살리는 쪽으로 (blur 현상) but real-world noise가 많으면 그것들이 상대적으로 high freq라서 그것들이 사라지고 texture, edge detail과 같은 상대적 low freq가 살아날 가능성있음 -> Real-world SR 프로..
Channel Attention & Spatial Attention Channel attention into our block as it captures the global information and it is computationally efficient.
신경망(Neural Net), 퍼셉트론(Perceptron), 소프트맥스(Softmax) 레이어, 크로스 엔트로피(Cross-entropy) 함수, 신경망의 학습과정 신경세포의 동작 과정 신경세포(뉴런) 하나는 다른 것들과 연결되어있고, 다른 신경세포들로부터 전기 신호를 입력으로 받음. 다른 신경세포들로부터 받은 전기 신호를 신경세포 하나에서는 특정한 값을 곱해서 나름의 변환된 전기 신호를 또 만들어냄. 그래서 만들어진 전기 신호를 해당 뉴런 혹은 신경세포가 연결되어있는 다른 신경세포들에게 전달해주는 방식으로 동작함. 그러한 과정을 수학적으로 잘 모델링하면, 입력 신호를 제공해주는 신경세포로부터 받은 입력값을 x1~xn까지의 여러 값으로 정의하게 되고, 여기에 해당 신경세포는 특정 가중치를 곱해서 그걸 다 더하고, 여기에 특정 상수까지 더한 1차 선형결합식으로 새로운 신호 만들어냄. 거기에다가 최종 활성함수까지 통과해서 최종 아웃풋 만듦. 그렇게 만들어진 신호는 다른..
딥러닝에서 -wise의 뜻 딥러닝 관련 논문이나 글을 읽다보면 -wise라는 용어가 많이 나오는데, 나올 때마다 헷갈려서 한번 정리해봤습니다. ~wise : ~별로 따로따로 나눠서 뭔가를 수행한다. ~에 따라 뭔가를 수행한다. depthwise convolution: feature map 뭉치를 채널 별로 따로따로 나눠서 각각을 특정 커널에 통과시킨다. (MobileNet V1) channel wise concatenation: 여러 feature map 뭉치를 채널에 따라 feature map을 쌓는다. (일반 딥러닝 concat) pointwise convolution: feature map의 픽셀 포인트별로 따로따로 나눠서 각각을 특정 커널에 통과시킨다. (즉, 1x1 커널에 통과시킨다.) (MobileNet V1) spat..
손실 함수 최적화에서 모멘텀(Momentum)의 필요성 Gradient 잡음 현상이라는 것이 있습니다. 머신러닝은 훈련 집합만, 그것도 그 안의 미니 배치들을 사용해서 손실(loss) 함수 값이 최저가 되도록 하는 최적의 가중치를 만드는 gradient를 추정하므로 오류, 즉 잡음이 있을 수밖에 없습니다. 모멘텀은 gradient에 스무딩(smoothing)을 가하여 잡음 효과를 줄이고, 이로써 손실 함수의 최저점으로 더 빠르게 가중치 값들이 수렴할 수 있도록 도와줍니다. 즉, 오버슈팅(overshooting)을 방지합니다. 오버슈팅에 대해서 더 설명하겠습니다. 이는 손실 함수의 landscape(모양)가 찌그러지면 모델 학습이 잘 안 되는 이유 또한 설명합니다. 아래 그림을 참고하세요. 위 그림은 가중치 w1, w2의 값에 따라서 loss를 줄일 수 있는 ..
GAP (Global Average Pooling) : 전역 평균 풀링 위 그림처럼 Fully-Connected Layer(전결합층) 직전의 컨볼루션 레이어에서 채널 수, 즉 feature map의 수가 6개라고 합시다. 기존 FC Layer를 사용한 분류에서는 Flatten Layer를 이용해서 입력받은 값을 굉장히 긴 하나의 벡터로 만든 다음, 그 벡터를 FC Layer에 넣는 방식으로 하나하나 매핑해서 클래스를 분류했습니다. 이 과정에서 공간적 정보도 많이 잃어버리는데다가, 굉장히 많은 파라미터, 즉 가중치가 많이 필요하고, VGGNet의 경우 이 부분이 전체 계산량의 85%를 차지했습니다. 컨볼루션 레이어를 아무리 쌓아도 FC Layer 하나를 못 따라갈 정도입니다. GAP(Global Average Pooling)는 이 문제를 효과적으로 해결합니다. 우선 분류할 클..
가중치(weight), 편향(bias), 활성화 함수(activation function) 한 마디로 # 가중치(weight), 편향(bias), 활성화 함수(activation function)를 한 마디로 표현하면? 가중치(weight): 인공 신경망에서, 노드에 입력되는 각 신호가 결과 출력에 미치는 중요도를 조절하는 매개변수(파라미터) 편향(bias): 인공 신경망에서, 뉴런의 활성화 조건을 조절하는 매개변수(파라미터) 활성화 함수(activation function): 인공 신경망에서, 입력받은 신호의 가중합을 다음 노드로 보낼지 말지를 결정하는 함수
에폭(epoch), 배치 사이즈(batch size), 미니 배치(mini batch), 이터레이션(iteration) # 에폭(epoch)이란? 배치 사이즈(batch size)란? 에폭(epoch): 하나의 단위. 1에폭은 학습에서 훈련 데이터를 모두 소진했을 때의 횟수에 해당함. 미니 배치(mini batch): 전체 데이터 셋을 몇 개의 데이터 셋으로 나누었을 때, 그 작은 데이터 셋 뭉치 배치 사이즈(batch size): 하나의 미니 배치에 넘겨주는 데이터 갯수, 즉 한번의 배치마다 주는 샘플의 size 이터레이션(iteration): 하나의 미니 배치를 학습할 때 1iteration이라고 한다. 즉, 미니 배치 갯수 = 이터레이션 수 ex1) 훈련 데이터 1000개를 10개의 미니 배치로 나누어 학습하는 경우, 배치 사이즈는 100이 되고, 확률적 경사 하강법(SGD)을 10회 반복, 즉 10회 iterati..