본문 바로가기

Data Science18

6장 텍스트 시퀀스를 딥러닝1 6장 텍스트 시퀀스를 딥러닝1 시퀀스 데이터를 위한 딥러닝 모델은 기본적으로 순환 신경망(Recurrent Neural Network)과 1D 컨브넷이 있다. 6.1 텍스트 데이터 다루기 텍스트 데이터를 딥러닝 학습을 위한 수치형 텐서로 변환하여 딥러닝학습을 진행한다. 텍스트를 단어로 나누고 각 단어를 하나의 벡터로 변환 텍스트를 문자로 나누고 각 문자를 하나의 벡터로 변환 텍스트에서 단어나 문자의 n-그램을 추추랗여 각 n-그램을 하나의 백터로 변환 6.1.1 단어와 문자의 원-핫 인코딩 모든 단어에 고유한 정수 인덱스틀 부여하고 이 정수 인덱스 i를 크기가 N인 이진 벡터로 변환한다. 이 벡터는 i번째 원소만 1이고 나머지는 0이다. Tokenizer 원-핫 인코딩: 각각의 항목을 벡터차원으로 변환하.. 2020. 11. 8.
5장 컴퓨터 비전을 위한 딥러닝1 5장 컴퓨터 비전을 위한 딥러닝1 이번 장에는 컨브넷(convnet)이라고 불리는 합성곱 신경망(convolutional neural network)에 대해 학습하고 MNIST 숫자 이미지 분류 예시를 활용하여 컨브넷을 사용해보자 5.1 합성곱 신경망 소개 다음 코드는 기본적인 컨브넷의 모습이다. Conv2D와 MaxPooling2D 층을 쌓아올렸습니다. model = models.Sequential() # 컨볼루션 층 model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3.. 2020. 10. 29.
4장 머신러닝의 기본요소 4장 머신러닝의 기본요소 3장에서는 3개의 예시를 통해 분류와 회귀에 대해 학습했습니다. 이 장에서는 딥러닝 문제에 도전하고 해결하기 위한 개념을 정립해나가겠습니다. 4.1 머신러닝의 네가지 분류 4.1.1 지도 학습 지도학습은 가장 흔한 경우입니다. 샘플 데이터가 주어지면 알고있는 타깃에 입력데이터를 매핑하면서 학습합니다. 지도학습의 대부분은 분류와 회귀로 구성되지만 몇몇 변종들도 존재합니다. 4.1.2 비지도 학습 비지도 학습의 경우 어떤 타깃도 사용하지 않고 입력데이터의 흥미로운 변화를 찾습니다. 데이터 시각화, 데이터 압축, 데이터 노이즈 제거 등 데이터에 있는 상관관계를 찾아내어 이용합니다. 4.1.3 자기 지도 학습 자기 지도 학습(self-supervised learning)은 지도학습의 특.. 2020. 10. 28.
3장 신경망 시작하기2 3장 신경망 시작하기2 3.5 뉴스기사 분류: 다중분류문제 이전 이중분류문제의 경우 2개의 클래스(긍정, 부정)를 분류하는 문제지만, 이번 문제는 46개의 클래로 분류하는 다중분류의 예입니다. 3.5.1 로이터 데이터셋 로이터 데이터셋은 46개의 토픽이 있으며, 각 토픽의 훈련세트는 최소한 10개의 샘플을 가지고 있습니다. # 로이터 데이터셋 로드하기 from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000) # 로이터 데이터셋을 텍스트로 디코딩하기 word_index = reuters.get_word_index() reverse_word_i.. 2020. 10. 26.
5장 컴퓨터 비전을 위한 딥러닝2 5장 컴퓨터 비전을 위한 딥러닝2 5.3 사전에 훈련된 커브넷 사용하기 작은 이미지 데이터셋에 딥러닝을 적용하는 일반적이고 효과적인 방법은 사전에 훈련된 네트워크를 사용하는 것입니다. 사전 훈련된 네트워크(pretrained network)는 일반적으로 대규모 이미지 분류 문제를 위해 대량의 데이터셋에서 미리 훈련되어 저장된 네트워크 입니다. 사전훈련된 네트워크를 사용하는 방법은 두가지 있습니다. 특성추출(feature extraction), 미세조정(fine tuning)입니다. 먼저 특성추출부터 시작해봅시다. 5.3.1 특성추출(feature extraction) 특성추출은 사전에 학습된 네트워크의 표현을 사용하여 새로운 샘플에서 흥미로운 특성을 뽑아내는것입니다. 이러한 특성을 활용하여 새로운 분류기.. 2020. 9. 23.
CNN 나만의 정리 CNN 나만의 정리 1. CNN 1.1 CNN 구조 CNN의 경우 일반적인 신경망과 진행은 비슷하지만, feed forward 부분에서 일반적 신경망에서의 은닉층 부분을 CNN에서는 완전연결층으로 수행한다. 1번 : 입력데이터 x와 t를 insert 2번 : feedforwad 과정 컨볼루션층과 완전연결층을 거쳐 출력 y를 내보낸다 3번 : 출력 y값이 최소값인지 아닌지 판단 4번 : 최소가 아니라면 계속해서 반복 옵티마이저를 사용하여 W, b를 업데이트 5번 : 최소일경우 학습 종료 1.2 컴볼루션층 개요 컨볼루션 층에서는 총 3가지 단계로 순서대로 이루어져 있다. 입력데이터와 필터들과의 컨볼루션 연산을 통해서입력 데이터 특징을 추출하여 특징 맵을 만들고 (conv) 특징맵에서 relu를 통해 필요없는.. 2020. 9. 17.
오차역전파 나만의 정리 오차역전파(Back Propagation) Review - 수치미분 문제점 딥러닝 학습에서 사용되는 수치미분의 경우 입력이 클경우에 가중치와 bias의 수치미분연산이 오래걸린다. 이러한 문제를 해결하기 위해 오차역전파를 사용한다. 1. 오차역전파(Back Propagation) 개념 원리 가중치나 bias를 편미분 하는대신에 체인 룰을 이용하여 하나의 국소 미분으로 분리 한후에 수학적으로 계산하는방법을 오차역전파라고 한다. 쉽게 말해서 편미분 대신 행렬 표현으로 만들어서 계산하는것! 행렬로 계산하기 때문에 속도가 빠르다. 2. 오차역전파의 패턴 미분의 방법에서 행렬곱 방법으로 변환할때 복잡한 수학 증명 과정이 있습니다. 하지만 변환 결과에서 오차역전파의 일정한 패턴을 보이고 해당 공식 패턴을 잘 활용하여.. 2020. 9. 16.
딥러닝 기초 나만의 정리 2 딥러닝 1. 딥러닝으로 XOR문제 해결 XOR 문제로 알아보는 딥러닝 아키텍처 위 그림은 XOR 데이터를 입력으로 하는 딥러닝의 아키텍처를 그린것이다 해당 아키텍처는 입력층 - 은닉층 - 출력층으로 이루어져있고, 은닉층의 경우 여러개의 은닉층을 만들수 있다. 다만 은닉층과 노드 수가 많아지면 학습 속도가 느려지고 정확도에 문제가 발생할수 있기 때문에 적절한 개수의 은닉층과 노드수를 고려하여 구현해야한다. 딥러닝이 한 번 훈련할때 위 1~4번까지 순서대로 반복하는데 아래 상세하게 작성해보겠다. 1번 Input!! x1, x2의 입력데이터를 입력층에 넣는다. 2번 feed forward feed forward 과정으로서 각각의 층의 출력이 다음 층의 입력값으로 들어가는 과정이다 입력층의 output은 은닉층.. 2020. 9. 16.
3장 신경망 시작하기1 3. 신경망 시작하기 이번 포스트는 신경망이 가장 많이 사용되는 세 종류 문제인 이진 분류, 다중 분류, 회귀에 배운 것들을 적용해봅시다. 3.1 신경망의 구조 신경망 훈련에는 다음 요소들이 관련되있습니다. 네트워크(또는 모델)를 구성하는 층 입력 데이터와 그에 상응하는 타깃 학습에 사용할 피드백 신호를 정의하는 손실함수 학습진행 방식을 결정하는 옵티마이저 아래는 4가지 요소들의 관계를 나타낸 그림입니다. 3.1.1 층 : 딥러닝의 구성단위 층은 대부분 가중치라는 층의 상태를 가집니다. 가중치는 경사하강법에 의해 학습되는 하나 이상의 텐서이며 여기에 네트워크가 학습한 지식이 담겨있습니다. 층마다 적절한 텐서 포멧과 데이터 처리 방식이 다릅니다. 2D 텐서(samples, features)가 저장된 벡터데.. 2020. 8. 31.
2장 시작하기 전에: 신경망의 수학적 구성요소 2. 시작하기 전에: 신경망의 수학적 구성요소 2.1 신경망과의 첫 만남 딥러닝의 아주 기초적인 데이터셋인 MNIST를 사용한 예제를 풀어보겠다. MNIST는 딥러닝계의 "hello world"라고 생각될정도로 기초중의 기초 예제다 MNIST 데이터셋 : 6만개의 훈련 이미지와 1만개의 테스트 이미지로 구성 이번 예제의 경우 케라스를 완벽하게 이해하지 않아도 된다. 이번 예제는 케라스의 전체적인 구성과 코드의 흐름만 파악하도록 하자 # 2-1 케라스에서 MNIST 데이터셋 적제하기 from keras.datasets import mnist from keras.utils import to_categorical (train_images, train_labels),(test_images, test_labels.. 2020. 8. 31.