머신러닝 22

Pay Attention to Convolution Filters : Towards Fast and Accurate Fine-Grained Transfer Learning

https://arxiv.org/abs/1906.04950 Pay Attention to Convolution Filters: Towards Fast and Accurate Fine-Grained Transfer Learning We propose an efficient transfer learning method for adapting ImageNet pre-trained Convolutional Neural Network (CNN) to fine-grained image classification task. Conventional transfer learning methods typically face the trade-off between training time and a arxiv.org 요약 ..

1. 개요

4학년 1학기 컴퓨터 비전 수강중, 컴퓨터 비전 관련 프로젝트 주제로 GI-tract image segmenation 을 정했다. 기준으로 머신러닝/딥러닝 + 컴퓨터비전에 관련되어야함. 의료 관련 문제 해결이었으면함. 데이터셋을 학생신분으로 구할 수 있어야함. Image segmentation 관련 커뮤니케이션이 있었으면함 위 조건을 만족하는 대상으로 kaggle competition GI-tract image segmentation 으로 결정하였다. https://www.kaggle.com/competitions/uw-madison-gi-tract-image-segmentation UW-Madison GI Tract Image Segmentation | Kaggle www.kaggle.com Gthub..

Residual Connection

Residual Connection Residual Connection 은 Skip Connection 이라고도하는 계층사이를 연결하는 연결방식이다. 네트워크를 더 깊게 만들수록 표현력이 오히려 떨어지는 현상을 보고, 이런일은 optimize 를 잘 수행하지 못하기 때문이라고 생각해서 이전 Layer 보다 학습이 덜되지는 않게 이전 학습된 결과에 이번 Layer에서 더 학습할 잔여 학습이 있다면 이를 학습하는 방식이다. 의미적으로는 이번에 학습할 게 전혀없고 쓸데없는 Layer 라면 최소한 이전 Layer 의 결과를 그대로 출력하는 방식을 의미한다. 그래서 신경망이 깊어질수록 optimize 가 덜 되지는 않도록 한다. 사실 실제에서는 이전 결과를 그대로 출력하는 일 ( Identity mapping )..

Batch Normalization

Batch Normalization batch normalization 은 미니배치 내의 데이터들에 대해 각 위치의 원소들을 평균 0 표준편차 1의 분포로 만들어 주고, scale factor 을 곱하고 shift factor 을 더하는 정규화 방법이다. 깊은 네트워크를 학습시킬때 역전파 층 처리를 진행하다보면 gradient 가 폭주 혹은 소실 될 가능성이 있다. 이는 각 층의 입력을 구성하는 성분별 분포가 심하게 달라서, 특정 입력이 가중치 파라미터의 기울기를 좌지우지할 때 쉽게 일어난다. 그래서 여러 입력 성분간의 분포간에 적절한 균형을 잡아주는 것이 필요하다. 이를 해결하기위해 Kernel Initialization 을 사용하더라도, 학습 중간에 발생하는 폭주와 소실을 감소시켜주기는 힘들다. Ba..

Dropout

Dropout Dropout 은 입력 또는 어떤 계층의 출력을 다음 계층에서 모두이용하지 않고, 일부만 사용하면서 신경망을 훈련시키는 Regularizer 이다. 하이퍼 파라미터로 dropout rate p 를 입력받고, 각 노드는 비율 만큼의 확률로 무시되고, 그 반대의 확률로 활성화된다. 이때, 순전파와 역전파 처리에서 마스킹 처리를 하기때문에, 계산량을 오히려 더 늘어나고 모든 노드를 사용하지 않기 때문에 학습속도도 늦추는 점을 감안하고, 성능향상을 위해서 사용한다. 훈련시에는 1-p 의 확률로 선택된 노드들로 훈련이 되는데, 테스트시에는 모든 노드를 전부 사용하기 때문에 훈련할 때보다 활성화값이 $ \frac{1}{1-p} $ 배의 신호가 들어오기 때문에 잘 동작하지 않을 수 있다. 따라서 훈련이..

L1 L2 Regularizer

Regularizer L1, L2정규화는 손실함수에 정규화 항을 추가해서 모델의 문제를 푸는 능력을 높이는 과정속에서 모델 파라미터의 폭주를 막고 기왕이면 적은 절대값으로 문제를 풀도록 압박하는 기법이다. 정규화는 층의 모델 파라미터와 연관되어 있어서 따로 층을 두어 수행하지않고, 한층에서 경사 하강법을 수행할 때 손실함수 계산과 역전파를 수행에 영향을 끼친다. L1 Regularizer 계산식 $ P_{L1} = \alpha \sum_{i=1}^{n} | w_i | $ $ L' = L + \alpha \sum_{i=1}^{n} |w_i| $ 편미분식 $$ \frac{\partial L'}{\partial w_i} = \frac{\partial L}{\partial w_i} + \frac{\partia..

Convolution 2D Layer

Foward $x$ : $ ( N, XH, XW, XC ) $ $w$ : $ ( KH, KW, XC, YC ) $ $ y $ : $ ( N, YH, YW, YC ) $ $ b $ : $ (1, 1, 1, YC ) $ $x$ : 입력 이미지 데이터 $y$ : 출력 이미지 데이터 $w$ : 가중치 행렬 $b$ : 편향 벡터 $N$ : 데이터 개수 (batch size) $XH$ , $XW$ , $XC$ : 입력 이미지 높이, 너비, 채널 사이즈 $YH$ , $YW$ , $YC$ : 출력 이미지 높이, 너비, 채널 사이즈 $KH$, $KW$ : 커널 높이, 너비 사이즈 $SH$ , $SW$ : 높이, 너비 Stride 사이즈 $PH$ , $PW$ : 높이, 너비 Padding 사이즈 $$ \\ YH = \fr..

Dense (Fully Connect) Layer

Forward $x : (N, n)$ $y : (N, m)$ $w : (i, k)$ $b : (k,)$ $x$ : 입력데이터 $y$ : 출력 데이터 $w$ : 가중치 행렬 $N$ : 데이터 개수 ( batch size ) $b$ : 편향 벡터 $n$ : input dim $m$ : output dim $$y = \begin{bmatrix} y_1 & y_2 & ... & y_m \\ \end{bmatrix}$$ $$x = \begin{bmatrix} x_1 & x_2 & ... & x_n \\ \end{bmatrix}$$ $$ w = \begin{bmatrix} w_{1,1} & w_{1,2} & ... & w_{1,m} \\ w_{2,1} & w_{2,2} & ... & w_{2,m} \\ ... & ..