Deep Learning 12

momentum update

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lego7407&logNo=221681014509 SGD + 관성을 더해준 방식 parameter 값을 조정할 때 전체 data가 아닌 랜덤으로 선택한 1개의 data에 대해서만 계산하는 방법인 SGD 최솟값까지 지그재그로 이동해서 비효율적 -> momentum 이용해 보충 (관성을 더해줌) SGD에서 계산된 접선의 기울기에 한 step 전의 접선의 기울기값을 일정 비율만큼 반영 local minimum에서 탈출하는 효과를 얻을 수 있음

Deep Learning 2022.08.30

loss back-propagating

https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=laonple&logNo=220507299181 weight나 bias 값을 아주 작게 변화시키면(=편미분시키면) output의 변화 역시 매우 작은 변화가 생김 = 작은 변화의 관점에서는 선형적인 관계가 있음 output에서 생긴 오차를 반대로 input 쪽으로 전파시키면서 w와 b 등을 갱신하면 됨 cost function은 결국 w와 b로 이루어진 함수기 때문에 output에서 input 방향으로 cost function에 대한 편미분을 구하고 얻은 값을 이용해 w와 b의 값을 갱신 모든 train data에 대해 이 작업을 수행하다보면 훈련 데이터에 최적화된 w와 b 값을 얻을 수..

Deep Learning 2022.08.30

Dive into BYOL

1. Representation Learning 최종적으로 수행하려는 작업을 잘 하기 위해서 model이 입력 data의 특징을 잘 표현헐 수 있도록 훈련하는 것 image(입력 data)의 특징을 추출 2. Self-supervised Learning (SSL) 레이블이 없는 data를 활용하여 model이 좋은 representation을 추출할 수 있도록 학습하는 방법론 step1. self-supervised 방식으로 model을 사전 학습 사전학습 방식에 따라 pretext task / contrastive learning 으로 분류 step2. 사전학습된 model의 downstream task로 전이 학습 진행 representation을 잘 배워서 downtstream task 에 잘 써먹..

Deep Learning 2022.08.25

lambda(), sort()에서 key와 lambda 사용하기

lambda 함수를 따로 선언하지 않고 lambda 식으로 대체하는 것 example def f(x): retrun x+1 print(f(1)) >> 2 f = lambda x : x+1 print(f(1)) >> 2 재사용 불가능한 함수 메모리를 아낄 수 있음 https://wikidocs.net/22804 4) 람다함수(익명함수) 파이썬에서는 람다함수를 통해 이름이 없는 함수를 만들 수 있습니다. 람다함수의 장점은 코드의 간결함 메모리의 절약이라고 생각할 수 있습니다. `def`키워드를 통해서 함 ... wikidocs.net sort()/sorted() 에서 key와 lambda 사용하기 정렬 기준을 잡을 때 lambda를 통해 변형 기준을 정의 ex. 오름차순 정렬 sorted(리스트명, key=..

Deep Learning 2022.08.18

os와 glob

os 현재 디렉토리 : os.getcwd() 디렉토리 변경: os.chdir("디렉토리 경로") 디렉토리 파일 확인: os.listdir() os.path.join os(operating system, 운영체제) 운영체제와의 상호작용을 돕는 파이썬 모듈 1. 현재 디렉토리 확인 디렉토리 = 파일이 들어가있는 서랍의 이름 같은 느낌 os 모듈을 통해 get path of current working directory => os.getcwd() 2. 디렉토리 변경 os 모듈을 통해 change working directory => os.chdir('바꾸고싶은 경로') 3. 현재 디렉토리의 파일 목록 확인 현재 디렉토리에 어떤 파일들이 있는지 확인 os.listdir() 4.os.path.join 경로(pat..

Deep Learning 2022.08.18

AutoEncoder와 anomaly detection

https://leedakyeong.tistory.com/entry/Anomaly-Detection-by-Auto-Encoder Anomaly Detection by Auto Encoder Auto Encoder로 Anomaly Detection 하는 방법 설명 및 Kaggle 사례 소개 오토인코더로 이상치를 탐지하는 방법에 대해 설명하기에 앞서, 이상 탐지가 무엇인지 간단히 설명하겠다. 1. Anomaly Detection이란? Norm. leedakyeong.tistory.com 1. Anomaly Detection (이상치 탐지) normal sample과 abnormal sample을 구별해내는 문제 2. 학습 데이터에 따른 anomaly detection의 분류 1) supervised lear..

Deep Learning 2022.08.17

PyTorch : Dataset과 DataLoader

데이터를 미니배치 단위로 처리할 수 있고 데이터를 무작위로 섞음으로써 학습 효율성 향상 가능 데이터를 여러개의 GPU를 사용하여 병렬처리로 학습할 수 있음 Batch : 데이터를 한번에 한묶음씩 처리하는 방식 전체 데이터셋을 batch로 묶어서 iteration의 수 만큼 실행 전체 데이터셋을 batch로 나누고, batch 내의 각각의 데이터를 forward와 backward를 돌리는 방식 Dataset 전체 dataset을 구성하는 단계 input으로 전체 x(feature)와 y(label)을 tensor로 넣어주면 됨 구성 ___init__(self) : 필요한 변수들을 선언하는 method. input으로 오는 x와 y를 load 하거나 파일 목록을 load __len__(self) : 길이를 ..

Deep Learning 2022.08.16

PyTorch : class와 nn.Module 이용해서 신경망 모델 정의

Design your model using class with Variables (class와 변수 정의) Construct loss and optim Train cycle (forward, backward, update) PyTorch model의 기본 구조 import torch.nn as nn import torch.nn.functional as F class Model_Name(nn.Module): #nn.Module 상속 def __init__(self): super(Model_Name, self).__init__() self.module1 = ... self.module2 = ... """ ex) self.conv1 = nn.Conv2d(1, 20, 5) self.conv2 = nn.Conv2..

Deep Learning 2022.08.16

PCA

고차원의 데이터를 저차원의 데이터로 환원시키는 기법 다차원의 데이터분포를 가장 잘 설명하는 성분을 찾고 시각적으로 잘 알아볼 수 있게 만들어줌 https://bioinformaticsandme.tistory.com/42?category=807361 [PCA] 주성분분석 1 [PCA] 주성분분석 1 Start. BioinformaticsAndMe ​ 주성분 분석(Principal component analysis; PCA) 이란? -정의: 고차원의 데이터를 저차원의 데이터로 환원시키는 기법 -필요: 다차원의 데이터 분포를 가장.. bioinformaticsandme.tistory.com https://darkpgmr.tistory.com/110 [선형대수학 #6] 주성분분석(PCA)의 이해와 활용 주성분 ..

Deep Learning 2022.08.16