본문 바로가기

Deep Learning16

[DL] DeepLearning 이모저모 Classification : 주어진 데이터를 주어진 라벨(클래스)에 의해 분류하는 법을 학습한다. (지도학습) Clustering : 주어진 데이터를 데이터의 특징에 의해 스스로 클래스를 군집화한다. (비지도학습) Classification : 주어진 데이터가 어떤 라벨(클래스)인지 예측하는 것이다. - discrete한 output을 가진다. Regression : 주어진 데이터의 경향성을 파악하고 함수를 예측하는 것이다. - 어떤 데이터를 대표할만한 모델을 만들고, 그 결과로 연속적인 output을 가진다. - 주어진 데이터의 트렌드를 파악하는 용도로 괜찮다. 분류하고자 하는 class에 따라서 다른 접근법을 사용해야 한다. Linear / Nonlinear 등 data의 분포 특성에 따라서 더 적.. 2023. 2. 19.
[DL] t-SNE t - Stochastic Nearest Neghibor 고차원의 벡터를 저차원으로 옮겨서 시각화에 도움을 주는 방법이다. 차원을 옮기겠다는 것이 아니다.(원데이터 그대로 보존) 그저 시각화하는 방법이라고 생각하면 될 것 같다. k-Means가 각 클러스터를 계산하기 위한 단위로 중심과 각 데이터의 거리를 측정한다면, t-SNE는 각 데이터의 유사도를 정의하고 원래 공간에서의 0사도와 저차원 공간에서의 유사도가 비슷해지도록 학습시킨다. 여기서 유사도가 수학적 확률로 표현된다. latent vector을 5000개만 뽑아서 scatter로 찍은 것이다. perplexity : 근접성. 하이퍼파라미터에 맞춰 수정한다.(tunning 요소) scatter plot을 보면, 숫자가 좀 섞여있는 것을 볼 수 있다.. 2023. 2. 19.
[DL] AutoEncoder. Latent Vector 오토인코더는 입력과 출력이 동일하다.(자기 자신을 재생성하는 네트워크이다) Latent Vector : 잠재변수(가운데 부분), Encoder : 입력쪽, Decoder : 출력쪽 인코더는 일종의 특징추출기와 같은 역할을 한다. 디코더는 압축된 데이터를 다시 복원하는 역할을 한다. (28,28) 사이즈의 train_X가 strides=(2,2)로 인해 2칸씩 건너 측정되면서 (14,14)로 줄고, 또 통과하면서 (7,7)이 되어 reshape의 (7, 7, 64)가 구성되는 것이다. Conv2d의 filters=32가 Conv2DTranspose의 filters=32 / Conv2D의 필터 64가 Dense, reshape의 64로 연결된다. 다시 fit 시키고 결과를 봤을 때, 화질이 조금은 계선된 것.. 2023. 2. 19.
[DL] Transfer learning _ 기본 option 전이학습 (transfer learning) : 잘 학습된 모델의 weight를 가져와서, 조금 수정 후 사용한다. 이미지 세상에서 꽤 유용한 것으로 알려져 있다. Freeze : 가중치 고정 Trainable : weight를 가져오지만 training 시킬 거고, 구조만 따로 사용한다. data_transforms = { 'train' : transforms.Compose([transforms.Resize([64,64]), transforms.RandomHorizontalFlip(), transforms.RandomVerticalFlip(), transforms.RandomCrop(52), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.4.. 2023. 2. 16.
[DL] options in DeepLearning ( Transfer learning) num_workers x.view() F.log_softmax(x, dim=1) lr = 0.001 eval() to.(DEVICE) fc.in_features lr_scheduler.StepLR() zero_grad set_grad_enabled max(outputs, 1) trainable=False [np.newaxis, ...] argmax() axis=-1 untar = True #1 num_workers val_loader = torch.utils.data.DataLoader(val_dataset, batch_size = BATCH_SIZE, shuffle =True, num_workers = 4) In PyTorch, num_workers is an argument in the DataLoa.. 2023. 2. 16.
[DL] Deep Learning Scratch 목차 순방향 XOR 역전파 ( Loss 함수 ) STEP01 순방향 : 아래의 코드는, 순방향이 어느 것인지 이해를 돕기위한 단순 프로세스이다. 가중치를 랜덤하게 잡을 일은 없다. # numpy에는 sigmoid없으니 직접 함수로 만들어준다. def sigmoid(x): return 1.0 / (1.0 + np.exp(-x)) # 가중치를 랜덤하게 선택하자. (원래는 학습이 완료된 가중치를 사용해야 한다.) # 원래는 양수의 값만 나와서, 2를 곱하고 -1을 해서 음수 값도 만들어준다. # (1,3)은 1,3의 크기를 가지게 하는 것. X하나만 보면 3개의 값이 있어서 W = 2*np.random.random((1,3)) -1 # 추론 # X의 첫번째 줄과 W를 곱한 값. 마지막만 1이니 W의 마지막 *.. 2023. 2. 13.
[DL] CNN CNN - 특징을 찾아내는 특징검출 구간과 그 특징을 사용하여 딥러닝을 돌리는 분류 구간으로 나뉘어져 있다. Conv Filter 의미 - Convolution : 특정 패턴이 있는지 박스로 훑으며 마킹 - 위아래선 필터, 좌우선 필터, 대각선 필터, 동그라미 필터 등등 여러가지 "조각"필터로 해당 패턴이 그림 위에 있는지 확인한다. - Convolution 박스로 밀고나면 숫자가 나온다. 그 숫자를 Activation(주로 ReLU)에 넣어 나온 값으로 이미지 지도를 새로 그린다. Pooling 의미 - MaxPoolinng : 사진을 점진적으로 줄인다. nxn(Pool)을 중요한 정보(Max) 한개로 줄인다. 선명한 정보만 남겨서 판단과 학습이 쉬워지고 노이즈가 줄며서 융통성이 확보된다. - 보통 2.. 2023. 2. 8.