Pytorch 프레임워크를 사용해서 GPU 연산을 수행하기 위해서는 데이터를 텐서(Tensor) 형태로 만들어야 함. (Type은 다르지만 Numpy 배열과 유사함)기본적인 텐서 만드는 법리스트, 넘파이 형태의 데이터를 텐서를 만드는 방법텐서의 크기와 타입 확인텐서의
딥러닝에서 인공 신경망을 최적화하는 과정에서 미분은 필수적인 요소. Pytorch를 사용하면 역전파 과정을 매우 쉽게 할 수 있는 자동 미분 계산을 제공함.
머신러닝이든 딥러닝이든 가장 핵심은 데이터.데이터의 수집, 가공, 사용 방법에 따라 모델 성능이 크게 달라지기 때문에 데이터를 분석에 사용하기 위해 불러오는 일련의 과정이 매우 중요함.(개인적으로 모듈화해서 Python 사용할때 가장 난해한 부분이었음, benchmar
커스텀 데이터 + 커스텀 전처리 텐서 생성 부분에서 이미지 전처리를 진행 직접 전처리 만들기 커스텀 데이터 + torchvision.transforms 전처리
인공신경망은 사람의 신경(뉴런)을 모사하여 만든 예측 도구.레이어 안에 많은 노드를 가지고 있고, 이런 레이어가 쌓이면 깊은(Deep) 신경망이라고 한다.다음과 같은 데이터가 있다고 가정할때 (변수 13개, 타겟 1개)
보통 머신러닝에서는 train, validation, test 로 데이터를 나눠서 학습을 진행함. (train은 모델 학습, validation은 파라미터 튜닝, test는 평가에 사용됨)다만 많은 데이터를 요구하는 머신러닝 학습과정에서 데이터 수가 적으면 모델의 학습
CNN(Convolution Neural Network)은 합성곱 신경망임. 주로 이미지와 비디오와 같은 데이터를 처리하는데 사용됨.MLP가 fully-connected된 것과는 달리 CNN은 fully connected가 아님. CNN은 filter(kernel)을
합성곱 신경망(CNN)을 이용한 이미지 분류(image classification)
Pytorch를 통해 모델을 생성하는 두 가지 방법torch.nn을 사용해서 layer 별로 생성하고 forward에 이를 집어넣어서 학습Net을 만들고 이전 방법의 fully connected 부분을 classifier로 별도 생성forward 부분이 간편해짐결국 개
RNN은 시계열 데이터와 같은 sequential 데이터에 최적화다음과 같은 주가 데이터가 있다고 가정간단한 전처리 EDA 결과지난 5일의 데이터를 기준으로 (sequence, length of X)그 다음날의 데이터를 예측하는 모델 (target, Y)RNN 모델은
LSTM은 RNN 모델이 장기 기억력이 낮다는(?) 문제를 해결한 방법 (cell state를 통해)(아래 그림처럼 RNN은 시간이 지날 수록 Gradient vanishing 현상이 나타남)RNN에서는 없었던 'cell state'가 추가된다 (장기 기억력을 올려주는
LSTM은 RNN의 단점이었던 장기의존성(time이 지날수록 gradient가 vanishing 하는 문제)을 해결함. 하지만 RNN에 비해서 모델 구조가 지나치게 복잡하다는 단점이 존재. GRU는 모델의 형태도 간단하지만 동시에 장기의존성 문제 또한 해결함.
양방향 LSTM(Bi-LSTM)의 핵심 개념은 정방향으로만 학습을 진행하는 대신, 마지막 노드에서 뒤에서 앞으로(역방향) 실행되는 다른 LSTM을 추가하는 것이다. Bi-LSTM은 일반 LSTM 대비 역방향으로 정보를 전달하는 hidden layer를 추가해서 이러한
현실에서의 딥러닝 학습은 수 시간 ~ 수 일이 넘어가는 경우가 많다. 이런 경우 서버 연결 오류와 같은 예상치 못한 일로 작업이 중단되는 경우가 가끔 일어난다 (쌍욕 나옴)따라서, 현재 학습 중인 모델의 정보를 저장하는 것은 '매우' 중요한 일이다. 이때 모델의 정보가
전이학습(Transfer Learning)은 가존의 잘 알려진 데이터 혹은 사전학습(pretrained)된 모델을 도메인 확장을 위해 사용하는 학습을 의미함 (ex 이미지넷으로 학습한 모델을 실생활에 사용하는 경우..)일반화 + 실생활 적용을 중요하게 생각하는 인공지능
전이학습(Transfer Learning)은 이미 학습된 모델을 가져와 사용하는 방법. 데이터가 유사한 경우에는 새로운 학습 없이도 좋은 성능이 나옴.이런 경우 데이터의 특징을 추출(피처 추출)하는 부분의 변수는 동결하고(freeze), 분류 파트에 해당되는 fully
오토인코더는 라벨 없이(비지도 방법, unsupervised) 원하는 출력값(reconstructed image)을 생성하는 모델임. (아래는 MNIST 데이터를 사용한 autoencoder!)convolution이 downsampling 기능이아면 convtransp
깊은 K-평균 알고리즘 (Deep K-means algorithm)은 Autoencoder와 머신러닝의 군집화 기법인 K-means 알고리즘을 결합한 방법이다. 이 알고리즘 또한 label을 사용하지 않는 비지도 학습이다. 위의 Autoencoder 모델을 보면 inp
생성적 적대 신경망(GAN)은 재미있는 아이디어. 얼굴 변환, 생성, 음성 변조, 그림 스타일 변환, 사진 복원 등 다양한 도메인에 응용이 되는 중 ! G: 생성적 Generative, 이미지를 만들어내는A: 적대 Adversarial, 적대적인N: 신경망 Networ
설명가능한 인공지능(Explainable AI, XAI)은 판단에 대한 이유를 사람이 이해할 수 있는 방식으로 제시하는 인공지능이다. (from 위키피디아) 사람이 직관적으로 이해하지 못하는 모델을 블랙박스 모델이라고 하는데, 이런 모델은 현업에서 의사결정권자들을 설득
t-SNE는 PCA 더불어 대중적(?)으로 사용되는 차원 축소 기법이다. 현업에서 사용되는 데이터는 수 ~ 수백 차원으로 이루어진 경우가 많은데, 이런 경우 데이터의 분포 확인이나 시각화 진행에 어려움이 있다. 이런 경우 보통 2~3차원으로 데이터를 축소하는데 이를 차