본문 바로가기

인공지능22

[인공지능개론] 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.
[인공지능개론] CNN① CNNCNN이란 DNN(Deep Neural Network)의 한 종류로, 하나 이상의 convolution layer와 pooling layer, fully connected layers로 구성된 신경망이다. 기존 Multi-layer Nueral Network는 이미지나 영상, 음성 등의 데이터를 다룰 때 형상을 고려하지 않고 직접 raw data를 처리하기 때문에 조금의 변화에도 새로운 학습데이터로 처리해줘야 하는 문제가 발생하여 많은 양의 학습데이터를 필요로 하고 학습 시간이 길어진다. 이는 overfitting 문제로도 이어질 수 있다. 또한, 필요한 variables의 개수가 너무 많아지면서 network크기도 너무 커지는 문제가 발생한다. CNN은 convolution layer를 통해 입력.. 2024. 5. 8.
[인공지능개론] Regularization 머신러닝 시스템을 분류하는 또다른 방법은 입력 데이터의 stream으로부터 점진적으로 학습할 수 있는지의 여부에 따라 batch learning와 online learning으로 구분하는 것이다. Batch Learningbatch learning에서는 시스템이 점진적으로 학습할 수 없다. 가용한 데이터를 모두 사용해서 훈련해야 하며 일반적으로 많은 시간과 자원을 소모하므로 보통 오프라인 환경에서 수행된다. batch learning에서 새로운 데이터가 들어왔을 때 새로운 데이터뿐만 아니라 이전 데이터도 포함한 전체 데이터에 대해 학습시켜야 한다. 그런 다음 이전 시스템을 중지시키고 새 시스템으로 교체한다.Oneline Learningoneline learning에서는 데이터를 순차적으로 한개씩 또는 m.. 2024. 5. 8.