본문 바로가기

ML & DL12

[DL] 전이학습 개념 간단하게. * 딥러닝 파이토치 교과서 내용(ch5.3)을 바탕으로, 추가로 찾은 내용들을 포함하여 개념 위주로 간단히 정리했습니다. 전이학습(transfer learning)이란? 전이학습이란, 아주 큰 dataet을 이용하여 훈련된 모델을 가져와 우리가 해결하려는 문제에 보정하여 사용하는 것을 의미한다. 즉, 사전 학습된 모델(pre-trained model)을 이용한다는 것을 의미한다. Example) ImageNet 즉, 비교적으로 적은 수의 데이터를 가지고 있어도 이미 학습된 모델을 활용하면 주어진 문제를 더 잘 해결할 수 있을 것이다. 전이 학습은 보통, 이미지 관련 문제에서 많이 활용하게 된다. 어떻게 활용할 것인가? - 특성 추출 기법 우선 CNN의 구조를 다시 간단하게 생각해보면 입력 데이터 -> 합.. 2022. 3. 30.
(극복Proj-2) RNN 구현 이해하기 실습 코드를 바탕으로 RNN 구현을 다시 한 번 이해해보고자 한다. 실습은 IMDB 영화 리뷰를 바탕으로 진행한다. 실습 코드: https://wikidocs.net/60691 import os import torch import torch.nn as nn import torch.nn.functional as F from torchtext import data, datasets, legacy import random SEED = 5 random.seed(SEED) torch.manual_seed(SEED) # 하이퍼파라미터 BATCH_SIZE = 64 lr = 0.001 EPOCHS = 10 시드와 배치 크기, 학습률, 몇 에폭을 돌지 미리 결정해둔다. 이제 text와 label을 받을 데이터 필드를 저.. 2021. 12. 24.
(극복Proj-1)[Pytorch] DataLoader란? * 당분간 DL 기초 구현 극복 Project를 진행하고자 합니다. Pytorch에서 잘 이해하지 못했던 기능들과 RNN, LSTM의 구현 및 텍스트 문제에의 적용의 극복을 통해 다음 단계로 넘어가기 위한 준비를 진행하고자 합니다. 왜, 기본 예제 이외에 추가로 무언가 하려고 하면 RNN/LSTM에서 학습이 잘 안되고 있었는지 이러한 것들을 공부하고 맨 처음 딥러닝을 접할때 어려움을 느낀 부분들을 정리하려고 합니다. ------------------------------------------------------------------------------------------------------------------------- [1] Pytorch - DataLoader 이해하기 [참고자료] http.. 2021. 12. 23.
[DL] 순환 신경망 RNN과 장단기메모리 LSTM 개요 참고 자료 https://wikidocs.net/60690 https://wikidocs.net/60762 이미지 출처 wikidocs - pytorch로 시작하는 딥러닝 입문 순환 신경망(RNN, Recurrent Neural Network) RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내지만, 다시 은닉층의 노드로 보내 다음 계산의 입력으로 활용하는 특징을 가지고 있다. 그림으로 표현하여 살펴보면 입력 벡터가 출력벡터를 향해 가기 위해 은닉층 cell을 통과하는데 이 cell에서는 이전의 값을 기억하려고 한다. 이를 메모리 셀이라고 표현한다. 해당 메모리 셀은, 다음 입력의 연산에 사용되는 구조를 가지고 있다. 이를 그림을 통해 정리하면 다음과 같다. RNN의 수식.. 2021. 8. 21.
[DL] 컨볼루션 신경망, CNN 이해하기 (프로그래머스 Week9 - Day4) 추가참고자료 : https://wikidocs.net/62306 이미지 분류 등에 많이 쓰이는 CNN을 이해해보자. CNN의 구조 전체적 구조는 컨볼루션 층과, 풀링층의 반복이 된다. ( conv - relu - conv - relu - pool의 반복 등) Convolution 이후, 주요 특징을 추출하는 방식을 통해, 최종 결과값을 추출하게 된다. CNN과, Multi Layer Perceptron의 차이는 완전히 모든경우의 수를 연결하는지, 부분적으로만 연결하는지의 차이이다. 컨볼루션 연산을 틍해 분류에 더 좋은 특징들만을 추출해서 가지게 된다. 특히, CNN의 경우는 인접한 정보의 특징을 효과적으로 인식할 수 있다. 그리고 Pool을 통해 특징을 요악하고 강.. 2021. 6. 24.
[DL] Pytorch로 Layer 만들기 (프로그래머스 DevCourse Week9) 참고자료 :https://wikidocs.net/book/2788 자동미분과 Autograd import torch w = torch.tensor(2.0, requires_grad=True) y = w**2 z = 2*y + 5 z.backward() print(w.grad) #z의 미분 값에, w를 대입한다. 결과는 8. 여기서, requires_grad = True 란, 텐서에 대한 기울기를 저장한다는 의미를 뜻한다. Iris 를 통한 Layer 만들기 예제. import pandas as pd from sklearn.datasets import load_iris import torch import torch.nn as nn from torch.utils... 2021. 6. 23.