AI/모두를 위한 딥러닝(33)
-
12-2. RNN - LSTM(Long Short Term Memory) 레이어
이 포스트는 허민석님의 유튜브 [딥러닝]LSTM 쉽게 이해하기와 Christopher olah's blog, Understanding LSTM Networks를 참고하여 작성했습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. LSTM은 SimpleRNN의 치명적인 단점을 해결하고자 1997년 Sepp Hochreiter와 Jurgen Schmidhuber에 의해 제안된 레이어입니다. 그렇다면 먼저 SimpleRNN의 문제점이 무엇인지, LSTM은 그 문제점을 어떻게 해결했는지에 대해 알아보겠습니다. SipleRNN의 치명적인 단점, 장기 의존성(Long-Term Dependency) 문제 먼저 SimpleRNN의 치명적인 단점, 장기 의존성..
2020.08.25 -
12-1. RNN / SimpleRNN
이 포스트는 허민석님의 유튜브 [딥러닝]RNN 기초 강의와 시작하세요! 텐서플로2.0프로그래밍을 참고하여 작성했습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. CNN에 이어 이번에는 순환 신경망(RNN, Recurrent Neural Network)과 RNN의 가장 기초인 SimpleRNN에 대해 알아보겠습니다. 먼저 RNN은 음악, 자연어, 주식 시장 등 시간의 흐름에 따라 변화하는 시퀀스(순서가 있는) 데이터를 입력받아 처리할 때 사용됩니다. 하나의 예로 여러 단어들이 주어졌을 때, 이 단어들을 조합해서 만든 문장의 품사를 맞추는 프로그램을 생각해보겠습니다. 예시를 들어 i, google, at, work의 네 단어가 주어졌을 때, '..
2020.08.19 -
11-3. Fashion MNIST를 Keras를 이용한 ConvNet으로 풀어보자
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트는 모두를 위한 딥러닝 LAB 11-2의 "MNIST 99% with CNN"를 응용해 "Fashion MNIST with CNN, TF2.X"로 재해석하여 작성했습니다. 포스트의 코드는 책 "시작하세요! 텐서플로 2.0 프로그래밍"을 참고하여 작성했습니다. Fashion MNIST MNIST는 손으로 쓴 숫자 글씨를 모아놓은 데이터셋으로, 프로그래밍 언어를 처음 배울 때 "Hello World"를 출력하는 것과 같이 기계학습 분야를 대표하는 고전적인 문제입니다. Fashion MNIST는 MNIST에 영..
2020.07.13 -
11-2. ConvNet Max Pooling과 Full Network
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 저번 포스트에 이어 CNN(Covolutional Neural Network, 합성곱 신경망)의 Pooling Layer와 CNN의 구성에 대해 알아보겠습니다. 먼저 저번 포스트의 CNN 과정을 다시 보겠습니다 우리는 직전 포스트에서 Convolution layer에 대해 알아보았습니다. 그렇다면 이번 포스트에서는 Pooling layer에 대해 알아보겠습니다. Pooling layer는 Convolution layer를 통과해 나온 Activation map(Feature map)을 입력으로 받아..
2020.07.06 -
11-1. ConvNet의 Conv 레이어 만들기
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 우리는 이전 포스트에서 CNN(Convolutional Neural Network, 합성곱 신경망)에 대해 잠깐 알아보았습니다. 아래의 CNN의 구조를 다시 보면 입력이 부분 부분으로 나뉘어 진행하다 합쳐지는 모습을 볼 수 있습니다. 이를 이해하기 위해서 우리는 CNN이 시작된 실험부터 살펴보겠습니다. 위는 CNN의 시작이라고 할 수 있는 고양이 실험 과정입니다. LeCun 교수님은 Hubel & Wiesel의 고양이 인지 실험에서 아이디어를 얻어 1989년 논문 "Backpropagation applied to h..
2020.07.03 -
10-4. 레고처럼 네트워크 모듈을 마음껏 쌓아 보자
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이제 우리는 이전 포스트들을 공부하며 뉴럴 네트워크(NN)에서 하나의 Unit(perceptron)을 만드는 방법과 네트워크 동작 원리에 대해 어느 정도 알고 있을 것입니다. 이번 포스트는 딥러닝의 기초를 마무리하는 단계로, 뉴럴 네트워크 모듈의 모양에 대해 알아보겠습니다. 먼저 우리는 뉴럴 네트워크의 Layer가 Input/Hidden/Output Layer로 분리되어 있다는 것을 알고 있습니다. 이제 우리는 퍼셉트론과 그 상위 단계인 Layer를 구성하여 뉴럴 네트워크를 레고 쌓듯이 마음껏 만들어볼 수 있으며 이..
2020.06.19