[딥러닝] 12장 자연어 처리
·
etc
자연어 처리는 주로 순환 신경망 (RNN) 이용keras의 자연어 처리 라이브러리 nltk를 사용한다. 자연어 처리 단계자연어 처리 전 필요없는 토큰(불용어) 제거하는 과정 필요 1) 텍스트 전처리- 토큰으로 분리(토큰화)import nltkfrom nltk.tokenize import word_tokenize from nltk.tokenize import sent_tokenize - 각종 구두점 삭제- 소문자 변환 신경망이 소화할 수 있는 방식으로 단어를 제공해야함!! 1) 정수 인코딩- 일반적으로 단어를 빈도 순으로 정렬 한 뒤 번호를 차례대로 부여한다. 2) 원핫 인코딩- 이진벡터 중 하나만 1이고 나머지 0으로 변환 keras의 to_categorical() 함수 사용 import numpy..
[딥러닝] 11장 순환신경망
·
etc
순차 데이터란? 시간적 순서나 공간적인 순서가 있는 데이터ex) 주식 가격, 오디오 데이터 등등 .. 기존 표준 신경망 -> 멀리 떨어진 과거의 데이터를 잘 기억하지 못함시간의 흐름에 따라 변화하는 데이터를 학습하기 위한 신경망이 순환 신경망 (RNN) 이다.연속데이터를 처리한다! RNN 기능- 가변 길이의 입력을 처리 가능해야 함- 장기 의존성 추적할 수 있어야 함- 순서에 대한 정보를 유지해야 함- 시퀀스 전체의 파라미터를 공유할 수 있어야 함 순환 신경망 학습을 위해서 순환 데이터가 필요하다. 데이터를 일정한 길이로 잘라서 여러 개의 훈련 샘플을 만들어야 한다. RNN의 구조출력 벡터가 다시 입력되는 특성을 가지고 있다. 활성화 함수는 주로 tanh 함수를 주로 사용한다입력층, 은닉층, 출력층..
[딥러닝] 10장 영상인식
·
etc
전통적인 영상 인식 시스템은 특징을 사용한다. 영상을 처리할 때 유리한 신경망 = CNN- 영상 인식 신경망은 크게 특징 추출기(컨벌루션 신경망), 특징 분류기(완전 연결 신경망)으로 구성되어 있다. 데이터 증대한정된 데이터에서 여러가지로 변형된 데이터를 만들어내는 기법 from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rescale = 1./255, rotation_range=90, brightness_range=[0.8, 1.0], width_shift_range=0.2, zoom_range=[0.8, 1.2], height_shift_range=0.2) rotation_..
[딥러닝] 9장 CNN
·
etc
컨볼루션 신경망 (CNN)- 하위 레이어의 노드들과 상위 레이어의 노드들이 부분적으로만 연결되어 있음 - 모든 신경망 구조 중 가장 강력한 성능을 보여주는 신경망 중 하나- 2차원 형태의 입력을 처리한다 - 영상, 음성에서 좋은 성능을 보임- 여러 레이어를 연결하여 신경망을 구성한다 CNN 구조특징 추출 영역은 Convolution Layer와 Pooling Layer를 여러겹 쌓은 형태로 구성된다. 컨벌루션을 수행한 결과 = 특징맵 (feature map)Convolution Layer는 입력 데이터에 필터를 적용 후 여러 겹 쌓는 형태로 구성된다.필터가 여러개일때 당연히 특징 맵도 많아짐 !-> 필터 값은 학습되는 것 stride -> 커널을 한번에 몇 픽셀씩 이동할건지?CNN 구현 시 주..
[딥러닝] 8장 심층신경망
·
etc
심층신경망 (DNN) 이란?- MLP에서 은닉층의 개수를 증가시킨 것 출력층에서 계산된 그래디언트가 역전파되다가 값이 점점 작아져서 없어지는 문제점 -> 해결훈련 데이터가 충분하지 못하면, 과잉 적합 일어날 가능성 -> 해결 1) 그래디언트 소실 문제- 원인은 시그모이드 함수- 문제를 해결하기 위해 심층 신경망에서는 활성화 함수로 ReLU 함수 이용 기존 : 손실함수로 MSE (평균 제곱 오차) 사용 목표 출력 : 원-핫 인코딩실제 출력: 소프트 맥스 함수 출력 -> 완벽하게 일치하면 0 케라스에서는 손실 함수로 교차 엔트로피를 많이 사용한다. -> 2개의 확률 분포간의 거리를 측정한 것!! BinaryCrossEntropy: 이진 교차 엔트로피는 이진 분류 문제를 해결하는 데 사용되는 손실 ..
[딥러닝] 7장 MLP-2
·
etc
고수준 딥러닝 프레임워크 케라스 -> 핵심 데이터 구조 = model은 레이어를 구성하는 방법을 나타낸다. 1) Sequantial 모델을 만들고 모델에 필요한 레이어를 추가하는 방법import matplotlib.pyplot as pltimport tensorflow as tfmodel = tf.keras.models.Sequential()model.add(tf.keras.layers.Dense(units=2, input_shape=(2,), activation='sigmoid')) model.add(tf.keras.layers.Dense(units=1, activation='sigmoid')) # 출력층, 1개의 뉴런model.complie(loss='mean_squared_error', opti..