본문 바로가기

딥러닝17

Lec 11-0 : RNN Intro 딥러닝 공부 24일차 RNN이 필요한 이유 우리는 기존에 배운 NN, CNN 으로 여러가지 일들을 해낼 수 있지만, Sequence Data 는 해결하지 못하는 문제점이 있습니다. 그래서 이러한 순차데이터(시계열데이터)를 잘 학습하기위한 도구로 등장한 것이 Recurrent Neural Network, RNN 입니다. Sequential data sequential data는 말그대로 시간의 관계성이 있는 데이터들을 의미하고 예를들어서 우리가 말을하는 문장, 단어들, 혹은 기상청 날씨 데이터 같은 것들을 말합니다. 추가로 RNN을 순환신경망(Recurrent) 또는 재귀신경망(Recursive) 라고 설명하면서 둘다 같은 모델이라고 설명하는 곳이 있는데, 순환신경망과 재귀신경망은 약간 다른 모델입니다. .. 2023. 9. 25.
Lec 10-4 : Resnet, Advance CNN 딥러닝 공부 23일차 CNN을 연구하면서 기존 모델들은 Layer를 깊게 쌓을수록 성능이 좋아질 것이라고 예상했지만 실제로는 20층 이상의 깊이로 갈 수록 오히려 성능이 떨어지는 현상이 존재하였습니다. 그래서 깊이가 깊어질수록 성능이 좋게 만들 수 있는 방법이 없을까해서 나온 방법이 바로 Resnet이라는 방법입니다. 사진과 같이 152층이라는 엄청나게 깊은 네트워크로 사람의 한계를 뛰어넘은 모습을 볼 수 있습니다. 하지만 이렇게 매우 깊은 네트워크에는 문제점이 존재합니다. 층이 깊어질수록 성능이 떨어지는 것을 보고 직관적으로 Gradient Vanishing/Explosion 이 발생할 수 있음을 짐작할 수 있고, 또한 Degradation 이라는 층이 깊어지면 오히려 성능이 안좋아지는 현상이 발생함을.. 2023. 9. 24.
Lec 10-2: CNN으로 MNIST 분류기 구현하기 딥러닝 공부 19일차, 21일차 오늘은 MNIST 손글씨 분류기를 CNN을 통해 구현해보는 시간을 가져보겠습니다. 먼저 필요한 도구들을 import 해줍시다. import torch import torch.nn as nn import torchvision.datasets as dsets import torchvision.transforms as transforms import torch.nn.init GPU 연산을 위한 설정을 해줍니다. device = 'cuda' if torch.cuda.is_available() else 'cpu' torch.manual_seed(777) if device == 'cuda': torch.cuda.manual_seed_all(.. 2023. 9. 23.
ResNet 구조를 이용한 AutoEncoder 구현 & 리뷰 Autoencoder(오토인코더) 란? 오토인코더는 딥러닝에서 주로 사용되는 비지도 학습 방법 중 하나입니다. 기본적인 아이디어는 입력 데이터를 압축하여 낮은 차원의 표현으로 만든 뒤, 그 압축된 표현을 사용하여 다시 원래의 입력 데이터를 재구성하는 것입니다. 이해하기 쉽게 예시를 들어보면, 시험공부를 위해 교재를 요약본을 만든다라고 생각해봅시다. 교재(원본이미지) 를 요약해서 만든 아래 중간 사진이 압축된 낮은 차원인 것이고. 이를 가지고 누가 다시 원래의 교재로 복구한다라고 생각해보시면 편하실 것 같습니다. 오토인코더는 주로 두 부분으로 나뉩니다 1. 인코더 (Encoder): 입력 데이터를 받아 압축된 표현 (latent representation 또는 코드)으로 변환합니다. 2. 디코더 (Deco.. 2023. 8. 16.
Lec 06: Softmax Classification 딥러닝 공부 7일차 Softmax Classification Multinomial classification 원활한 이해를 위한 사전 지식들 One-hot encoding(원-핫 인코딩) 이전 글 까지는 Binary classificaiton, 즉 이분법적으로만 분류하는 것에 대해서 배웠습니다. 하지만 항상 이분법적으로만 생각할 수는 없죠, 이제는 여러가지를 고려하는 Multinomial classification에 대해서 배워볼겁니다. 이제 선택해야하는 선택지의 개수가 늘어남에 따라 필요한 것이 바로 원-핫 인코딩입니다. 원-핫 인코딩은 각 선택지의 인덱스에 해당하는 원소에는 1을, 나머지에는 0의 값을 가지도록 하는 표현 방법입니다. 예를들어볼까요? 우리 광운대학교 로봇학부 학생을 분류하는 프로그램이.. 2023. 8. 6.
Lec 05: Logistic Regression 딥러닝 공부 6일차 Logistic Regression 일상속의 많은 문제들중에 두개의 선택지중에 정답을 고르는 문제들 같은 경우가 많습니다. 예를들어 계절학기의 Pass or Non_pass 라던지, 받은 메일이 스팸인지 아닌지 이런식으로 이분법적으로 나누는 경우를 Binary Classification(이진 분류) 라고 합니다. 그리고 이러한 이진 분류를 풀기 위한 대표적인 알고리즘이 Logistic Regression 입니다. 이 로지스틱 회귀는 이진 분류의 특성 때문에 Regression(회귀)로 사용하지만 Classification(분류)로도 사용이 가능합니다. Binary Classification 이번 여름방학 계절학기 학생들의 성적으로 패논패를 부여한다고 해봅시다. 50점 이상이면 패스, .. 2023. 7. 26.
Lec 04-2: Mini Batch and Data Load 딥러닝 공부 5일차 Mini Batch and Data Load 복습하고오세요~! 클릭! 이전 글에서 배치 애기를 하면서 미니배치의 필요성에 대해서 이야기한 바가 있습니다. 링크를 걸어두었으니 잠깐 보고 오면 좋을 것 같습니다. x_train = torch.FloatTensor([[x1, ~, ~], [x2, ~, ~], [x3, ~, ~], [x4, ~, ~], [x5, ~, ~]]) y_train = torch.FloatTensor([[~], [~], [~], [~], [~]]) 앞서 배웠던 다중 선형회귀의 예에서 숫자들을 지웠습니다. 위 데이터에서 샘플의 개수는 5개입니다. 하지만 현업에서는 수십만개 이상의 데이터를 다루는 경우가 많습니다. 데이터가 수십만개 정도의 사이즈가 된다면 일일히 경사하강법.. 2023. 7. 26.
Lec 04-1: Multivariabel Linear Regression 딥러닝 공부 4일차 Multivariable Linear Regression 앞서 배운 Linear Regresstion 은 x가 1개인 선형회귀였습니다. 하지만 현실은 어떠한 결과를 내는데 원인이 한가지만 있는경우는 드물죠 만약 x가 여러개면 어떻게될까요? x가 여러개인 선형회귀를 다항 선형회귀라고 합니다. 퍼셉트론 관점으로는 다중퍼셉트론이라고 할 수 있겠네요. 다항 선형 회귀(Multivariabel Linear Regression) 가설 함수(Hypothesis Function) 평균 제곱 오차(Mean Squared Error) 경사하강법(Gradient descent) Data Definition 다음과 같은 학슴데이터가 있다고 가정해보겠습니다. 앞서 배운 단순 선형회귀와는 달리 독립변수 x가 .. 2023. 7. 25.
728x90