general ML, DL, NLP/딥러닝
-
13. CNN을 이용한 text 분류general ML, DL, NLP/딥러닝 2022. 6. 28. 23:23
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 이미지 처리에 사용했던 CNN도 text 분류를 위해 사용할 수 있습니다. 이를 위해서는 text를 이미지와 유사하게 처리할 수 있는 몇 가지 과정이 필요합니다. 1. 문서를 이미지 형태인 3D 형태(n, m, c)로 표현 n은 문서를 표현할 때 사용하는 최대 단어 수입니다. 즉 문서의 길이입니다. - 특히 CNN을 사용하여 텍스트 분류를 할 때에는 모든 문장들에 대해 n을 동일하게 맞춰주어야 합니다. - 패딩을 하거나 잘라냅니다. m은 한 단어를 표현하는 임베딩 벡터의 차원, c는 이미지 데이터의 채널로, text 데이터에서는 1로 간주합니다. 예로 n=8, m=5, c=1인 형태..
-
12. LSTM(Long Short-Term Memory)general ML, DL, NLP/딥러닝 2022. 6. 28. 22:45
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 앞선 포스팅에서 다루었던 RNN의 단점은 너무 멀리 떨어진 정보를 충분히 반영하지 못하는 장기 의존 문제(problem of long term dependency)였습니다. 이에 LSTM이 등장하게 됩니다. * 장기 의존 문제 - 입력된 문서에서 상대적으로 오래전에 사용된 단어의 정보가 잘 전달되지 않음 - 마지막 time step에서 생성된 히든 스테이트 벡터만 정달되는 경우, 문서 앞부분에서 사용된 단어들의 정보가 잘 반영되지 못한 상태가 됨 1. LSTM Long Short-Term Memory라는 이름을 가진 LSTM은 RNN의 단점을 보완하기 위해 고안된 알고리즘입니다. 이..
-
11. RNN(Recurrent Neural Network)general ML, DL, NLP/딥러닝 2022. 6. 28. 18:08
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 1. 개요 RNN(Recurrent Neural Network)은 모형이라기보다는 층(layer)이라 할 수 있습니다. 따라서 Feed Forward Neural Network의 은닉층 하나로 생각할 수 있으며, 이 RNN이라는 은닉층이 순차적으로 여러번 반복 적용됩니다. 정확히는 RNN은 순차적으로 입력되는 데이터, 즉 시퀀스(sequence) 데이터에 대해 매번 반복적으로(=순환적으로) 적용되는 방식으로 작동합니다. 1) 시퀀스 데이터(sequence data) 시퀀스 데이터란, 순서를 가지고 연속적으로 나열되어있는 데이터를 말합니다. 주로 텍스트(단어 시퀀스), 비디오(이미지 ..
-
10. 이미지 분류 사전학습모형general ML, DL, NLP/딥러닝 2022. 4. 21. 20:43
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 이미지 분류는 크게 2가지로 나뉠 수 있습니다. CNN을 사용한 이미지 분류 사전학습모형을 사용한 이미지 분류 직접 convolutional network를 구축하는 방법(from scratch) 단점 존재 - 정교한 모형을 구축하는 것이 어려움 - 성능을 높이기 위해서는 많은 학습 데이터가 요구됨 - 학습에 시간이 오래 걸림 - 매우 많은 computing power가 필요 옆의 단점들을 보완할 수 있는 방법 표에서도 알 수 있다시피 개인이 CNN을 구축하여 성능을 높이는 데에는 한계점이 존재합니다. 이를 보완하기 위해 보편적으로 이미지 분류 task 수행 시에는 사전학습모형을 사..
-
9. CNN 코드 - cats & dogsgeneral ML, DL, NLP/딥러닝 2022. 4. 21. 20:43
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 이번 포스트에서는 개와 고양이를 구분하는 cats and dogs task를 수행한다고 가정합니다. 케라스에서 데이터셋을 다운받는 것이 아닌, 사용자가 가진 이미지를 사용하려면 이미지를 폴더에 따로 따로 담아주어야 합니다. 여기서는 라벨별로 따로 담아주었습니다. 데이터를 위와 같이 정리한 후, 이전에 사용한 CNN 코드로 분류 task를 수행할 수 있습니다. (1) 첫 번째로 필요한 모든 프레임워크, 라이브러리 등을 import하는 의존성 준비 코드입니다. 1 2 3 4 5 6 7 8 9 # 의존성 준비 import tensorflow as tf from tensorflow.kera..
-
8. CNN 코드 - MNIST, Cifar-10general ML, DL, NLP/딥러닝 2022. 4. 21. 03:58
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 실제로 코드를 보면서 CNN이 어떻게 생겼는지를 살펴보려 합니다. 살펴볼 코드는 MNIST와 Cifar-10입니다. 1. MNIST - 흑백 데이터 CNN (1) 중요사항 결정 및 데이터 로드 1 2 3 4 5 6 7 8 9 10 11 # 우선적으로 정해야 할 것들을 정합니다. num_classes = 10 # 종속변수 수 # input image dimensions img_rows, img_cols = 28, 28 # 이후 데이터를 불러옵니다. from tensorflow import keras from tensorflow.keras.datasets import mnist (x_t..
-
7. CNN(Convolutional Neural Network)general ML, DL, NLP/딥러닝 2022. 4. 20. 22:50
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 드디어 CNN입니다. (개인적으로는 딥러닝을 CNN을 통해 입문했기에 옛 생각이(?) 많이 나는 알고리즘이기도 합니다 ㅎ_ㅎ...) 1. 이미지 처리에서의 FFNN 한계와 CNN 앞 FFNN에서 확인했듯이 사실 이미지를 단순 FNN으로 처리하기는 매우 힘듭니다. 가래떡 뽑듯이 하나로 뽑는 과정에서부터 공간 정보 손실과 과도한 파라미터 수의 증가가 일어나기 때문입니다. 가래떡이라고 했지만 실은^^;; 그림처럼 이미지를 여러 줄로 자른 후 1차원 배열로 나타내는 것을 뜻합니다. 딱 봐도 알 수 있듯이 이미지가 무엇을 나타내는 지에 대한 정보, 즉 이웃 픽셀들과의 공간 정보(spatial..