본문 바로가기

머신러닝, 딥러닝/딥러닝15

Stacked RNN ◈ RNN의 모든 hidden state vector 사용하기 ✅ RNN 정리모든 hidden state vector 사용하기 ✔ 기존 RNN의 문제점 •일반적인 신경망의 은닉층은 한 번만 적용이 되지만, RNN 층은 이전 단계의 히든 벡터를 다시 입력받는 과정을 반복한다. 따라서, 입력 층에서 가까울수록 출력된 hidden state vector (h0, h1, h2 ....)의 정보가 적게 반영된다. 일반적인 텍스트 데이터는 문서의 앞 부분에 핵심적인 내용이 포함되어 있는 경우가 많기 때문에 일반 RNN을 사용하면 중요 정보를 제대로 학습하지 못할 수도 있다. 따라서 모든 단계의 hidden state vector의 정보를 모두 사용할 필요가 있다. ✅ Hidden state vector 결합 방법 .. 2022. 1. 19.
CNN을 이용한 텍스트 분류 ◈ CNN을 사용해서 텍스트 감성 분석 수행하기 ✅ 기본 개념 설명 • CNN은 필터를 이용해서 핵심 정보를 추출하기 때문에, 텍스트 데이터를 분석하더라도 기본적으로 3차원 형태로 표현해야 한다. • (n, m, c) 형태로 표현한다. n : 문서의 길이를 의미함. 즉, 문서를 구성하는 최대 단어 수 (문서의 길이는 동일하게 통일시켜야 함) m : 한 단어를 표현하는 임베딩 벡터의 차원 (단어를 저차원의 임베딩 벡터로 변환할 때, 각 벡터가 가지고 있는 벡터 차원을 의미함) c : 이미지 데이터에서 채널 수, 텍스트 데이터는 1 ✔ 예시 : 문서 : The movie was intersting and enjoyable n=8, m=5, c=1 문서를 임베딩 벡터로 표현한 것을 하나의 이미지로 간주할 수 .. 2022. 1. 18.
CNN 사전학습 모델을 이용한 이미지 분류 📚 CNN 사전학습 모델을 사용해서 이미지 분류하기 ✅ 이미지 전처리 - Input 형식 변경 📌 이미지 크기 변경 사전학습 모델마다 입력받는 이미지의 형태가 다르다. VGG 16는 224x224 형태의 컬러 이미지를 입력받기 때문에 이에 맞춰서 학습할 이미지 크기를 변환해야 한다. 대부분의 사전학습 모델은 정사각형 이미지 형태를 입력받는다. 이미지를 정사각형으로 만드는 방식은 다음과 같다. ① Cropping : 정사각형 형태로 가운데를 중심으로 자르기 ② Warping : 가로세로 비율이 다른 이미지를 확대 또는 축소에서 변경하는 방법 → 이미지의 왜곡 발생 ③ Padding : 이미지 일부를 특정 색상으로 채우는 방법. 주로 검정색(0인 값)으로 채우는 zero padding이 자주 사용된다. im.. 2022. 1. 18.
CNN 사전학습 모델 - LeNet / AlexNet / VGGNet / InceptionNet / ResNet / DenseNet / MobileNet / EfficientNet 📚 사전학습 모형(pre-trained model)의 종류와 개념 ✅ CNN 기본 개념 📌 CNN 요약 이미지 데이터는 여러 개의 픽셀로 구성되어 있고, 한 개의 픽셀은 3개의 색상정보를 저장하고 있다. 일반 신경망으로 이미지 데이터를 학습할 경우 3차원 이미지를 1차원으로 변환해서 입력하는 과정에서 정보 손실이 발생한다. 또한 파라미터가 굉장히 많아지기 때문에 과적합 가능성이 증가한다. 따라서 CNN은 필터를 이용해서 이미지의 각 부분의 정보를 추출한다. 필터는 이미지의 각 셀들과 내적 연산을 수행(합성곱)하면서 activation map을 생성한다. 이렇게 생성된 activation map은 또 하나의 이미지로 보고 다시 필터를 통해서 정보를 추출하는 과정을 반복한다. 그리고 최종적으로 1차원 데이터.. 2022. 1. 17.
RNN(순환신경망) 기본 📚 RNN(Recurrent Neural Network) 개념 ✅ RNN 이란 • RNN층은 기본 신경망인 FNN의 은닉층 형태와 동일하다. RNN층에서는 하나의 은닉층을 순차적으로 여러 번 반복해서 사용한다. • 텍스트나 비디오 등 순서를 가지고 연속적으로 나열되어 있는 sequence 데이터에 적합함 특히 텍스트 분석에서 단어들의 문맥적 의미 추출 또는 단어 간의 관계 추출에 사용됨. ✅ RNN 작동 방식 • RNN에 텍스트 데이터를 입력하기 위해서는 각 단어를 저차원의 벡터로 표현해야 한다(벡터의 차원 = 벡터의 원소 수) 저차원으로 변환해서 표현한 벡터를 Embedding vector라고 한다. 파이토치 위키독스에 설명이 잘 되어 있음(https://wikidocs.net/60852) • 단어를 .. 2022. 1. 14.
CNN(합성곱 신경망) 기본 📚 CNN 기본 개념 ✅ 이미지 처리에 일반 신경망 적용 시 문제점 ① 공간 정보의 손실 FNN(Feed Forward Neural Network)에서는 원래 input 데이터를 reshape 해서 일차원으로 변경한 후에 입력한다. 하지만, 원본 데이터를 row 단위로 자르고 변환하는 과정에서 이웃 픽셀의 정보(spatial information)를 제대로 사용하지 못하기 때문에 정보 손실이 발생한다. ② 파라미터의 수 증가 예를 들어, 1000 x 1000 크기의 컬러 이미지의 input 노드의 수는 1000 x 1000 x 3 = 3,000,000개이다. 첫 번째 은닉층에 은닉 노드가 100개라고 하면, 입력 층과 첫 번째 은닉층의 가중치 파라미터는 3백만x100=3억개가 된다. 3억 개의 파라미터를.. 2022. 1. 13.