Bag of Words
·
ML_DL/딥러닝 공부하기
Bag of Words 단어의 출현 빈도에 집중해 텍스트를 수치화 하는 표현 방법이다. 기존에 학습된 단어를 기반으로 하기 때문에, 새로운 단어에 대한 처리가 어렵다. 띄어쓰기를 기반으로 하는 영어에는 적용이 간단하다면, 중국어나 일본어, 한국어 등에는 사용이 어렵다. scikit-learn의 CountVectorizer를 통해 쉽게 구현할 수 있다. from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer() sentence = ["John likes to watch movies. Mary likes movies too."] vectorized_sentence = vectorizer.fit_transf..
Vanishing Gradient Problem(기울기 소실)
·
ML_DL/딥러닝 공부하기
순전파 (forward propagation, forward pass) 입력층: x1​,x2​,x3 / 은닉층: h1,h2,h3 / 출력층: y h1​=σ(w11​x1​+w21​x2​+w31​x3​+b1​) h2​=σ(w12​x1​+w22​x2​+w32​x3​+b2​) h3​=σ(w13​x1​+w23​x2​+w33​x3​+b3​) y=σ(v1​h1​+v2​h2​+v3​h3​+b4​) 손실 계산 (loss computation) MSE(Mean Squared Error), CEE(Cross Entropy Loss)와 같은 손실함수(loss function)으로 실제값과 예측값의 오차를 계산한다. 역전파 (backward propagation, backward pass) 손실함수를 통해 계산한 손실을 통해,..
전이학습 (Transfer Learning)
·
ML_DL/딥러닝 공부하기
Transfer Learning 새로운 task에 대해 학습을 진행하면, 시간과 비용이 많이 든다. 비슷한 유형의 task를 수행한 모델을 통해 시간과 비용을 줄일 수 있다. 기존에 학습했던 weight를 업데이트 하지 않기 위해 모든 layer를 고정(freeze)한다. task별 class의 수가 다를 수 있기 때문에, fully connected layer를 새로 정의하고 이를 학습한다. Freeze 학습 과정에서(back propagation) 해당 층의 parameter를 업데이트 하지 않는것을 layer freeze라 한다. Fine-tuning fully connected layer를 학습하는 기존 transfer learning에서, 고정(freeze)하는 layer를 임의로 설정한다. P..
[자연어처리] Word Embedding
·
ML_DL/딥러닝 공부하기
정수 인코딩 형태소 기준으로 토큰화하여 단어 집합을 만들면 다음과 같다. 하지만 단어들 사이에 연관성을 나타내지 못한다. from konly.tag import Okt okt = Okt() tokens = okt.morphs('나는 사과를 좋아한다') print(tokens) # ['나', '는', '사과', '를', '좋아한다'] word_to_index = {word : index for index, word in enumerate(tokens)} print('단어 집합 :',word_to_index) # 단어 집합 : {'나': 0, '는': 1, '사과': 2, '를': 3, '좋아한다': 4} 원-핫 인코딩 (One-Hot Encoding) 원-핫 인코딩은 해당하는 단어를 1로, 나머지는 전부 ..
이미지 불러오기
·
ML_DL/딥러닝 공부하기
OpenCV 활용 cv2.imread는 color 채널이 BGR 순서이기 때문에 RGB로 바꾸는 작업이 필요하다. jupyter curnel에서는 cv2.imshow()가 crash를 일으킬 수 있기 때문에 plt.imshow()를 활용한다. img.shape은 (height, width, channel) 순서이다. import cv2 import matplotlib.pyplot as plt img = cv2.imread('./dog.jpg') plt.imshow(img) Pillow 활용 이미지를 show()를 통해 확인할 경우, jupyter kernel과 crash가 날 수 있기 때문에 plt.imshow()를 활용한다. Image.open()을 활용할 경우, shape을 확인할 수 없다. from..
[파이토치로 시작하는 딥러닝] Part-4 RNN
·
ML_DL/딥러닝 공부하기
RNN (Recurrent Neural Network) 입력하는 데이터의 순서에 영향을 받는다. 음성, 텍스트 등 데이터의 크기가 가변적이다. data shape = ( batch size, sequence length, input data dimension) hidden state : 같은 값이 둘로 나뉘기 때문에 hidden size와 output size는 같다. pytorch에서는 batch size와 sequence length를 자동으로 파악할 수 있다. Seq2Seq encoder : 입력된 seqeunce를 vector로 변환한다. decoder : vector를 hidden state로 하여 output을 생성한다. SOS_token : decoder의 시작 / EOS_token : 각 ..