목록전체 글 (768)
우노
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cHw2SS/btqVIJWn7gS/mN70gT6VOWsb0OrQ0hPEK0/img.png)
CNN 종류는 다음과 같습니다. Classic Networks LeNet-5 AlexNet VGG-16 ResNet Inception(GoogLeNet) Network 들어가기 앞서, 입력 이미지 크기로부터 출력 이미지 크기를 추론하는 공식은 Convolution layer와 Pooling layer 모두 동일하며 아래와 같습니다. (n, n, c) 이미지에 대해 p 만큼 패딩한 후, c' 개의 (f, f, c) 필터 블록으로 s 씩 건너띄며 컨볼루션 한다면, 출력 이미지의 크기는 ((n+2p-f)/s+1, (n+2p-f)/s+1, c') 가 됩니다. (N+2p-f)/s + 1 가 실수라면 소수점 아래 부분은 버립니다. LeNet-5 LeNet-5은 손글씨 숫자를 인식하는 네트워크입니다. LeNet-5는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cDpLYr/btqUSplexwP/bi9KrvUs6n11pjocgG7qI1/img.png)
기계학습에서 모델이나 패턴의 분류 성능 평가에 사용되는 지표들을 다루겠습니다. 어느 모델이든, 발전을 위한 feedback은 현재 모델의 performance를 올바르게 평가하는 것에서부터 시작합니다. 모델이 평가해야하는 요소와 그것을 수치화한 지표들, 그리고 관련 개념들에 대해서 다루도록 하겠습니다. 모델의 분류와 정답 모델을 평가하는 요소는 결국, 모델이 내놓은 답과 실제 정답의 관계로써 정의를 내릴 수 있습니다. 정답이 True와 False로 나누어져있고, 분류 모델 또한 True False의 답을 내놓습니다. 그렇게 하면, 아래와 같이 2x2 matrix로 case를 나누어볼 수 있겠네요. 이제 각 case별로 살펴보겠습니다. True Positive(TP) : 실제 True인 정답을 True라고..
Bayes error 달성할 수 있는 가장 낮은 예측 오차로써, 축소할 수 없는 오류와 동일하다. Training error 훈련 데이터의 에러를 말한다. Dev error 검증 데이터의 에러를 말한다. Avoidable bias bayes error와 training error의 차이를 말한다. Variance training error와 dev error의 차이를 말한다.
Transfer Learning 이란? 기존의 만들어진 모델을 사용하여 새로운 모델을 만드는 것입니다. 학습이 빨라지며, 예측도 높아집니다. 왜 사용할까? 이미 학습된 모델을 사용해서 문제를 해결할 수 있습니다. 실질적으로 Convolution network을 처음부터 학습시키는 일은 많지 않습니다. 만들고자하는 모델이 복잡한 모델일수록 학습시키기 어렵습니다. layers의 갯수, activation, hyper parameters등등 고려해야 할 사항들이 많습니다. 모델 학습이 오래 걸릴 수도 있습니다. 학습 데이터의 수가 적을때 효과적입니다. 또한, 전이학습 없이 학습하는 것보다 학습 속도도 빠르며 훨씬 높은 정확도를 제공한다는 장점이 있습니다. 즉, 이미 잘 훈련된 모델이 있고, 해당 모델과 유사한..
Multi-Task Learning Multi-Task Learning이란, 하나의 신경망이 여러 작업을 동시에 할 수 있도록 학습하는 것입니다. 신경망 초기 특성들이, 서로 공유(shared low-level features)될 수 있다고 하면, 하나의 신경망을 학습시키는 것이 여러 신경망을 개별 학습시키는 것 보다 효율적입니다. 예를 들어, 사진이 주어졌을 때, 신호등, 보행자, 차량, 표지판을 감지하는 문제가 있다면 이 특성들은 모두 도로의 특성을 가지고 있기 때문에, 서로 공유 될 수 있습니다. Multi-Task Learning은 아래의 상황에서 많이 쓰입니다. 여러 문제들의 하나의 저레벨 특성을 공유할 때 ex) Computer Vision의 물체 감지 데이터가 비슷할때 (항상 만족하는 것은 ..
End-to-End Deep Learning 딥러닝은 '종단간 기계학습(end-to-end deep learning)' 이라고도 불린다. 여기서 '종단간' 은 처음부터 끝까지라는 의미로, 입력에서 출력까지 '파이프라인 네트워크' 없이 한 번에 처리한다는 뜻이다. 파이프라인 네트워크 : 전체 네트워크를 이루는 부분적인 네트워크 하지만, End-to-End Deep Learning 은 만능이 아니다. 신경망에 너무 많은 계층의 노드가 있거나, 메모리가 부족할 경우 사용할 수 없다. 또한, 문제가 복잡할 수록, '전체 네트워크' 를 '파이프라인 네트워크' 로 나눠서 해결하는 것이 더 효율적일 때도 있다. 데이터의 정보가 나눠진 각각의 파이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkuTgy/btqT8JkXEzs/l0B77AmwKpF940b1Ea4IC1/img.png)
기존에는 Gradient Vanishing, Exploding 현상을 해결하고 학습을 안정화하기 위해서 새로운 활성화 함수를 찾거나 가중치를 초기화하는 방법을 사용했었다. 하지만, 배치 정규화를 통해서 보다 근본적으로 학습과정을 안정화할 수 있고 빠르게 할 수 있다. 배치 정규화 (Batch Normalization, BN) 배치라는 단어는 전체 데이터에서 일부분을 칭하는 단어이다. 신경망을 학습시킬 때, 보통 전체 데이터를 한 번에 학습시키지 않고, 조그만 단위로 분할해서 학습을 시키는데, 이 때 조그만 단위가 배치이다. 큰 사이즈의 데이터를 한 번에 학습시키는 것은 시간이 오래걸린다. 따라서, 배치 단위로 정규화하는 것을 배치 정규화라고 부른다. 배치들은 학습을 진행하며, 각 layer의 활성화함수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZX5Xh/btqT8HtBlfp/p2FC29QIDs2E2p70zHik0K/img.png)
이전 포스트에서는 배치 경사하강법, 확률적 경사하강법, 미니 배치 확률적 경사하강법에 대해서 다뤘었다. https://wooono.tistory.com/93 개요 기존의 경사하강법(Gradient descent method)에서 특정 데이터만을 샘플링하여 학습하는 확률적 경사 하강법(SGD)은, deep neural network를 학습시키기 위해 주로 이용되고 있는 최적화 기법이다. 미니 배치 단위로 정의되는 loss function을 L이라 할 때, SGD를 통한 neural network의 i번째 뉴런의 j번째 weight(w_ij)는 다음과 같이 update된다. 이 때, η 는 learning rate 라고 하는 hyperparameter이고 ∂L / ∂w_ij(t) 는 gradient라고 하는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SmmEl/btqT6GVL9LD/NHfg1mQaR2tvHtyOpK2Ox0/img.png)
지수 가중 평균 (Exponentially Weighted Averages) 데이터의 이동 평균을 구할 때 오래된 데이터가 미치는 영향을 지수적으로 감쇠(exponential decay) 하도록 만들어 주는 방법이다. 손실함수의 최저점을 찾기 위한 최적화 알고리즘을 이해하기 위해서 필요한 사전 지식 중의 하나이다. 지수 가중 평균의 예 런던 기온의 일별 데이터가 위 그림의 파란점으로 분포되어 있다. 시간의 흐름에 따라 이 데이터가 어떻게 움직이는지를 경향선을 보고싶다고 가정하자. 만약, 단순히 전후 며칠간의 평균으로만 계산한다면, 오래된 데이터의 영향과 최신 데이터의 영향이 비슷해져버리므로 우리가 원하는 추세를 나타낼 수 없을 것이다. 이를 보완하기 위해, 오래된 데이터와 최신 데이터에 Weight를 부..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rTgG3/btqT3s9Z7gZ/zKQrCno0hSRJt2VozSNK51/img.png)
Inverted Dropout dropout은 모델의 overfitting을 줄이는 방법 중 하나이다. overfitting을 줄이는 방법으로는 L1 Regularization, L2 Regularization, dropout 등이 있다. dropout의 사전적 의미는 탈락, 낙오이다. 즉, dropout은 deep learning 학습마다, 전체 노드를 계산에 참여시키는 것이 아니라, 일부의 노드만 계산에 참여시키는 것이다. 따라서, 참여되는 노드는 매 학습마다 달라지며 이렇게 학습시킨 신경망의 결과는, 마치 비슷하지만 서로 다른 여러개의 신경망 모형들의 결과를 평균낸 것과 유사한 형태가 된다. 신경망 여러개의 결과가 평균 내졌기 때문에, 일반적이지 않은 분류 결과가 제거되는 정규화 효과를 가진다. 순..