모두를 위한 딥러닝 34

텐서플로우(Tensor Flow) #20_ Dynamic RNN

안녕하세요. 문범우입니다.이번 포스팅에서는 텐서플로우의 새로운 기능인 dynamic rnn에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Dynamic RNN 우리가 그동안 다루어보았던 RNN모델을 다시한번 생각해보도록 하겠습니다.이전의 모델을 이용해서 'hello'와 같은 문자열을 다루어볼때는, 우리가 다루고자하는 문자열의 크기에 따라서 RNN을 구성하였습니다.하지만 실제의 데이터에서는 문자열의 크기가 가변적입니다.예를 들어, 누군가가 전달하는 문자열 데이터를 처리한다고 했을 때, 그 데이터가 항상 고정된 길이는 아닙니다...

텐서플로우(Tensor Flow) #19_ Wide & Deep RNN

안녕하세요. 문범우입니다. 이번 포스팅에서는, 그 동안 배운 RNN 내용을 통해서, RNN을 보다 wide하고 deep하게 만들어 보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Long sentence 우리가 지난 번 내용을 통해 'hihello'라는 문자열에 대해 RNN을 이용하여 문자열을 예측하는 모델을 구성해 보았습니다. 그럼, 이러한 모델이 아래와 같은 긴 문장에서도 잘 작동할까요? 결과는 No. 입니다. 위와 같은 긴 문장은 우리가 그전에 만들어보았던 모델에서 제대로 작동되지 않습니다. 왜 그럴까요?간단하게 생각해보면, 우리의 ..

텐서플로우(Tensor Flow) #18_ RNN으로 'hihello' 학습하기

안녕하세요. 문범우입니다.이번 포스팅에서는 RNN을 이용하여 hihello를 학습시켜 보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. 'hihello' 학습시키기 이번에는 위와 같이 우리가 hihello 라는 문자열을 주었을 때, 각 문자에 대해 다음 문자를 예측해보도록 학습시킬 것 입니다. 이 문제가 간단해보일 수 있지만, 좀 더 자세히 살펴보면 h를 입력했을 때, 어쩔때는 i를, 어쩔 때는 e를 반환해야 합니다. 이는 RNN의 특성인, 이전 문자가 무엇이 나왔는지 알아야 값을 제대로 출력할 수 있습니다. 2. RNN basic 정리 그..

텐서플로우(Tensor Flow) #17_ RNN Basic

안녕하세요. 문범우입니다.이번 포스팅에서는 텐서플로우를 이용한 기본적인 RNN모델에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. RNN 우리가 이전, 이론에서 알아보았듯이 RNN 모델에서는 아웃풋이 다시금 영향을 주게 됩니다.위에서 왼쪽과 같은 것을 cell이라고 표현하는데, 즉 cell의 아웃풋이 다시 cell에 영향을 주게 됩니다. 그리고 이것이 기존의 Neural Network과 큰 다른점 입니다.그런데, 이것을 실제로 어떻게 구현할까요?생각보다 의외로, 텐서플로우에서 쉽게 구현이 가능합니다. 텐서플로우에서 RNN을 구..

딥러닝(DeepLearning) #9_NN의 꽃, RNN(Recurrent Neural Network)

안녕하세요. 이번 포스팅에서는 Neural Network에서도 가장 재밌고, 꽃이라고 하는 Recurrent Neural Network(RNN)에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Sequence(or Series) Data 우리가 사용하는 데이터들 중에서는 sequence data들이 매우 많이 있습니다.예를 들어, 우리가 이야기하는 자연어에서도 단순히 하나의 단어에 대해서만 이해해서 전체적인 이해를 할 수 있는 것이 아니라, 그전에 이야기했던 단어들을 모두 이해해야 합니다. 이러한 데이터를 sequence da..

텐서플로우(Tensor Flow) #16_ CNN으로 MNIST 99%

안녕하세요. 문범우입니다.이번 포스팅에서는 TensorFlow에서 CNN을 이용하여 MNIST를 99%로 예측해보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. 기본 구조 이번 실습에서 우리가 진행해볼 구조는 위의 그림과 같습니다.Convolution layer와 pooling layer가 두번 반복된 구조를 통해 나온 결과를 Fully-Connected layer를 통해 10개의 숫자들 중에서 예측합니다. 2. Layer 1 1234567891011121314151617181920import tensorflow as tfimport mat..

텐서플로우(Tensor Flow) #15_ TensorFlow CNN의 기본

안녕하세요. 문범우입니다.이번 포스팅에서는 Tensorflow에서 CNN을 다루는 기본적인 내용에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. CNN CNN은 이미지 분류나 텍스트 분류 등 다양한 분야에서 굉장히 좋은 성능을 내고 있습니다. 이에 대한 이론적인 내용은 ML&DL 카테고리에서 다루었습니다.CNN에서는 크게 3가지로 나눠볼 수 있는데, 첫번째로는 입력되는 이미지, 입력되는 벡터와 같은 것을 convoultion을 통해 filter를 사용하는 방법. 그리고 뽑아낸 값에 대해 데이터를 작게 만드는 subsamplin..

딥러닝(DeepLearning) #8_pooling and others

안녕하세요. 문범우입니다. 지난 포스팅에서 CNN에 대해서 알아보았습니다.이번 포스팅에서는 이어서, CNN에서의 pooling과 나머지 것들에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Pooling Convolution Neural Network의 전체적인 구조를 위의 그림과 같이 확인해보면, Convolution과 RELU가 붙어져 있으며 중간에 한번씩 POOL을 하게 됩니다. 이때 진행되는 POOL이라는 것이 무엇인가 알아보도록 하겠습니다. pooling이라는 것을 먼저 간단히 생각해본다면, sampling이라고 생각..

딥러닝(DeepLearning) #7_CNN(Convolutional Neural Networks) introduction

안녕하세요. 문범우입니다.이번포스팅에서는 Convolutional Neural Networks에 대해 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Convolutional Neural Networks 이번 포스팅에서 사용되는 슬라이드는 대부분 위의 사진에 나와 있는 주소에서 가져오게 되었습니다. 우리가 알아볼 Convolutional Neural Networks의 기본적인 개념은 고양이 실험에서 시작되었습니다. 고양이에게 어떤 이미지를 보여줬더니, 그림을 읽어들이는 뉴런들이 동시에 동작하는 것이 아니라, 특정 그림의 특정 부분에 대..

텐서플로우(Tensor Flow) #14_ Neural Network 총정리::MNIST 98%성공하기

안녕하세요. 문범우입니다.이번 포스팅에서는 우리가 Deep Neural Network 에 대해 이론으로 배웠던 내용들을 실제로 텐서플로우로 구현해보도록 하겠습니다. 우리가 아래 포스팅에서 softmax classifier를 이용하여 mnist 데이터를 예측해보는 모델을 만들어봤었는데, 이때 정확도가 약 83%도 나왔습니다. 이를 DNN으로 구현해보면서 정확도를 최대 98%까지 끌어올려보도록 하겠습니다. 텐서플로우(Tensor Flow) #10_ MNIST DATA * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. MNIST Data 다루기 우리가 MNIST D..