본문 바로가기

전체 글

(41)
7. CNN - VGG, Resnet 예제 코드 https://colab.research.google.com/drive/1pxmIrnCbG7J3vFm2RWtrv2K-UfTT45IR Google Colaboratory colab.research.google.com 1. 구현 논문 발전 순서를 작성할때, Alexnet -> GoogleNet -> VGG -> Resnet 순서대로 작성을 했습니다. Alexnet은 초창기 논문에다가, 사실 구현하기에 직관적이지 않고, GoogleNet도 Inception Module이 꽤나 복잡합니다. 그래서 보기에 간단하면서도 성능이 좋은 VGG와 Resnet을 구현하게 되었습니다. 2. 데이터 (Cifar10) 이전 구현 코드에서는 Mnist라는 아주 기본적인 데이터 셋을 사용했습니다. CNN을 1 layer만 쌓아도 ..
6. CNN - Convolutional Neural Network 예제 코드 이번 코드에서는 CNN을 간단하게 활용한 코드만 담아두었습니다. CNN의 발전에서 다룬 논문 코드들은 다음 코드에 올리도록 하겠습니다. https://colab.research.google.com/drive/1tA-d6Oo2dwHkIm6KT13E7VNbbdX-5gPW Google Colaboratory colab.research.google.com 이번에는 다음과 같은 순서로 코드를 작성했습니다. 1. Keras API를 활용하는 두가지 방식 (Sequential vs Functional) 2. Pooling 3. Padding Tensorflow의 Keras API를 활용하는 두가지 방식 중에서 Functional API를 활용하는 것이 복잡한 모델 구조를 만들때 오히려 더 편합니다. Keras API..
5. CNN 발전 (2) - VGG, ResNet, etc... 5. VGGNet 14년도 ILSVRC에서 GoogleNet의 성능에 아주 약간 못 미친 모델 입니다. 그러나 이 이후에 더 자주 사용되는 모델은 VGGNet입니다. 그 이유는 모델의 복잡성에 있습니다. GoogleNet은 Conv layer와 Pooling Layer를 조합한 Inception Module을 여러층 쌓고, Auxiliary Classifier 등을 활용하는 등 모델이 꽤 복잡합니다. 위의 구조가 VGGNet의 구조 입니다. 딱 보기에도 직관적 입니다. 또한 Conv Layer는 3x3 filter로 통일입니다. 이 모델에서 언급할 것은 3x3 Conv layer 입니다. Factorizing Convolutions 이라는 개념인데, 사실 Inception Module들을 발전시킨 연구팀..
4. CNN 발전 (1) - Alexnet, GoogLeNet 1. CNN의 발전 CNN은 1990년대 Yann LeCun 교수가 발표한 이후, 발전을 많이 했습니다. 특히 2010년 초중반에 많은 발전이 있었습니다. Conv layer 자체에서 Convolution을 어떤식으로 진행할지를 고민하는 차원에서도 발전을 이루었고, 여러 Conv layer를 어떻게 조합하는지 등에서도 발전이 있었습니다. 다른 CNN 관련 설명글을 참고로, CNN의 발전을 다음과 같은 순서로 알려드리겠습니다. (Lenet) -> Alexnet -> GoogLeNet -> VGGNet -> Resnet (2012) (2014) (2014) (2015) 각각 논문, 모델의 이름과 처음 나온 년도 입니다. 위의 모델들은 ILSVRC라는 컴퓨터 비전 성능 대회에서 우수한 성능을 보인 모델입니다...
3. CNN - Convolutional Neural Network 1. 시작 CNN의 시작을 말할때는 Yann LeCun 교수를 알아야 합니다. 가장 최근에 튜링상을 수상한 분이시고, LeNet을 통해 CNN 개념을 1990년대에 발표하였습니다. CNN의 기본 구조가 이 LeNet에서 거의 다 정립되었습니다. 그리고 딥러닝 하면 가장 먼저 떠올리는 Mnist 데이터셋을 수집한 사람입니다.. 대학원생 시절에 연구를 위해 수집했다고 합니다. 2. CNN의 구성요소 CNN에는 많은 장점이 있으나, 먼저 구성 요소들을 아는 것이 좋다. - Convolutional Layer (Conv layer) - Pooling Layer CNN에는 크게 두가지 구성 요소가 있습니다. 사실 CNN 하면 저 두개의 layer를 조합해서 사용하고, 보통 맨마지막 단에 FC layer로 구성을 ..
2. DNN - FC layer 예제 코드 1. 환경 예제 코드는 Google Colab을 이용해서 돌리고, 프레임 워크는 tensorflow2를 이용해보겠습니다. Colab을 이용하는 이유는 기본적으로 모든 사람이 어떤 환경에서도 사용할 수 있다는 점이 있습니다. 프레임워크로 Tensorflow2를 이용하는 이유는 이제 tf의 기본 api로 keras api를 이용함으로써 코딩하기도 쉽고 tf 자체가 기능이 강력하기 때문입니다. Colab을 활용하는 법에 관련해서는 필요하다면 다음에 포스팅 하도록 하겠습니다. 2. 코드 Tensorflow2에서 제공하는 Mnist 데이터를 이용하여, 간단한 FC layer를 구성하는 코드는 아주 쉽습니다. 제가 작성한 Colab 코드 입니다 https://colab.research.google.com/drive..
1. DNN - FC layer(from 인공 신경망) 오늘부터 딥러닝의 구조에 대해서 차례대로 포스팅 해보려고 합니다. 딥러닝 프레임워크, 예를 들어 tensorflow, keras, pytorch 등이 발전하면서 딥러닝 코딩이 점점 쉬워지고 있습니다. 그러나 실제로 잘 활용하기 위해서는 딥러닝에 대한 지식을 좀 알아야 합니다. 딥러닝에 관한 지식을 알면 알수록 코드의 어느 부분을 건드려야 본인이 원하는 결과물을 얻을 수 있을지 알 수 있기 때문입니다. 저도 딥러닝에 관심이 있어서 공부를 계속 하고 있지만, 파면 팔 수록 통계, 컴퓨터 과학 등이 얽힌 분야라 배워야 할 지식의 양이 참 방대합니다. 그래서 저의 지식과 경험을 토대로, 이 정도는 알고 넘어가야 할 것 같은 지식들을 섞어 가면서 글을 포스팅 하도록 하겠습니다. 제가 맨 처음 말하려는 구조는 DN..
0. 딥러닝이란 무엇이며 왜 사용할까 안녕하세요, 딥러닝을 사용하여 주식 모델링을 시도하고 있고, 그러한 과정에서 생각한 점을 정리하여 포스팅하고 있는 블로거 입니다. 그러던 와중에 딥러닝에 관해서도 포스팅을 하는게 좋다는 생각이 들어 이렇게 글을 쓰게 되었습니다. 딥러닝에 관한 정말 좋은 강의들이 많고 글들도 많습니다. 이번글 만큼은 전문적인 지식이 하나도 필요없는 글 입니다. 저의 글도 누군가에게는 정보를 주거나 흥미를 줌으로써 큰 의미를 가졌으면 좋겠네요! 1. 인공지능과 딥러닝 요즘 각종 산업, 사회에서 인공지능이라는 말이 끊임없이 등장 합니다. 우리들의 친구 나무위키에서는 인공지능을 '인간이 지닌 지적 능력의 일부 또는 전체를 인공적으로 구현한 것이다. 현실에서는 이제 막 한걸음을 내딛은 단계이며 SF물에서 흔히 볼 수 있는 소재이..