목록ML_AI/네이버 부클 AI 엔지니어 기초 다지기 : AI Tech 준비과정 (23)
archive

1. Generative Model- 강아지 이미지가 주어진 상황에서 우리는 무엇을 할 수 있을까? -> 강아지를 샘플링하여 분류 모델을 만듦-Generation : 그것만이 아님, 학습결과를 기반으로 강아지와 같은, train 데이터에 존재하지 않는 강아지 이미지를 만들어낼 수도 있음-density estimation: 즉 하나의 이미지가 주어지면 확률값으로 강아지다 아니다를 구분할 수 있는 모델-generative model은 단순이 어떤 문장이나 이미지를 만들어내는 것 뿐만 아니라, 어떠한 데이터값이 주어졌을 때 강아지인지 아닌지 구분할 수 있는 것까지 포함되는 범위이다. -Generative model의 두 가지 분류-explicit model, 즉 어떠한 데이터를 주었을 때 정답값에 대한 확률값..

1. Transformer의 장단점- 입력이 1000개가 들어오면 RNN의 경우 1000번 실행하면 해결되나 transformer의 경우 1000**2의 해결 매트릭스가 디자인되므로 실행이 극단적으로 느려지게 된다-그러나 이러한 설계로부터 flexible한 실행 결과를 얻을 수 있다는 장점이 있다. 2. Multi -headed attention- 앞에서 실행한 attention을 여러 번 실행하는 것이다.-하나의 인코딩된 벡터에 대해서 쿼리 & 키 벡터를 하나만 만드는 것이 아니라 여러 개 만들어내는 방법론을 의미- 장점 : n개의 attention을 반복하게 되면 n 개의 인코딩 벡터가 나오게 됨-그러나 입력과 출력의 차원을 맞춰줘야 함, 즉, 임베딩된 차원과 인코딩되어서 self attentio..

1. Transformer-Sequential data를 다루는 모델-왜 등장하게 되었나 ? ) 문장은 길이가 항상 가변적, 하나의 입력이 sequential하게 들어가게 되면, 중간에 데이터가 하나 빠지게 되거나 누락, permutated되는 경우에 다루기가 어려워짐 - 재귀적인 RNN과 달리 Transformer은 재귀적 구조가 없고, sequence를 다루는 모델이나 attention이라고 불리는 모델을 활용해서 대처--어떤 문장이 주어지면 그걸 다른 언어 문장으로 바꾸는 것-sequence를 인풋으로 사용하고 또 다른 sequence로 바꿔내는 것이 해당 모델의 목적-입력은 세 단어로 구성된 불어 문장, 출력은 네 단어로 이루어진 영어 단어- (1) 입력 시퀀스와 출력 시퀀스의 단어 수가 다를..

1. Sequential Model- RNN 은 주어지는 입력 자체가 Sequential - Sequential 데이터 -> audio, video, 손의 모션 등-Sequential 데이터 처리의 어려움 -> 우리가 얻고자 하는 데이터의 출력값은 "하나의 라벨값"일 때가 많음, 그러나 이는 정의상 입력의 길이를 가늠할 수가 없음, 즉 입력의 차원을 예측 불가능-따라서 CNN을 사용할 수 없음, 몇 개의 입력이 들어오든 입력의 차원과 상관 없이 데이터를 처리할 수 있는 모델이 필요해짐 -기본적인 Sequential 모델 : Naive Sequential Model, 입력이 들어올 때 다음의 입력값을 예측하는 것 ex) 언어 모델-첫 번째 입력 벡터는 아무 것도 고려하지 않아도 됨, 두 번째 입력 벡터는 ..

XOR 문제에 대한 기계 학습을 진행하는 코드 리뷰 프로젝트XOR연산은 eXclusion OR 의 줄임말이고, 출력의 특징은 두 입력이 같으면 0을, 다르면 1을 출력하는것 문제 1. 모델 세팅import numpy as np # numpy importX = np.array([0, 0, 1, 1, 0, 1, 0, 1]).reshape(2,4) # 입력Y = np.array([0, 1, 1, 0]).reshape(1,4) # 정답 -학습셋으로 사용할 데이터셋 (입력값, 정답값) 행렬벡터를 numpy를 통해 정의# 가중치 초기화 함수def init_parameters(num_hidden_units = 2): W1 = np.random.randn(2, num_hidden_units) # 첫번째 레이어 가중치..
1. 경사하강법 (Gradient Descent) 을 구현할 데이터 쌍을 numpy 라이브러리를 활용해 생성한다import numpy as npxy = np.array([[1., 2., 3., 4., 5., 6.], [10., 20., 30., 40., 50., 60.]]) x_train = xy[0]y_train = xy[1] - split, stack, concatenate과 같은 방법들도 array가 클 때는 자주 사용한다. 특히 해당 방법을 사용할 때 axis를 잘 설정해야 원하는 결과를 얻을 수 있다. -numpy의 split 메소드, vsplit 메소드, flatten 메소드 활용split_xy = np.split(xy, 2, axis=0)x_tr..