모두를 위한 딥러닝 34

딥러닝(DeepLearning) #6_ Dropout and Ensemble

안녕하세요. 문범우입니다.이번 포스팅에서는 dropout과 model ensemble에 대해서 살펴보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Dropout 우리가 dropout을 하는 이유는 바로 아래와 같은 overfitting 때문입니다. 우리가 과거에 알아봤던 것처럼, 훈련 data에 있어서는 100%의 accuracy를 내지만, 실제로 test data에 있어서는 높은 예측율을 내지 못하게 되는 현상이죠. 위와 같이, 파란색 그래프, training 에서는 에러율이 점점 낮아지지만, 실제로 빨간색 그래프처럼 test data를..

딥러닝(DeepLearning) #5_ Restricted Belief Machine & Xavier initialize

안녕하세요. 문범우입니다.이번에는 지난 포스팅에 이어서 딥러닝을 잘하는 방법 중 weight의 초기값을 설정하는 방법에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. RBM(Restricted Belief Machine) 우리가 지난 포스팅에서 위의 그림과 같은 Vanishing gradient 문제에 대해서 알아보았습니다.그리고 이 문제에 대해서는 Hilton 교수님께서는 4가지 이유를 꼬집었습니다. 위의 4가지 항목중 제일 아래에 있는 것은 우리가 지난 포스팅에서 sigmoid함수 대신, ReLU함수를 사용함으로써 해결할 ..

딥러닝(DeepLearning) #4_ ReLU::Rectified Linear Unit

안녕하세요. 문범우입니다.오늘은 ReLU(Rectified Linear Unit)에 대해서 알아보겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. NN for XOR 우리가 지난 시간에 XOR문제를 위와 같은 모델로 하여 풀이를 진행해보았습니다.실제로 텐서플로우를 이용하여 구현해보기도 하였습니다.그때 각 유닛의 결과에 우리가 Sigmoid 함수를 붙여서 결과값이 0~1이내로 출력되게 했었습니다. 이러한 Sigmoid함수를 activation function 이라고 합니다.각 모델들에게 어떤 값을 보내게 될 때 일정값 이상이면 active되게 하고 그..

텐서플로우(Tensor Flow) #13_ TensorBoard 사용하기

안녕하세요. 문범우입니다.우리가 지난번 실습에서 텐서플로우를 통해 Neural Network를 이용하여 XOR 문제를 풀어보았습니다.그런데 우리가 Neural Network를 이용하면서 보다 깊고 복잡한 문제를 해결할 때 그 학습과정등을 시각적으로 볼 수 있도록 하는 Tensorboard라는 것이 있습니다.이번 포스팅에서는 그런 Tensorboard를 사용하는 방법에 대해서 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Tensorboard 우선 텐서보드를 사용하면 위의 그림에서 보이는 것처럼 우리의 TensorFlow 그래프를 시각..

텐서플로우(Tensor Flow) #12_ Neural Network for XOR problem

안녕하세요.이번 포스팅에서는 우리가 딥러닝 이론에서 배웠던 XOR 문제를 텐서플로우로 해결해보도록 하겠습니다.이론적인 부분은 아래 글에서 설명드렸기에, 코드에 대한 이야기를 주로 할 것 같습니다. 딥러닝에 대한 기본적인 이론이기에 잘 이해가 안되시는 분들은 아래 글을 참고해주세요. 딥러닝(DeepLearning) #1_ 딥러닝의 시작딥러닝(DeepLearning) #2_ XOR using Neural Nets(NN) 딥러닝(DeepLearning) #3_ Backpropagation * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. XOR data set 먼저..

딥러닝(DeepLearning) #3_ Backpropagation

안녕하세요. 문범우입니다.이번 포스팅에서는 Backpropagation에 대해서 알아보겠습니다.지난 포스팅에서 XOR문제를 풀어보았는데, 정확하게 W나 b에 대한 값을 구하지는 못하였습니다. 그럼 이런 상황에서 어떻게 W와 b를 구하는지, 정확하게는 backpropagation이 어떻게 사용되는 것인지 알아보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Intro 먼저, 우리가 어떻게 W나 b와 같은 값을 구할 수 있을까요?우리가 그동안 다루어 보았던 Gradient의 개념을 이용합니다. 우리는 보통 결과로 나오는 Y값을 통해 Cost함수..

딥러닝(DeepLearning) #2_ XOR using Neural Nets(NN)

안녕하세요. 문범우입니다.이번 포스팅에서는 XOR문제에 대한 이야기를 해보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. XOR 문제의 개요 지난 포스팅에서 딥러닝에 대한 개념과 그 동안의 역사에 대해서 알아보며, XOR문제가 매우 까다로운 문제로 다가왔음을 알아보았습니다. 그럼 그 골치덩이 문제를 어떻게 풀 수 있을까요? 먼저, 그때에 그 문제에 부딪혔던 이유 중 하나는, XOR문제가 단순히 하나의 모델로는 풀이가 불가능하다라는 증명 및 사실들 때문이었습니다. 그렇다면, 하나의 모델이 아닌 2개, 3개, 다수의 모델을 이용하면 어떨까요? ..

딥러닝(DeepLearning) #1_ 딥러닝의 시작

안녕하세요. 문범우입니다. 이번 포스팅에서는 딥러닝의 기본 개념으로써 딥러닝의 시작과 XOR문제, 그리고 '딥'의 출현에 대해서 이야기 해보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. 딥러닝의 시작 많은 과학자들은 인간이 고민하고 어려워 하는 문제들에 대해서 기계가 해결시켜주기를 바랬습니다.그리고 그 시작으로 먼저 인간의 뇌를 분석하기 시작했습니다. 그리고 분석된 뇌에 대해서 수학적으로 식을 세우고, 풀어냈습니다. 이를 간단히 하여 위와 같은 그림으로 나타내게 되었습니다.지난 포스팅들에서도 확인했던 그림들입니다.그리고 이러한 구조를 직접..

텐서플로우(Tensor Flow) #10_ MNIST data

안녕하세요. 문범우입니다.오늘 포스팅에서는 실전데이터를 이용해서 모델을 만들어 보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. MNIST data 오늘 우리가 사용해볼 데이터는 위의 그림과 같은 MNIST dataset 입니다.보시면 아시듯이 손으로 쓴 숫자들 입니다.이 데이터들은 아래 주소에서 손쉽게 다운받을 수 있습니다. http://yann.lecun.com/exdb/mnist/ 위의 사이트에서 4개의 알집을 모두 다운받았습니다.그럼 각 데이터가 어떤 형태를 가지고 있는지 좀 더 자세히 알아보도록 하겠습니다. MNIST의 데이터들은 ..

텐서플로우(Tensor Flow) #9_ Learning rate, Evaluation

안녕하세요. 문범우입니다. 이번 포스팅에서는 우리가 만든 모델에 대한 Learning rate 를 설정하는 방법과 evaluation을 해보는 과정을 진행해보도록 하겠습니다. * 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.관련한 상세 내용은 아래 링크를 참고해주세요.https://hunkim.github.io/ml/ 1. Training and Test data sets 이번에 알아볼 내용은 우리가 가진 데이타셋을 training 과 test로 나눠보는 것입니다.이전까지의 실습에서는 이런 구분 없이 우리가 가진 모든 데이터를 통해 traning을 하고 test를 했는데, 엄밀히 말해서 이는 틀린 방법입니다. 이제부터는 반드시 데이타셋을 나눠서 진행합니다.즉..

728x90