AI(50)
-
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 -
01. XOR문제를 TF2.0 Keras로 풀어보자
포스트의 코드와 설명은 "시작하세요! 텐서플로 2.0 프로그래밍"을 참고하여 작성했습니다. 이번 포스트에서는 XOR문제를 TensorFlow2.X버전의 Keras API를 이용해 풀어보겠습니다. XOR문제는 이미 "모두를 위한 딥러닝" 포스트에서 다룬 적이 있지만, Keras에 대해 가장 쉽게 다가갈 수 있는 문제이기 때문에 이번 포스트에서는 Keras 활용에 중점을 두어 설명하겠습니다. · 인공지능의 첫 번째 겨울, XOR 문제 먼저 XOR(배타적 논리합)은 입력이 2개임을 가정할 때 입력 간의 비동일성을 판단하는 것으로, 쉽게 말해 두 입력이 다를 때만 XOR연산이 참이 되는 네트워크를 말합니다. 아래의 진리표를 보면 XOR 네트워크를 쉽게 이해할 수 있을 것입니다. X1 X2 XOR(X1,X2) 1..
2020.06.23 -
10-4. 레고처럼 네트워크 모듈을 마음껏 쌓아 보자
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이제 우리는 이전 포스트들을 공부하며 뉴럴 네트워크(NN)에서 하나의 Unit(perceptron)을 만드는 방법과 네트워크 동작 원리에 대해 어느 정도 알고 있을 것입니다. 이번 포스트는 딥러닝의 기초를 마무리하는 단계로, 뉴럴 네트워크 모듈의 모양에 대해 알아보겠습니다. 먼저 우리는 뉴럴 네트워크의 Layer가 Input/Hidden/Output Layer로 분리되어 있다는 것을 알고 있습니다. 이제 우리는 퍼셉트론과 그 상위 단계인 Layer를 구성하여 뉴럴 네트워크를 레고 쌓듯이 마음껏 만들어볼 수 있으며 이..
2020.06.19 -
10-3. Dropout과 앙상블
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 딥 네트워크에서 Overfitting을 피하는 방법인 Dropout과 모델을 나누어 학습한 뒤 결과를 합쳐 예측하는 방법인 앙상블에 대해 알아보겠습니다. 먼저 Overfitting에 대해 간단히 복습해보겠습니다. 이전 포스트에서 우리는 이미 Overfitting에 대해 배운 적이 있습니다. Overfitting이란 Training dataset에만 너무 딱 들어맞아 전체 dataset의 측면에서 봤을 때는 적합하지 않은 모델입니다. 사실 Overfitting에 대한 설명은 아래 그림을 보면 직관적으..
2020.06.19