모두를 위한 딥러닝(21)
-
10-3. Dropout과 앙상블
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 딥 네트워크에서 Overfitting을 피하는 방법인 Dropout과 모델을 나누어 학습한 뒤 결과를 합쳐 예측하는 방법인 앙상블에 대해 알아보겠습니다. 먼저 Overfitting에 대해 간단히 복습해보겠습니다. 이전 포스트에서 우리는 이미 Overfitting에 대해 배운 적이 있습니다. Overfitting이란 Training dataset에만 너무 딱 들어맞아 전체 dataset의 측면에서 봤을 때는 적합하지 않은 모델입니다. 사실 Overfitting에 대한 설명은 아래 그림을 보면 직관적으..
2020.06.19 -
10-2. Weight 초기화 잘해보자
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. Vanishing gradient 현상을 해결하기 위한 방법으로 저번 포스트에서 알아 본 ReLU에 이어 이번 포스트에서는 weight을 적절히 초기화하는 방법에 대해 알아보겠습니다. Hinton교수님은 기존의 방법으로 딥러닝 학습이 잘 되지 않았던 이유로 weight을 초기화하는 방법이 적절하지 않았다고 지적하였는데("We initialized the weights in a stupid way"), 그렇다면 먼저 weight을 적절한 방법으로 초기화하지 않았을 때 생기는 문제에 대해 알아보겠습니다. 가장 좋은 예시..
2020.06.17 -
10-1. Sigmoid 보다 ReLU가 더 좋아
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 뉴럴 네트워크에서 활성화 함수(Activation function)의 한 종류인 sigmoid의 문제점을 인지하고 이를 해결하기 위해 나온 ReLU에 대해 알아보겠습니다. 쉬운 이해를 위해 뉴럴 네트워크의 한 예를 들어보겠습니다. 위는 뉴럴 네트워크의 한 예시입니다. input Tensor가 x1과 x2일 때 Output이 shape=(1,)의 Tensor Y로 고정되어있는 점을 제외하면 Input Layer와 Output Layer 사이의 Hidden Layer에는 어떤 형태로의 연결이든 상관없습..
2020.06.13 -
09-4. XOR 문제 keras로 풀어 Tensorboard로 확인 LAB
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 이때까지의 텐서플로우 코드의 출력을 텍스트로 보았다면, Tensorboard를 활용하여 그래프로 나타내고 데이터들을 그림으로 보는 방법에 대해 알아보겠습니다. TF2.0에서는 TF 1.X 버전의 코드를 지원하지 않는 것으로 보이므로 Tensorboard에 대한 설명은 모두를 위한 딥러닝 시즌1에서 확인해주시고 keras를 이용한 코드는 모두를 위한 딥러닝 시즌2의 5:30부터 확인해주시길 바랍니다. 아래의 코드는 모두를 위한 딥러닝 Github를 토대로 작성하였습니다. 그렇다면 먼저 Tensorbo..
2020.06.13 -
09-3. Neural Net for XOR LAB
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 실제 텐서플로우 코드로 XOR문제를 딥러닝으로 구현해보겠습니다. 09. XOR문제 딥러닝으로 풀기에서 살펴보았듯이 XOR(배타적 논리합) 문제는 뉴럴 네트워크에서 하나의 perceptron으로 학습하여 해결하는 것은 어렵다는 것을 알고 있습니다. 또한 논리 연산의 결과가 1, 0 두 분류로 나뉘기 때문에 Logistic regression의 sigmoid function을 적용하여 해결하는 것이 좋아 보입니다. 따라서 이번 코드는 기본적으로 05-2. Logistic Regression LAB의 코..
2020.06.09 -
07-2. Model evaluation: Training and test data sets
이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다. 누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다. 이번 포스트에서는 Data set을 활용하여 학습 모델이 얼마나 잘 동작하는지를 확인하는 방법에 대해 알아보겠습니다. 먼저 size(x)와 price(Y)를 feature, label로 하는 하나의 data set을 보겠습니다. ·Data set -> Training / test set size price 2104 400 1600 300 2400 369 3000 540 1985 300 1534 315 1380 212 1494 243 이후 우리는 모델에 Data set을 학습시켜 "학습 완료된 모델"을 얻을 수 있습니..
2020.05.04