CV 11

EfficientNet

Abstract 모델 확장을 체계적으로 연구, 기준 네트워크를 설계한 후 확장 네트워크 깊이, 폭, 해상도의 모든 차원을 균일하게 확장하는 새로운 방법 제안 ImageNet에서 84.3% 정확도, 기존 최고성능 ConvNet보다 8.4배 작고 6.1배 빠름 훨씬 적은 수의 parameter로 최고 정확도 달성! 1. Introduction 체계적이지 않았던 ConvNet 확장! 우리가 효과적으로 확장하는 방법 알려준다 ㅋ 원래는 depth나 width를 확장하는 경우가 많았고 요새는 이미지의 해상도에 따라 모델을 확장하는 경우가 많아지고 있음. 이 3가지 중 한개만 확장하는 게 일반적이고 수동으로 조정해야되는데다가 확장해도 정확도가 개선되지 않는 경우 有 이 논문에서는 ConvNet을 확장하는 걸 다시 ..

CV/논문 2021.04.15

ShuffleNet

1. Introduction 제한된 계산에서 최고의 정확도를 추구하고 일반적인 모바일 플랫폼에 중점을 둔다. 보통의 standard network architecure는 프루닝, 압축, 낮은 비트에 중점을 두지만 우리는 원하는 계산 범위를 위해서 특별히 설계된 효율적인 standard architecture를 찾는 걸 목표로 한다. Xception, ResNeXt같은 애들은 밀도 높은 1x1 convolution이 있어서 비용이 많이 들고 작은 네트워크에서 효율이 떨어진다. 그래서 효율을 높이기 위해 pointwise group convolution을 사용하고, 이를 사용하면서 발생하는 부작용을 극복하기 위해 channel shuffle로 feature channel 사이에 정보가 흐르도록 도와준다. 이..

CV/논문 2021.04.08

assignment 1 - Softmax

얘도 svm과 마찬가지로 3강에서 알려줌 1. Code cs231n/classifiers 폴더에 있는 softmax.py를 고쳐서 씁니도 numeric instability에 빠지지 않기 위해서 score중에 최대 값을 score 전체에 빼서 모든 값이 0이하가 되도록 만든 다음에 loss랑 grad를 구하면 된다. loss를 구할땐 score를 구해서 softmax함수를 취한 다음에 정답 클래스의 확률에 -log()를 취하면 됨! softmax loss는 log에 확률값을 넣는 거라 최소 0(확률이 1일때)에서 최대 무한대(확률 엄청 클 때)의 값을 가진다. grad는 아래 사진처럼 구하면 됨(사실 잘 모르겟음;;;;) loop 안 돌고 행렬 버전으로 하면 됨 2. Inline Question Q. W..

CV/cs231n 2021.03.27

assignment 1 - SVM

두번째 과제.. 3강에서 알려주는 SVM 입니도 1. Code KNN과 다르게 svm.ipynb 파일과 assignment1/cs231n/classifiers 폴더에 있는 파일 2개를 수정해야 한다. linear_svm.py 파일에서는 loss와 grad를 naive하게 구하는 것과 vectorized 버전으로 구하는 두가지 버전의 함수를 구현해야 한다 loss는 아래의 식으로 구한다. 위의 식을 대입해서 loss를 구하면 loss = max( 0, 5.1 - 3.2 + 1) + max( 0, -1.7 - 3.2 + 1) = 2.9 + 0 = 2.9 정답이 cat이기 때문에 car와 frog에 대한 값을 각각 계산하고 더해준다. dW는 loss function L을 W에 대해 미분한 값이다. loss n..

CV/cs231n 2021.03.26

MobileNets 논문

Abstract MobileNets라고 불리는 mobile과 embedded vision applications를 위한 효율적인 모델 소개 MobileNets는 depth-wise separable convolutions를 기반으로 하는 더 가볍고 깊은 신경망 global hyperparameter인 width multiplier와 resolution multiplier 2가지를 통해 model builder는 문제의 제약 조건에 따라 애플리케이션에 적합한 크기의 모델을 선택할 수 있음 resource와 acc 사이의 tradeoff, ImageNet 분류에서 좋은 성능을 보임을 확인 object detection, finegrain cliassification, face attributes, large..

CV/논문 2021.03.25

assignment 1 - KNN

cs231n.github.io/assignments2020/assignment1/ 링크 들어가서 과제 파일 다운 받아서 압축 풀고 저거 인터넷에 링크 갖다 붙이면 알아서 압축 파일 다운 받아진다... 압축 풀어서 사진과 같이 폴더에 그대로 넣어주면 데이터 준비 끝 ㅋ (여기까지 20분 걸림 ㅡ.,ㅡ_) 1. Code KNN은 knn.ipynb 파일과 assignment1/cs231n/classifiers 폴더에 있는 k_nearist_neighbor.py 파일을 수정해서 실행 k_nearist_neighbor.py 파일에서 작성해야 하는 코드들은 1. test와 train 데이터의 거리를 3가지 버전으로 계산하는 함수 - compute_distances_two_loops - compute_distance..

CV/cs231n 2021.03.22

8장 딥러닝

data augmentation 입력 이미지를 알고리즘을 동원해서 인위적으로 확장. 회전시키거나 이동 등 미세한 변화로 데이터 개수 늘림 / crop이나 flip 할수도 있음 VGG 기본적인 CNN의 층을 16층이나 19층으로 심화 (VGG16 / VGG19) 3x3의 작은 필터를 사용하는 합성곱계층을 연속으로 거침 합성곱 계층을 2~4회 연속으로 풀링계층을 두어서 크기를 반씩 줄이고 마지막에는 affine계층을 통과해서 결과 출력 GoogLeNet 가로 세로 층이 모두 깊음 1x1 크기의 필터를 쓰는 합성곱 계층을 많이 씀, 1x1 합성곱 연산은 채널 쪽으로 크기를 줄이는 거라서 매개변수를 없애고 빠른 처리에 기여 가로 방향에 폭이 있는 이 구조를 인셉션 구조라고 부름 크기가 다른 필터랑 풀링을 여러개..

7장 합성곱 신경망 CNN

## CNN (Conv, Pooling 추가) ## 합성곱연산 ## 패딩 연산 수행 전에 입력데이터 주변 픽셀을 특정값(0, 1등)으로 채우는 것 폭 1짜리 패딩: 데이터 사방 1픽셀을 특정 값으로 채움 ## 스트라이드 필터 적용하는 간격 > 위 사진은 스트라이드 2 ## 출력크기 계산 ## 3차원 데이터 합성곱 ## 배치처리 → CNN 계층 사이를 흐르는 데이터는 4차원! ## 풀링 계층 : 가로 세로 방향이 공간을 줄이는 연산 - 윈도우에 따라 스트라이드 값이 변함 > 윈도우 2x2이면 스트라이드 2 , 윈도우 4x4이면 스트라이드 4 - 학습해야 할 매개변수 x > 대상 영역에서 최대값이나 평균을 취하는 처리라서 - 채널 수 변하지 않음 > 각 채널마다 독립적으로 계산 - 입력의 변화에 영향을 적게..

6장 학습 관련 기술들

SGD 비등방성 함수(방향에 따라 성질(기울기)가 달라지는 함수)에서 탐색 경로가 비효율적 모멘텀 Momentum 속도 v, av는 물체가 아무런 힘을 받지 않을 때 하강시키는 역할 AdaGrad 동그라미: 행렬의 원소별 곱셈 1/h로 학습률 조정 > 학습률 감소가 매개변수의 원소마다 다르게 적용 개별 매개변수에 적응적으로 학습률을 조정하면서 학습 진행 Adam (Momentum + AdaGrad) ## 가중치 초깃값에 따른 은닉층 활성화값(활성화함수 출력값)의 변화 # sigmoid 각 층의 값이 0, 1에 치우쳐져 있고 역전파의 기울기 값이 점점 줄어들다가 사라짐 > 기울기 소실 다수의 뉴런이 거의 같은 값을 출력하고 있어서 뉴런을 여러개 만든 의미가 없음 > 표현력 제한 Xavier 초깃값의 표준편..