목록제 1회 모각코 (5)
제로부터 시작하는 코딩 생활
공간 vs 시간 지난 시간 다룬 CNN은 공간적인 정보를 중요시했다면 RNN은 각 정보의 순서를 중요하게 여긴다. 시계열 데이터란 텍스트, 신호, 음성, 영상 데이터 등 "박수"와 "수박"이 다르듯이 순서가 존재하는 데이터셋을 말한다. 주식 데이터도 시계열 데이터에 포함될 수 있겠다. RNN RNN은 특정 시점의 데이터를 은닉층의 활성화 함수를 통해 그 데이터에 대한 출력을하고 초록색에 해당되는 메모리셀은 이전 데이터값의 기억을 가진채로(실제로 값을 그대로 기억하는 것이 아니라 이전의 데이터가 반영된 값이라 하는게 더 올바른 표현이 되겠다.) 다음 데이터와 함께 계산이 되는 과정을 반복하는 것이 RNN이다. RNN 입력과 출력데이터를 조절함에 따라 다음과 같이 분류할수도있다. 바리에이션중 하나로 Bidi..
DNN의 단점 기존 DNN은 패턴이 복잡해지면 정확도가 떨어진다는 단점이 있다. 저번 MNIST 데이터셋을 예로 들자면 흑백데이터라 비교적 단순한 데이터셋이었다. 게다가 DNN은 스스로 데이터의 패턴을 단순화 시킨다는 단점도 존재한다. MNIST에서도 23*23 사이즈의 데이터를 1줄로 만든후 처리를 하였다. 사진 데이터의 각 픽셀은 주변 픽셀과의 연관성을 배제할 수 없는데 이를 1차원으로 해석한다는 것이다. CNN ( Convolution Neural Network, 합성곱 신경망) 인간의 시신경 구조를 모방한 모델로 동일 데이터에 대해 여러 필터를 둘수도 있어 비전(vision) 분야에서 좋은 성능을 보인다. DNN과 달리 공간정보를 그대로 가지고 작업을 수행하기에 이미지의 패턴을 분석하는데 매우 유..
저번 시간엔 DNN에 대해 배워보았다. 이번시간엔 MNIST 데이터셋을 분석 하는 인공지능 모델을 리뷰해보는 시간을 가져보자. 이렇게 총 4개의 파일로 이루어져있다. 먼저 models.py 부터 살펴보자. Data_loader.py from torchvision import datasets, transforms from torch.utils.data import DataLoader def load_data_loader(config): transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) train_dataset = datasets.MNIST(config.data_dir, train..
DNN DNN은 (Deep Neural Network, 심층신경망) 인공신공망의 한 종류로 입력층과 출력층 사이에 여러개의 은닉층들이 이루어져 있는 인공신경망이다. 입력 값에 대해 W와 b에 대해 Wx+b과정을 통한 뒤 활성화 함수가 있는 다음 layer를 거친다. 비선형성 여러개의 Layer는 하나의 수식으로도 설명이 가능하다. 그럼 왜 여러개의 Layer로 표현하는 걸까? 여러개의 Layer를 쌓는것 뿐만 아니라 Layer에 비선형 활성함수를 포함한다는것도 중요한 포인트이다. 고차원의 데이터들은 대부분 선형 관계가 아닌 비선형 관계이다. 선형함수들을 아무리 쌓아 올려봤자 선형관계를 가질것이다. 이것은 고차원의 비선형 문제를 해결하는데 전혀 적합하지 않다. 선형 Layer들 사이에 비선형 활성함수를 집..
인공지능 개발에 가장많이 사용되는 프레임워크에는 Pytorch와 Tensorflow가있다. 우리는 그 중 Pytorch를 사용하기로 하였다. 먼저, 여러가지 방법으로 Tensor를 생성하는 법을 알아보자. FloatTensor() 실수형 변수들로 텐서를 생성 float_tensor = torch.FloatTensor([1,2,3,4]) float_tensor tensor([1., 2., 3., 4.]) LongTensor() 정수형 변수들로 텐서를 생성 여기서 Long은 정수자료형의 Long이 맞다 int_tensor = torch.LongTensor([1,2,3,4]) int_tensor tensor([1, 2, 3, 4]) randn(텐서의크기) 무작위 정수형 변수들로 입력된 크기로 생성 random..