인공지능10 [인공지능개론] RNN① RNNRNN(Recurrent Neural Network)이란 순환 인공 신경망으로, 유닛 간의 연결이 순환적 구조를 갖는 특징을 가진다. 음성인식, 동영상 등의 sequential data를 처리하는 데에 사용된다. 그렇다면 sequential data는 왜 RNN을 사용할까? 기존의 NN/CNN의 경우 고정된 크기의 입력만을 잘 다루므로 길이가 가변적인 sequential data를 다루기엔 적합하지 않다. 반면, RNN은 hidden state에서 이전 data에 대한 기억을 갖고 있으므로 이전 sequence를 바탕으로 새로운 sequence를 이해할 수 있다. 같은 함수와 parameter set을 사용해서 이 과정을 계속하여 반복한다면 아무리 긴 sequence여도 처리할 수 있다.예를 들어 .. 2024. 7. 11. [인공지능개론] CNN③ CNN을 pytorch으로 구현해보자.import torchimport torchvision.datasets as dsetsimport torchvision.transforms as transformsimport torch.nn.initdevice = 'cuda' if torch.cuda.is_available() else 'cpu'먼저 필요한 모듈을 import해준다. 가장 아랫줄은 cuda를 사용할 수 있다면 cuda를 사용하고 그렇지 않으면 자동으로 cpu를 사용하도록 하기 위함이다.또한 CNN은 이미지 데이터를 주로 다루기 때문에 이를 위해 아래와 같이 MNIST dataset을 불러올 것이다.# Hyper-parameterslearning_rate = 0.001training_epochs = 1.. 2024. 7. 11. [인공지능개론] CNN② CNN의 학습 과정을 정리하면, 입력 이미지를 추출하고 싶은 특징에 맞는 filter들을 convolution하여 추출한 feature map 중 중요한 정보를 선택하고 차원을 축소하는 pooling 과정을 거쳐 non-linear function인 ReLU에 넣어준다. 이를 반복하여 최종적으로 hidden layer가 1개 이상인 MLP를 fully-connected하여 DNN에 입력으로 대입하여 classification을 수행한다. 즉, CNN은 feature map을 형성하여 입력을 공급해주는 역할만 한다.CNN의 주요 특징들을 정리해보자. 1. parameter sharing: filter 모양(값)은 전체 이미지에 대해 고정되어 있으므로 parameter가 동일하다. ($\rightarrow$.. 2024. 5. 8. [인공지능개론] Regularization 머신러닝 시스템을 분류하는 또다른 방법은 입력 데이터의 stream으로부터 점진적으로 학습할 수 있는지의 여부에 따라 batch learning와 online learning으로 구분하는 것이다. Batch Learningbatch learning에서는 시스템이 점진적으로 학습할 수 없다. 가용한 데이터를 모두 사용해서 훈련해야 하며 일반적으로 많은 시간과 자원을 소모하므로 보통 오프라인 환경에서 수행된다. batch learning에서 새로운 데이터가 들어왔을 때 새로운 데이터뿐만 아니라 이전 데이터도 포함한 전체 데이터에 대해 학습시켜야 한다. 그런 다음 이전 시스템을 중지시키고 새 시스템으로 교체한다.Oneline Learningoneline learning에서는 데이터를 순차적으로 한개씩 또는 m.. 2024. 5. 8. 이전 1 2 3 다음