본문 바로가기

Programmer Jinyo

(57)
Depthwise Separable Convolution 설명 및 pytorch 구현 Depthwise Convolution 우선 Depth-wise Seperable Convolution에 대한 설명을 하기에 앞서 Depth-wise Convolution에 대한 설명을 먼저 할까 한다. 기본적인 개념은 쉽다. 위 처럼 H*W*C의 conv output을 C단위로 분리하여 각각 conv filter을 적용하여 output을 만들고 그 결과를 다시 합치면 conv filter가 훨씬 적은 파라미터를 가지고서 동일한 크기의 아웃풋을 낼 수 있다. 또한 각 필터에 대한 연산 결과가 다른 필터로부터 독립적일 필요가 있을 경우에 특히 장점이 된다. 이를 파이토치에서 구현하려면 다음과 같이 하면 된다. class depthwise_conv(nn.Module): def __init__(self, ni..
MobileNets (모바일넷) 내용 정리 글 더보기 * 잊지 말자! Kernel size : conv filter의 width , height Depth-wise Convolution : 모바일 기기나 어플 등에서 성능이 낮은 환경에서도 사용할 수 있도록 효율성에 초점을 맞추어 설계된 모델이라고 한다. 작은 신경망을 만들기 위한 기술들은 아래와 같은 종류들이 있다. FC-Layer을 없애거나 Kernel 사이즈를 줄이거나 채널 수를 줄이거나 다운샘플링을 하거나 더보기 초반에 다운샘플링을 많이 하면 accuracy가 떨어지며 파라미터가 적어짐. 후반에 downsampling을 많이 하면 accuracy가 좋지만 파라미터가 많아짐. 이라고 설명이 써있는걸 봤는데, hmm.. 내생각엔 파라미터 수는 변함 없을 것 같고 GPU RAM 크기를 얼마나 먹냐,..
Tensorflow 튜토리얼 05 - Softmax Classifier 모두를 위한 딥러닝 영상을 참고하였음을 밝힙니다. 이번 글에서 다룰 내용이다. 우선, 샘플 데이터셋을 만들어놓자. y 데이터는 총 3개의 레이블로 되어있다. (one-hot encoding 형식으로 되어있음) softmax 함수는 다양한 class의 결과에 대한 확률을 output으로 받아볼 때 사용한다. (최종 합이 1이 되어야 한다.) 우선 xw + b는 곱해서 만들어서 결과를 만들어주고, tf.nn.softmax를 통해 softmax 연산을 진행 해 준다. tfe.Variable을 통해서 행렬을 만들어준다. tfe (tf eagar mode)는 기존의 graph 모드보다 실시간으로 결과를 손쉽게 받아볼 수 있게 한다. 그 값을 출력해주면 정상적으로 답이 나오는것을 볼 수 있다. 저 위의 값들을 보게..
Deep double descent 라는 paper 재밌다 원본링크 블로그 https://openai.com/blog/deep-double-descent/?fbclid=IwAR37q9qWw_XOcWZHJzmLXDRkqK07uevYc0dGGyjwMq0HVlsmyh2TTylZ-vw Paper https://arxiv.org/abs/1912.02292 resnet 기준으로 쫙 - 매우 - 오래 train 시켰을 때 일시적 test의 성능 하락이 발생하였으나 서서히 다시 test error가 떨어지는 현상을 발견했다고 한다. 데이터가 많을수록 더욱 train 시와의 차이가 적을 것이라고 예측되었으나 모델 사이즈에 대해서 일정 구간에서는 오히려 더 많은 데이터가 성능이 안좋기도 하다고;; (NLP 쪽 transformer 모델 임베딩 task로 실험) 트레이닝 epoch..
StarGAN V2, 무엇이 달라졌을까? 오 이런 포스트 제목 좀 뻔한데? 아무튼, 개인적인 이유로 사람들이 별로 안 읽은 논문을 흥미롭게 읽어서 발표해야 하는 일이 생겨서 StarGAN V2 논문을 읽게 되었다. 포스트 작성일 기준 3일전에 발표된 논문이니깐 다른 사람들이 그닥 많이 정보를 올려놓지는 않았으리가 믿으면서.. :) 윤제형이 처음 StarGAN 발표할 때만 해도 ㅇ우오아아.. 대박이다 했던게 엊그제같은데 벌써 V2가 나오고 그 사이에 다양한 논문들이 나오다니 지이이인짜 시간이 너무 빠르다. 후... 난 제발 취업좀;; 취업성공! StarGAN v2 , 어디에 써? StarGANv2 는 우선 새로운 이미지를 생성하는 GAN을 기반으로 만들어졌으며, 그렇기에 기존에 없던 새로운 이미지를 만들어내는 '생성모델'이다. 그리고 StarGA..
변환(Transrofmations)의 종류 Similarity Transformation : 유사 변환 변환 시킨 후 원래의 모양과 유사하게 되는 변환을 유사 변환이라고 한다. (?) 수학적으로 보자면 1. scale을 전체적으로 크게 하거나 줄게 하는 것. 2. 이동, 회전을 하는 것 (Rigid Transform 강체변환 / 형태는 유지하고 회전과 이동) 을 만족하는 변환을 의미한다. Linear transformation : 선형 변환 f(x+y) = f(x) + f(y) f(ax) = af(x) 를 만족하는 함수 f : V -> W 의 변환을 선형변환이라고 한다. (다시 말해 선형성(Linearity)을 유지해주는 변환) Affine Transformation : 아핀 변환 선형 변환과 유사 변환을 동시에 포함하는 변환을 아핀 변환이라고 ..
딥러닝 Normalization 관련 배경 지식들 모음 covariate (공변량) 공변량이라는 변수는 독립변수라기 보다는 하나의 개념으로서 여러 변수들이 공통적으로 함께 공유하고 있는 변량을 뜻한다. 예를 들어서, 우리가 뉴럴 네트워크에 평균 0 분산 1로 규격화 된 분산을 넣어주는 것 같은 행위는 연구자가 통제하고자 하는 변수로써 이를 공변량이라 한다. 그렇다면 공변량 변화는 무엇일까? 입출력 규칙은 훈련시와 테스트시에 다르지 않지만 입력 (공변량) 의 분포가 훈련시와 test시에 다른 상황을 공변량 변화라고 부른다. (변량은 분산이랑 같은 말이고 variance임을 헷갈리지 말자. 다만 covariance 와 covarate는 다른거니까 영문 표기... 화이팅..) internal covariate shift (ICS) Back-propagation에 ..
머신러닝 관련 기본 통계 지식들 정리 머신러닝 관련 기본적인 지식들이 먼가 개념을 제대로 정리할 필요성이 있어서 한번 싹 요약해볼라고 한다. 용어들을 듣고있자면 순간 아;; 긴가민가 이게 뭐더라 싶어서 정리한다. + ) 사족을 달자면 고1때 한번 쓰러지고 나서부터 계속 이렇게 빡 빡 정리해놓지 않으면 디테일한 부분에서의 기억력이 다 날아가버리기 때문에 더 신경쓰고 살아야겠다고 생각해서 ^_^.... (ratsgo 님 블로그 참고 많이..했고 포스트 너무 잘 보고있씁니다 감사합니다..) 1. Maximum Likelihood Estimation (최대 우도 추정) 최대 우도 추정이란 모수(parameter)가 미지의 θ확률분포에서 뽑은 표본 (관측한 결과) x를 바탕으로 를 추정하는 기법이다. 여기서 우도(likelihood)란 이미 주어진 ..