본문 바로가기

데이터 다루기/신경망

(20)
[신경망] 20. Long Short Term Memory (LSTM) 안녕하세요, 이번 포스팅에서는 저번 RNN의 업그레이드 버전인 LSTM을 배워보도록 하겠습니다. LSTM에 대한 포스팅은 아래의 포스팅에서 많은 도움을 받았음을 미리 알려드립니다. 확실한 이해를 원하시는 분은, 영어지만 유명한 블로그임으로, 들어가서 공부해보시는 것을 추천합니다. https://colah.github.io/posts/2015-08-Understanding-LSTMs/ ​ 이전 포스팅에서 말씀 드렸다시피 RNN에는 깊이가 깊어질수록, 처음 시간대에 대한 반영이 0에 수렴한다는 Long-term dependency 단점이 있었습니다. 따라서 LSTM은 과거의 기억을 보존하되, 필요가 없어진 기억을 지워버리는 기능을 추가합니다. 예를 들어서, 옴니버스 형태로 구성된 소설책 데이터를 불러왔을 때..
[신경망] 19. Recurrent Neural Network (RNN) [Ref] CS 231 Lecture ​ 안녕하세요. 이번 포스팅에서는 Recurrent Neural Network, RNN에 대해서 배워보도록 하겠습니다. RNN의 등장 배경을 먼저 알아보도록 하겠습니다. 기존의 MLP 나 CNN은 좋은 성능을 보여주지만, 한 가지 전제 가정을 가지고 있습니다. 그것을 바로, MLP의 경우 모든 Inputs들이 서로 독립이라는 가정을 하며, CNN의 경우에는 모든 2D input들이 input내에서는 locally correlated 한 관계를 가지지만, 서로 다른 이미지간에는 독립이라는 가정이 있습니다. ​ 하지만, 실제로 Vidio에서 앞 장면과 뒷 장면은 전혀 독립이지 않습니다. 그리고, 문장 안에서 앞 뒤의 단어는 독립이 아니고, correlation이 상당히 ..
[신경망] 18. Deconvolution 안녕하세요, 이번 포스팅에서는 Deconvolution에 대해서 배워보도록 하겠습니다. 우선 Deconvolution이 무엇이기를 알기 전에, 어떠한 목적을 가지고 탄생되었는지를 알아야 합니다. 그러기 위해서는 Image Segmentation을 알아야합니다. ​ Image Segmentation을 통역하면 말 그대로, 이미즈를 분할하는 것입니다. 기존의 CNN은 고양이 사진을 넣으면 그저 고양이를 나타내는 하나의 클래스가 결과값으로 나옵니다. 위의 그림을 보면, 사실 고양이 사진에는, 하늘, 나무들, 초원도 있습니다. 하지만 우리의 관심사는 고양이이기 때문에 고양이만 예측값이 되어 나옵니다. 만약 우리가 한 이미지에서 존재하는 모든 정보를 알고 싶다면 어떻게야 할까요? 이러한 목적을 ​Image Seg..
[신경망] 17. Transfer Learning 안녕하세요. 이번 포스팅에서는 Transfer Learning 에 대해서 배워보도록 하겠습니다. ​ 기존의 기계학습 알고리즘에서는 2개의 훈련 데이터셋을 학습할 때, 비록 2개의 데이터셋이 비슷한 특징을 가진다고 하더라도, 2개의 모델을 각각 독립적으로 만들어서, 사용합니다. 예를 들어서, 첫번 째 모델은 가구에 소파, 식탁, 장롱 등의 다양한 category를 분류하는 모델이며, 두번 째 모델은 다양한 가구중에서 소파인지 아닌지를 분류하는 binary classification 모델이라고 가정하면, 첫번째와 두번째 모델은 각각 독립적으로 학습됩니다. 반면에, Transfer Learning은 이전에 사용되었던 모델의 정보를 입력받아 새로운 모델을 학습합니다. 예를 들어서, 가구를 분류하는 CNN 네트워..
[신경망] 16. CNN Architecture (2) VGGNet, GoogleNet 안녕하세요, 이번 포스팅에서는 저번과 이어서 CNN의 Architecture에 대해서 배워보도록 하겠습니다. 이번에 알아볼 Architecture는 AlexNet과 ZFNet에서 오분률이 또 다시 한번 급격히 감소한 VGGNet과 GoogleNet 입니다. 우선 앞선 두 Architecture와의 차이는 네트워크의 깊이입니다. VGGNet에서는 무려 19개의 층으로 구성됩니다. 다음 그림은 VGGNet과 AlexNet의 차이를 간략하게 보여줍니다. VGGNet은 AlexNet과 한눈에 봐도 비슷한 구조를 가지고 있습니다. 층 수만 2배정도 늘어났을 뿐인데 성능은 큰 차이를 보입니다. 이 처럼 네트워크의 깊이는 모델의 성능에 매우 큰 영향을 미칩니다. VGGNet의 특징은 다음과 같습니다. ​ 1. Fil..
[신경망] 15. CNN Architecture (1) AlexNet, ZFNet 안녕하세요, 이번 포스팅부터는 CNN Architecture, 즉 지금까지 CNN 대회에서 수상을 한 작품(?)을 배워보도록 하겠습니다. 저희가 알아볼 신경망은 총 AlexNet, ZFNet, VGGNet, GoogLeNet, ResNet 총 5가지입니다. 오늘은 첫번 째 시간으으로 AlexNet, ZFNet 2가지를 알아보도록 합시다. ​ AlexNet은 오분류율이 16.4%로 그렇게 낮은 값은 아니지만, 저 당시에는 굉장한 수치였습니다. 그래프에서 보시다시피, 이전 수상작에서는 25.8%인 것을 감안하면, 엄청난 발전입니다. 이는 이전 수상작들은 shallow network의 였던 반면 AlexNet은 8개의 층을 가지기 때문으로 생각할 수 있습니다. 우선 AlexNet의 구조를 살펴보도록 하겠습니다..
[신경망] 14. Convolution Neural Network 안녕하세요, 이번 포스팅에서는 Convolution Neural Network (CNN) 에 대해서 배워보도록 하겠습니다. CNN 은 이미지 데이터를 입력값으로 받아들여서, Convolution layer를 통과하면서 Filter를 통해서 이미지의 특징을 추출합니다. ​ 예를 들어서, MNIST 데이터 셋에서 ㅋ 을 이미지 데이터로 받아들인다고 합시다. 그리고 다음과 같은 4가지 필터로 이미지의 특징을 추출해보도록 하겠습니다. 1은 흰색을 의미하고, 0은 회색, 그리고 -1은 검정색을 의미합니다. 이는 이미지의 특징을 추출할 때, 명암을 의미합니다. 위의 그림은 이미지의 특징을 추출한 결과입니다. 첫번째와 세번째에서는 수평적인 이미지의 특징이 추출되었으며, 두번째와 네번째에서는 수직적인 이미지의 특징이 ..
[신경망] 13. Regularization 안녕하세요, 이번 포스팅에서는 Regularization에 대해서 배워보도록 하겠습니다. Regularization은 우선 모델을 훈련시킬 때, overfitting이 되는것을 방지하기 위해서 사용합니다. Regularization 방법으로 자주 쓰이는 것을 살펴보면 총 4가지가 있습니다. ​ 1. L2 Regularization L2 Regularization가 사용되는 경우를 알아보도록 하겠습니다. 모델의 학습과정을 살펴보면, error function의 값이 작아지는 방향으로 학습이 진행됩니다. 단순하게 error가 작아지는 쪽으로만 진행을 하다 보면, 특정 가중치 값들만 커지게 되고, 결과 값이 특정 가중치에만 결정되게 되는 경우가 발생합니다. 즉 새로운 데이터가 들어왔을 때 특정 변수에 의해서만..