Study/DL_Basic
[Deep Learning] Activation function(활성화함수)이란?
인공신경망을 배우다 보면 딥러닝 아키텍쳐에서 activation function(활성화함수)이 들어있는 것을 볼 수 있다. 처음에는 sigmoid function이 있고, 그 뒤에는 relu 등으로 다양한 activation function이 있는 것을 보게 되는데, 정작 이 활성화함수가 뭐고, 왜 필요한지에 대해서는 모르는 경우가 있다. 나 또한 그냥 넘어갈 뻔 했으나, 복잡한 아키텍쳐로 접어들면서 레이어마다 activation function이 왜 필요한지에 대해 궁금해졌고, 그 때문에 아래와 같은 포스팅을 하게 되었다. 1. Activation Function이 무엇인가? 간단히 말하면, 활성화함수는 데이터 내에에서 네트워크가 복잡한 패턴을 학습할 수 있도록 인공신경망에 추가되는 함수다. 단일 퍼셉..
[딥러닝] CNN 구조 - VGG
이전 포스팅에서는 [파이토치로 시작하는 딥러닝 기초] 강의에서 다룬 advanced CNN - VGG에 관하여 포스팅했다. 그런데 그 강의에서는 이론적인 내용이 부족하다고 생각되어 조금 더 찾아본 후 , 포스팅을 남긴다. 실습에 관한 포스팅을 보고 싶을 경우, 아래의 포스팅을 참고하면 될 듯 하다. 2021/01/07 - [Study/DL_Basic] - [파이토치로 시작하는 딥러닝 기초]10.4_Advance CNN(VGG) [파이토치로 시작하는 딥러닝 기초]10.4_Advance CNN(VGG) 이번 강의에 VGG의 이론적인 설명은 많이 들어있지 않았다.(모두의 딥러닝 시즌 1에 있는 내용이라 했지만, 사실 충분치 않은 내용이었다) 별도로 공부해서 위해 구글링을 한 후 포스팅 해서 아래 everywh..
[파이토치로 시작하는 딥러닝 기초]10.4_Advance CNN(VGG)
이번 강의에 VGG의 이론적인 설명은 많이 들어있지 않았다.(모두의 딥러닝 시즌 1에 있는 내용이라 했지만, 사실 충분치 않은 내용이었다) 별도로 공부해서 위해 구글링을 한 후 포스팅 해서 아래에 업로드 할 예정이다. 10.5 Advance CNN VGG- net이란? 전부 3x3 convolution, stride = 1, padding 1으로만 구성되어 있음 torchvision.models.vgg vgg11 ~ vgg19까지 만들 수 있도록 되어있음 3x224x224입력을 기준으로 만들도록 되어있음 input size가 다른 경우 VGG를 적용하려면 어떻게 해야할까? VGG net 실습 - documentation 그대로 따라써보기 import torch.nn as nn import torch.ut..
[파이토치로 시작하는 딥러닝 기초]10.3 ImageFolder / 모델 저장 / 모델 불러오기
ImageFolder 나만의 데이터 셋 준비하기 ImageFolder란? 로컬에 저장된 이미지 데이터를 불러올 때 사용하는 pytorch 라이브러리 데이터를 준비할 때에는 명확하게 구분되는 사진을 사용해야 한다. 위와 같이 구분하는 label의 class 개수에 따라 folder를 생성하고 그 안에 해당 라벨에 맞는 이미지를 삽입한다. 데이터 불러오기 실습 import torchvision from torchvision import transforms from torch.utils.data import DataLoader from matplotlib.pyplot import imshow %matplotlib inline train_data = torchvision.datasets.ImageFolder(r..
[파이토치로 시작하는 딥러닝 기초]10.2_visdom
visdom이란? 데이터 시각화를 window창으로 보여주는 package visdom 설치 !pip install visdom !python -m visdom.server 위 코드를 실행하면 http://localhost:8097/ 에 visdom 화면이 생성된다. 실습 import torch import torch.nn as nn import torchvision import torchvision.datasets as dsets import visdom import visdom vis = visdom.Visdom() Text vis.text("Hello. world", env = "main") ## env = main이라는 환경에 창을 띄움 image a = torch.randn(3,200,200) ..
[파이토치로 시작하는 딥러닝 기초]10.1_Convolutional Neural Network
10. Convolution Neural Network 10.1 Convolution Convolution? Neuron과 Convolution Pooling Convolution이란? 이미지위에서 stride값 만큼 filter(kernel)을 이동시키면서 겹쳐지는 부분의 각 원소의 값을 곱해서 모두 더한 값을 출력으로 하는 연산 Stride and Padding stride : filter를 한번에 얼마나 이동할 것인가 padding : zero-padding (input 이미지의 상하좌우에 0의 띠가 둘러진다) Python nn.Conv2d 입력의 형태 input type: torch.Tensor 타입 input shape : (N * C * H * W) => (batch_size, channel,..
[파이토치로 시작하는 딥러닝 기초]07_MLE, Overfitting, Regularization, Learning Rate
Maximum Likelihood Estimation(MLE, 최대우도추정법) observation을 가장 잘 설명하는 theta를 찾아내는 과정 우리가 관찰한 데이터를 가장 잘 설명하는 어떤 확률 분포의 함수의 파라미터를 찾아내는 과정 Optimization via Gradient Descent 𝜃←𝜃−𝛼∇𝜃𝐿(𝑥;𝜃) Overfitting 과도한 훈련으로 모델이 훈련셋에만 최적화 되어있을 떄 훈련셋과 테스트셋을 나누어서 학습할 때 오버피팅을 낮출 수 있다. 오버피팅을 해결하는 방법, Regularization Early Stopping : Validation Loss가 더이상 낮아지지 않을 때 학습을 멈추는 것 Reducing Network Size : neural network의 사이즈를 줄이는 것..
[파이토치로 시작하는 딥러닝 기초]06_Softmax Classification
Softmax Classification softmax Cross Entropy Low-level Implementation High-level Implementation Traing Example Discrete Probability Distribution(이산확률분포) Discrete Probability Distribution이란, 이산적인 확률 분포를 이른다. ex) 주사위를 돌려서 나오는 숫자의 값에 대한 확률 분포 이산 값에 대한 확률이 정확하게 나오며, 연속형 확률분포와 달리 x 값이 정수값으로 떨어져 있다. Softmax Convert numbers to probabilitis with softmax $${P(class = i) = \frac{e^i}{\sum e^i}}$$ pytorch ..