일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- SSL
- cifar100-c
- semi supervised learnin 가정
- Pix2Pix
- 딥러닝손실함수
- Pseudo Label
- conjugate pseudo label paper
- Meta Pseudo Labels
- simclrv2
- adamatch paper
- tent paper
- shrinkmatch
- dann paper
- mme paper
- dcgan
- UnderstandingDeepLearning
- 백준 알고리즘
- ConMatch
- shrinkmatch paper
- 최린컴퓨터구조
- WGAN
- remixmatch paper
- CGAN
- GAN
- CoMatch
- mocov3
- CycleGAN
- BYOL
- 컴퓨터구조
- Entropy Minimization
- Today
- Total
목록분류 전체보기 (247)
Hello Computer Vision
이번 강의에서는 지난 강의 때 이야기했던 branch 명령어에 대한 내용들이 연결됩니다. 제가 branch가 잘 몰라서 한번 찾아보니 branch를 쓰는 이유 : 이동하기 위해서 PC 레지스터가 동작을 하며 이동하다가 branch명령어를 만난다면 조건에 따라 이동 이렇게 가볍게 이해하였습니다. branch prediction 명령어의 주소만 보고 어디로 갈지 결정을 내린다 예측하는 이유 : 다음 명령어를 미리 예측해 더 빨리 패치하기 위해서. 틀리면 다시 돌아가서 반복 branch 명령어의 종류 : direct, indirect, conditional, unconditional 80%가 conditional branch이다. 컴파일러는 파일을 translate하는 것뿐만 아니라 실행도 한번씩 해본다 --..
지난번 논문 리뷰에 이은 코드리뷰이다. 생성자와 판별자, 손실함수 위주로 진행해보겠습니다. 생성자 정의 class UNetDown(nn.Module): #UNet class 정의하기 def __init__(self, in_channels, out_channels, normalize = True, dropout = 0.0): super(UNetDown, self).__init__() layers = [nn.Conv2d(in_channels, out_channels,4, stride = 2, padding = 1, bias = False)] if normalize: layers.append(nn.InstanceNorm2d(out_channels)) layers.append(nn.LeakyReLU(0.2)) ..
이번 주에 과제가 너무 몰려서 정신이 없었는데 그나마 조금 정리가 되서 2개 강의를 한번에 기록하려고 합니다. 지난 번에 이어 pipeline에 대한 예시들이 주로 이루었습니다. 파이프라이닝을 하지 않으면 데이터 의존성(Data dependences)를 신경쓸 필요 없다 (하지 않는다면 명령어들이 순서대로 들어와서 실행하게 되니까) 그러나 파이프라이닝을 한다면 명령어의 실행들이 overlap되기 때문에 신경써주어야 한다. ex) 명령어가 fetch 하고 decoding할 때 그 다음 명령어가 fetch하는 과정을 거친다. 이러한 과정에서 명령어마다 read하는 속도가 다를 수 있는데 뒤에 있는 명령어의 read가 더 빨리 실행될 경우 뒤에 있는 명령어를 write하는 문제가 발생할 수 있음 --> 데이터..
해당 내용에 대한 출처와 이미지는 밑에 남겨 두었습니다. 우리가 아무리 혁신적인 아이디어와 모델을 가지고 있더라도 가장 중요한 것은 이 모델이 잘 학습할 수 있느냐다. 본인이 가지고 있는 모델의 100% 성능을 끌어내기 위해 사람들은 여러 하이퍼 파라미터를 훈련한다. 여기서 잘 학습할 수 있느냐는 gradient descent과정에서 잘 수렴하냐이다. 해당 함수를 convex function(볼록 함수)라고 한다. 만약 손실함수가 이러하다면 초기 weight가 어떻든 잘 수렴할 것입니다. 그렇지만 우리가 만나는 함수들은 대부분 non convex function일 텐데요, 이렇게 무시무시한 함수 사이에서 우리의 손실값은 minimum값을 찾아야합니다. 잘 찾으면 좋겠지만 아마 local minimum 안..
지난 번 U-Net에 이어서 U-Net구조를 활용한 Pix2Pix 논문 리뷰입니다. 처음부터 천천히 읽어나가보겠습니다. Introduction 처음부터 translation에 대하여 정의하는데요, translation an input image into a corresponding output image로 정의할 수 있지만 저자들은 translating one possible representation of a scene into another 으로 정의합니다. 요약해보자면 optimal 한 G가 있다한다면 A이미지에 대해 B로도 translating 가능하고 C로도 translating될 수 있다는 가능성이 있다는 걸 말하는 거 같습니다. 본인들이 만든 framework에 대해서 CNN을 사용하는데 이..
이번에 CycleGAN을 살펴보면서 pix2pix에서 발전된 형태라 해서 pix2pix를 공부하려고 했는데 네트워크 구조가 U-Net이라고 해서 먼저 논문을 읽어보려고 합니다. 보니까 생성모델 논문이라고 보다는 의료쪽에서의 Image Segmentation 를 위한 네트워크 였더라고요. 그래서 조금 생소한 용어들이 많이 나와서 완벽히 이해하기 힘들었기 때문에 구조 위주로 설명해보겠습니다. 참고자료 및 이미지 강준영님의 블로그 의료데이터는 모으기 굉장히 힘들기 때문에 훈련 데이터셋을 구성하기 굉장히 힘듭니다. 그러한 문제를 해결하기 위한 데이터증강 방법으로 U-Net 을 만들었다고 합니다. 그리고 우리가 보통 이미지 한개에 대해 클래스를 부여한다면 특이하게 의료데이터에서는 픽셀 단위로 클래스 라벨을 부여한..
이제 곧 시험기간인데 그 전에 최대한 들어보겠습니다.. 오늘 강의는 Floating Point연산과 Pipeline 에 대한 강의가 진행되었습니다. 컴퓨터에서 실수 표현 3요소 : 지수, base, 부호(0이면 +, 1이면 -) bias representation 장점 : 크기 비교 쉽다(지수가 큰 숫자가 큰 수), 더 많은 수 표현 가능 표현할 수 없는 숫자들은 Not a Number 로 표현 -> 실행이 불가능하니 연산이 멈춫ㅁ ex) 0 나누기 0, 무한대 / 무한대 Floating Point 덧셈뺄셈 알고리즘 0인지 체크 -> 작은 수 align -> 덧셈 or 뺄셈 -> 정규화 Floating Point 곱셈나눗셈 알고리즘 0인지 체크 -> 지수부분 빼거나 더한다 -> significand 곱 ..
지난 번에 CycleGAN 논문 리뷰를 진행했었는데요, 최근 스터디에서 cycleGAN을 이용해 프로젝트를 진행하려고 해서 빨리 찾아서 공부해봤습니다. 생성자 class Generator(nn.Module): def __init__(self, img_channels,num_features = 64, num_resblock = 9): super(Generator, self).__init__() self.initial = nn.Sequential( nn.Conv2d(img_channels, num_features, kernel_size = 7, stride = 1, padding = 3, padding_mode = 'reflect'), nn.ReLU(inplace = True) ) self.down_bloc..