목록AI (99)
우노
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 은 만능이 아니다. 신경망에 너무 많은 계층의 노드가 있거나, 메모리가 부족할 경우 사용할 수 없다. 또한, 문제가 복잡할 수록, '전체 네트워크' 를 '파이프라인 네트워크' 로 나눠서 해결하는 것이 더 효율적일 때도 있다. 데이터의 정보가 나눠진 각각의 파이..

기존에는 Gradient Vanishing, Exploding 현상을 해결하고 학습을 안정화하기 위해서 새로운 활성화 함수를 찾거나 가중치를 초기화하는 방법을 사용했었다. 하지만, 배치 정규화를 통해서 보다 근본적으로 학습과정을 안정화할 수 있고 빠르게 할 수 있다. 배치 정규화 (Batch Normalization, BN) 배치라는 단어는 전체 데이터에서 일부분을 칭하는 단어이다. 신경망을 학습시킬 때, 보통 전체 데이터를 한 번에 학습시키지 않고, 조그만 단위로 분할해서 학습을 시키는데, 이 때 조그만 단위가 배치이다. 큰 사이즈의 데이터를 한 번에 학습시키는 것은 시간이 오래걸린다. 따라서, 배치 단위로 정규화하는 것을 배치 정규화라고 부른다. 배치들은 학습을 진행하며, 각 layer의 활성화함수 ..

이전 포스트에서는 배치 경사하강법, 확률적 경사하강법, 미니 배치 확률적 경사하강법에 대해서 다뤘었다. 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라고 하는..

지수 가중 평균 (Exponentially Weighted Averages) 데이터의 이동 평균을 구할 때 오래된 데이터가 미치는 영향을 지수적으로 감쇠(exponential decay) 하도록 만들어 주는 방법이다. 손실함수의 최저점을 찾기 위한 최적화 알고리즘을 이해하기 위해서 필요한 사전 지식 중의 하나이다. 지수 가중 평균의 예 런던 기온의 일별 데이터가 위 그림의 파란점으로 분포되어 있다. 시간의 흐름에 따라 이 데이터가 어떻게 움직이는지를 경향선을 보고싶다고 가정하자. 만약, 단순히 전후 며칠간의 평균으로만 계산한다면, 오래된 데이터의 영향과 최신 데이터의 영향이 비슷해져버리므로 우리가 원하는 추세를 나타낼 수 없을 것이다. 이를 보완하기 위해, 오래된 데이터와 최신 데이터에 Weight를 부..

Inverted Dropout dropout은 모델의 overfitting을 줄이는 방법 중 하나이다. overfitting을 줄이는 방법으로는 L1 Regularization, L2 Regularization, dropout 등이 있다. dropout의 사전적 의미는 탈락, 낙오이다. 즉, dropout은 deep learning 학습마다, 전체 노드를 계산에 참여시키는 것이 아니라, 일부의 노드만 계산에 참여시키는 것이다. 따라서, 참여되는 노드는 매 학습마다 달라지며 이렇게 학습시킨 신경망의 결과는, 마치 비슷하지만 서로 다른 여러개의 신경망 모형들의 결과를 평균낸 것과 유사한 형태가 된다. 신경망 여러개의 결과가 평균 내졌기 때문에, 일반적이지 않은 분류 결과가 제거되는 정규화 효과를 가진다. 순..

가중치 초기화의 중요성 Gradient Vanishing 문제란, MLP를 학습시키는 방법인 Backpropagation 중, Gradient 항이 사라지는 문제이다. Backpropagation 학습식을 보면 Cost Function의 Gradient 항이 존재한다. 이 항이 0이나 0에 가까워져 학습이 불가능해지는 현상을 말하는 것이다. 왜 gradient 항이 사라지는 현상이 발생할까? 이는 우리가 Activation Function으로 Sigmoid Function을 사용했기 때문이다. Sigmoid Function에 대해 자세히 살펴보자. Sigmoid Function의 도함수를 살펴보면 최대값이 0.25 인 것을 알 수 있다. 다시 말해, Sigmoid Function를 사용한다면, 망이 깊어..

Backpropagation은 구현이 매우 어렵기 때문에 버그가 발생해도 어디서부터 고쳐야 할지가 마땅치 않다. 이 때, gradient checking을 사용한다. gradient checking은 역전파 알고리즘이 얼마나 정확하게 구현되었는지 수동으로 검증하는 방법이다. 즉, 기울기에 대한 근사치를 구해서 비교하여 검증하는 방법이다. e(엡실론) 이 매우 작다 가정하고, θ-e 와 θ+e 두 점 사이의 기울기를 구한다. 우리는 θ가 하나가 아니기 때문에, 각각의 θ(theta)에 대한 gradient 를 모두 구해야한다. 이후, gradient checking 을 이용해 구한 gradApprox 와 실제 역전파를 이용해 구한 Dvec가 비슷한지 검사한다. 2개의 벡터가 비슷한지는 어떻게 계산할까? 2..

L1 Regularization 과 L2 Regularization 을 설명하기 위한 글입니다. 결론부터 얘기하자면 L1 Regularization 과 L2 Regularization 모두 Overfitting(과적합) 을 막기 위해 사용됩니다. 위 두 개념을 이해하기 위해 필요한 개념들부터 먼저 설명하겠습니다. 글의 순서는 아래와 같습니다. Norm L1 Norm L2 Norm L1 Norm 과 L2 Norm 의 차이 L1 Loss L2 Loss L1 Loss, L2 Loss 의 차이 Regularization L1 Regularization L2 Regularization L1 Regularization, L2 Regularization 의 차이와 선택 기준 Norm Norm 은 벡터의 크기를 측정하..