728x90
Boostcamp AI Tech
141

[Boostcamp Day-10] DL Basic - Generative Models

Learning a Generative Model 예를 들어서 강아지 이미지가 주어져있다고 하자. 그러면 다음과 같은 확률 분포 P(x)를 학습하고 싶을 수 있다. Generation : 강아지와 같은 이미지를 sampling하는 것 Density estimation : 강아지 이미지가 주어졌을 때 p(x)가 높으면 강아지, 낮으면 다른 것(anomaly detection)으로 분류할 수 있다. 또한 다음과 같이 확률 값을 얻어 낼 수 있는 모델을 "explicit model"이라고 부른다. Unsupervised representation learning : 귀, 꼬리와 같은 feature leaning을 할 수 있다. 그렇다면 이 P(x)를 어떻게 만들 수 있을까? Basic Discrete Dist..

Boostcamp AI Tech 2021.08.13

[Boostcamp Day-9] DL Basic - Transformer

Transformer 기계 번역의 경우를 생각했을 때 다음과 같이 하나의 문장을 입력으로 받아 다른 언어로 된 번역을 출력으로 내놓는다고 하자. 이러한 것을 'sequence to sequence'라고 부르기도 한다. transformer에는 아래 그림처럼 크게 encoding을 하는 encoder, decoding을 하는 decoder, 그 사이를 이어주는 connection으로 구성되어있다는 것을 확인할 수 있다. encoding하는 부분은 다음과 같이 여러 개의 encoder를 쌓아 올린것이고 decoding 부분도 endcoding 부분과 동일한 개수만큼의 decoder를 쌓아올린 것이다. encoder들은 모두 아래와 같이 self-attention과 feed forward neural netw..

Boostcamp AI Tech 2021.08.13

[Boostcamp Day-9] DL Basic - Recurrent Neural Network

Sequential Model sequence data에는 소리, 영상, 주가 등의 시계열(time series) 데이터가 있다. 일반적으로 1개의 label을 얻는다고 했을 때 CNN의 경우 정해진 크기의 값이 FC Layer를 통해 출력을 얻지만 sequence data경우 길이나 사이즈가 달라지고 과거의 정보 없이 미래를 예측하는 것이 어렵다. 그렇기 때문에 RNN(Sequential Model)을 사용하게 된 것이다. Naive Sequence Model 우선 간단한 sequential model로 naive sequence model을 살펴보면 다음과 같이 과거의 모든 정보 (x_t-1, x_t-2...)를 담아 예측하는 것으로 이해할 수 있다. 예를 들어서 첫 번째 단어가 입력되면 두 번째 단..

Boostcamp AI Tech 2021.08.12

[Boostcamp Day-8] DL Basic - Computer Vision Applications

Semantic Segmentation segmantic segmentation은 모든 픽셀(pixel)을 구별하는 방법을 말한다. Fully Convolutional Network 보통의 CNN 보통의 CNN은 다음과 같이 Convolution을 진행하고 Flatten을 한 후 FC layer를 통해 Label하는 방식이다. Fully convolutional network fully convolutional network는 위에서와는 달리 모든 layer를 convolution으로 사용하여 Label을 출력해주는 방식인데 이렇게 함으로서 FC layer를 사용한 것과 달리 위치 정보(2차원 데이터)를 유지할 수 있다. 또한 FC Layer를 사용했을 때와 똑같은 parameter 수를 가진다. 그리고..

Boostcamp AI Tech 2021.08.12

[Boostcamp Day-8] DL Basic - Modern CNN

AlexNet AlexNet은 총 8개의 layer로 구성되며 60M의 parameter를 가진다. ReLU activation function을 사용하였다. -> vanishing gradient problem을 극복할 수 있다. 2개의 GPU를 사용하였다. nomalization과 overlapping pooling 기법을 사용하였다. Data augmentation(데이터 증강)을 사용하였다. Dropout을 사용하였다. VGGNet VGGNet은 총 19개의 layer로 구성되며 110M의 parameter를 가진다. 3x3 크기의 filter만을 사용하여 층을 더 깊게 쌓았다. fully connected layer를 위해 1x1 convolution를 사용하였다. Dropout(0.5)를 사용..

Boostcamp AI Tech 2021.08.11

[Boostcamp Day-8] DL Basic - Convolutional Neural Networks

Convolution 다음과 같이 데이터 타입에 따라 계산할 수 있다. 연속형(Continuous) convolution 이산형(Discrete) convolution 2D image convolution 여기서 I가 전체 이미지를 의미하고 K가 kernel을 의미한다. RGB Image Convolution 위 그림을 보면 5 x 5 x 3의 filter와 32 x 32 x 3 image의 연산으로 28 x 28 x 1 크기의 feature가 출력된다는 것을 확인할 수 있다. 만약에 filter(5 x 5 x 3)가 4개라면 28 x 28 x 4 크기의 feature가 출력된다. Stack of Convolutions Convolution Layer는 다음과 같이 쌓을 수 있다. 여기서 이미지 크기의 ..

Boostcamp AI Tech 2021.08.11

[Boostcamp Day-7] DL Basic - Optimization

Generalization(일반화) 반복 횟수에 따른 error 그래프를 training과 text로 비교해보면 다음과 같다. 여기서 Generalization gap을 Generalization Performance라 한다. 즉, training error와 text error의 차이를 말한다. 이때 학습데이터의 성능이 현저히 떨어진다면 Generalization Performance가 좋다고 테스트 성능이 좋은 것 이라고 판단할 수 없다. 다시 말해 학습데이터가 제대로된 성능을 갖춘 것을 전제로 Generalization Performance를 판단할 수 있는 것이다. Underfitting & Overfitting 간단히 말해서 Underfitting은 너무 학습이 적게 된 것이고 Overfitti..

Boostcamp AI Tech 2021.08.10

[Boostcamp 2주차] 피어세션과 학습 회고

Day - 6 피어세션 ML Basic 01, 02 강의 리뷰 선택과제 1, 2, 3 코드 리뷰 Dive into Deep learning 스터디를 위한 일정 결정 : 금요일 피어세션 진행아고 남은 시간 포함해서 진행 멘토링때 무엇을 해야할지 의견을 수요일 피어세션 전까지 노션에 작성하고 수요일 피어세션때 의견을 종합해서 정하기 학습 회고 오늘부터 DL학습이 시작되는 주이다. 01강의 Historical Review는 모델별로 시대적흐름에 따라 어떻게 변해가는지 확인할 수 있었고 02강의 MLP에 대한 강의는 NN의 정확한 정의와 Linear Regression에서 사용하는 1차원 벡터부터 다차원 벡터, 단층 퍼셉트론부터 다층 퍼셉트론까지 진행하면서 각각에 어떠한 함수가 사용되는지 확인할 수 있었다. 하..

Boostcamp AI Tech 2021.08.09

[Boostcamp Day-6] Data Visualization - Python과 Matplotlib

버전 확인 import numpy as np import matplotlib as mpl print(np.__version__) print(mpl.__version__) [출력] 1.20.1 3.3.4 위와 같이 numpy는 1.20.1버전, matplotlib은 3.3.4버전이 설치되어있다는 것을 확인할 수 있다. Matplotlib 기본 Plot import matplotlib.pyplot as plt fig = plt.figure() plt.show() #jupyter notebook에서는 작성해주지 않아도되기 때문에 이후부터는 생략한다 [출력] fig = plt.figure() ax = fig.add_subplot() #fig 사이즈로 ax 사이즈가 조정된다 [출력] fig = plt.figure..

Boostcamp AI Tech 2021.08.09

[Boostcamp Day-6] DL Basic - Multi-Layer Perceptron

Neural Networks 위키피디아에서는 Neural Networks를 다음과 같이 인간의 뇌에 비유하여 설명하였지만 이렇게 해석할 필요가 없다. “Neural networks are computing systems vaguely inspired by the biological neural networks that constitute animal brains.” Neural Networks는 다음과 같이 행렬곱이 비선형 함수가 반복적으로 일어나는 것으로 해석하는 것이 맞다는 의견이라고 하신다. Neural networks are function approximators that stack affine transformations followed by nonlinear transformations. L..

Boostcamp AI Tech 2021.08.09
728x90