AI/Deep Learning

1) Semantic Segmentation 이미지의 모든 pixel이 어떤 label에 속하는지 다루는 것. 지금까지 배운 CNN의 구조는 input이 들어오면 convolution 연산을 하고 그 후 denselayer를 통과해서 결과를 보는 식이었다. 그런데 이러한 dense layer의 연산을 convolution 연산으로 바꿔서 할 수 있다. 그래서 나온것이 fully Convolutional Network이다. 이러한 Dense layer를 없애는 과정을 convolutionalization이다. 하지만 Convolution layer로 바꾼다고 하더라고 파라미터의 수에는 변화가 없다. 왜냐하면 Convolution 연산을 하더라도 바뀐 것은 없는것이다. 왜냐하면 10 x 10 x 3 짜리 를..
기본적으로 3개의 채널의 convolution 연산을 하게 되면 28 * 28의 한개의 채널이 나오게 된다. 만약 여러개의 채널을 만들고 싶다면 여러개의 filter를 만들어서 convolution 연산을 하면 된다. Convoution에서의 parmeter의 갯수는 filter의 parameter수가 된다. CNN은 Convolution, pooling layer, Fully connected layer로 이루어져 있다. Convolution과 pooling layer는 유용한 정보를 추출하는 역할을 하고 Fc는 마지막 decision making을 담당한다.(ex classification) 1 X 1 Convolution 연산 1 * 1이라는 것은 영역을 보는것이 아니라 한 pixel만 보는것이다...
0) Maximum Likelihood Learning 원래 배웠던 Maximum likelihood estimation 랑 같은 개념이다. 강아지 이미지들이 주어지고 강아지를 생성하는 확률분포가 존한다고 가정할 때 우리는 그 모델과 거리를 최소화 하는 방향으로 모델을 만들 수 있다. 이 때 모델을 근사할 때 어떤 기준으로 잘됐는지 기준을 정하는게 중요하다. 이 때 사용할 수 있는 기준이 KL-Divergence이다. 이것을 통해 근사적으로 확률분포 사이의 거리를 추정할 수 있다. 위 식을 간략화 시키면 아래처럼 된다. P_data : 뭔지는 모르지만 data를 생성하는 분포 P_theta: 학습하는 data로 parameterize 되는 분포 간략화 한 식에서 왼쪽항은 무시할 수 있다. KL-diver..
0) 개요 generative model 에게 학습한다는 것은 어떤 의미인가??? 강아지사진이 여러개 주어졌을 때 우리는 확률분포 p(x) 에 대해 학습하고 싶은 것이다. 1. generation - 확률분포 p(x) 에서 sample로 만들어낸 x는 강아지처럼 생겨야한다. 2. Desity estimation - 만약 강아지 사진이 input으로 들어갔을 때 확률분포 p(x)는 높은 값을 가지게 된다. -> 이렇게 2가지를 할 수 있는 model을 explicit model이라고 한다. 그렇다면 p(x)를 어떻게 나타낼 수 있을까?? 0 -1) 기본적인 이산 분포들 1. 베르누이 분포(동전의 튕기기) 이 분포의 사건은 2가지 결과가 있다. 앞면이 나오거나 뒷면이 나오거나. 따라서 이 분포에서 앞면이 나..
0) Gradient Descent(경사 하강법) Gradient Descent(경사 하강법)은 머신 러닝에서 모델을 학습시키는 최적화 알고리즘 중 하나입니다. Gradient Descent는 함수의 기울기(gradient)를 이용하여 함수의 최솟값을 찾아가는 방법입니다. Gradient Descent의 개념은 다음과 같습니다. 먼저, 모델의 손실 함수(loss function)를 정의합니다. 손실 함수는 모델의 예측 값과 실제 값의 차이를 측정하는 함수입니다. Gradient Descent는 이 손실 함수의 기울기를 이용하여 최적의 모델 파라미터를 찾아갑니다. Gradient Descent는 먼저 임의의 초기값을 가지고 시작합니다. 이후, 현재 위치에서 손실 함수의 기울기를 계산하고, 기울기가 가리키는..
1) Transformer Sequential model이 다루기 힘든 문제들 중간에 시퀀스 데이터가 누락되거나, 순서가 바뀌거나 잘리는 문제들은 Sequential model로 다루기가 쉽지 않다. 또 기존의 RNN 들은 어쨌든 순서대로 진행하기 때문에 어쩔 수 없는 기억력의 한계가 있었다. Transformer 는 이러한 Long-term-dependency 를 attention 을 통해 해결했다. 순서에 상관없이 모든 관계에 대해 모델링이 가능한 것이다. 또, Transformer 는 Sequential model처럼 재귀적 구조가 아닌 attention 이란 구조를 활용해 한번에 계산 한다. 예를들어 RNN에 3개의 단어가 로 이루어진 문장이 들어간다면 RNN을 3번 돌려서 실행해야하지만 tran..
0) Sequential Model Sequential data를 다루는데 어려운 점 -> 길이가 언제 끝날지 모른다. 즉 입력의 차원을 미리 알 수 없다. 따라서 앞서 보았던 fully connected layer나 convolution layer를 사용하지 못한다. 런 Sequential data을 다루기 위해 Sequential Model을 고안한다. Naive한 Sequential Model data가 늘어날수록 고려해야할 과거의 정보가 많아진다. Autoregressive model 위에서는 모든 과거의 data를 적용하기에 이 모델은 참고해야할 과거의 숫자를 고정한다. Markov model(first-order autoregressive model) 마르코프 모델은 마르코프 특성을 따른다. ..
1) Neural Network 행렬을 곱하는 변환을 하며 활성화함수를 씌워 비선형 변환을 하며 함수에 근사하는 모델 함수?? 이미지를 분류하고자 하면 그거 자체를 함수로 볼 수 있다. 가장 간단한 예 -> Linear Regression 여기서 이 모델의 식은 y = wx +b 로 정의된다. 이때 가장 근사한 w와 b를 찾으면 되는 문제이다. Loss 는 MSE 를 사용하였다. loss 가 최소가 되는 값을 구해야한다. 이 때 미분을 이용한다. loss에 대한 미분 값을 구해 Learning Rate에 곱해 Update를 시켜주며 근사한 w와 b를 찾을 수 있다. 만약 층을 깊게 쌓고 싶다면??? 이렇게 weight를 2번 곱하기 만 하면 의미가 없다. 한 번 곱한것이랑 차이가 없기 때문이다. 따라서 ..
1) Deep Learning 의 중요한 요소 1. data 2. model 3. loss 4. algorithm(optimizer) 2) Deep Learning 의 굵직한 사건들 Alexnet - 2012 DQN - 2013 Adam - Optimizer - 2014 Generative Adversal Network - 2015 Residual Networks - 2015 깊게 층을 쌓아도 성능이 좋게 나올 수 있게 만들어 준 논문 Transformer - 2017 BERT(fine tuned NLP model) - 2018 BIG Language models - 2019 Self Supervised Learning - 2020
LTSGOD
'AI/Deep Learning' 카테고리의 글 목록